شكل 4.29 - كتاب إنترنت الأشياء - الصف 11 - الفصل 1 - المملكة العربية السعودية

الكتاب: كتاب إنترنت الأشياء - الصف 11 - الفصل 1 | المادة: إنترنت الأشياء | المرحلة: الصف 11 | الفصل الدراسي: 1

الدولة: المملكة العربية السعودية | المنهج: المنهج السعودي - وزارة التعليم

الدرس: شكل 4.29

📚 معلومات الصفحة

الكتاب: كتاب إنترنت الأشياء - الصف 11 - الفصل 1 | المادة: إنترنت الأشياء | المرحلة: الصف 11 | الفصل الدراسي: 1

الدولة: المملكة العربية السعودية | المنهج: المنهج السعودي - وزارة التعليم

نوع المحتوى: درس تعليمي

📝 ملخص الصفحة

📚 تواصل الأردوينو مع الحاسب الشخصي ومنصة الحوسبة السحابية

المفاهيم الأساسية

واجهة برمجيات تطبيقات الويب (Web API): نقطة وصل للتواصل بين برنامج وخادم على الإنترنت (مذكورة في الخريطة السابقة).

خريطة المفاهيم

```markmap

تطوير وبرمجة الأردوينو

مشروع الحديقة الذكية بالأردوينو

المكونات المطلوبة

  • مستشعر الحرارة (Temperature Sensor)

توصيل المكونات

#### توصيل مستشعر درجة الحرارة

  • توصيل طرف Power (الطاقة) للمستشعر بالعمود الموجب في لوحة التوصيل (سلك أحمر).
  • توصيل طرف Vout (الجهد) للمستشعر بالطرف التناظري A2 في الأردوينو (سلك أخضر).
  • توصيل طرف GND (الأرضي) للمستشعر بالعمود السالب في لوحة التوصيل (سلك أسود).
  • #### توصيل مستشعر رطوبة التربة

  • توصيل طرف Power (الطاقة) للمستشعر بالعمود الموجب في لوحة التوصيل (سلك أحمر).
  • توصيل طرف GND (الأرضي) للمستشعر بالعمود السالب في لوحة التوصيل (سلك أسود).
  • توصيل طرف Signal (الإشارة) للمستشعر بالطرف التناظري A4 في الأردوينو (سلك أخضر).
  • #### الدائرة بصورتها النهائية

    • توصيل الأطراف بالمكونات
    • المكونات المتصلة:
    - مستشعر رطوبة التربة (Soil Moisture Sensor)

    - ترانزستور (TMP)

    - محرك (Motor)

    #### الدائرة المادية (Physical Circuit)

    • صورة الدائرة بمكوناتها المادية
    • المكونات الظاهرة:
    - مستشعر رطوبة التربة (Capacitive Soil Moisture Sensor v1.2)

    - لوحة الأردوينو (Arduino Uno R3)

    - لوحة التوصيل (Breadboard)

    - محرك التيار المستمر (DC Motor)

    برمجة المكونات

    #### الخطوات البرمجية

  • استدعاء المكتبات المطلوبة (pyfirmata, time)
  • تكوين منفذ الاتصال والأطراف (COM4، محرك DC، مستشعر درجة الحرارة، مستشعر الرطوبة)
  • إعداد الاتصال بين PyFirmata ولوحة الأردوينو
  • تنفيذ دالة التحكم في محرك التيار المستمر (water_plant)
  • #### استكشاف الأخطاء وإصلاحها

    ##### التحقق من صحة بيانات المستشعر

    • استخدام حلقة تكرار لا نهائية (`while True`)
    • قراءة القيم غير المعالجة من الأطراف التناظرية
    • إضافة شرط `if` للتحقق من أن القيم ليست `None`
    ##### معالجة وتحويل البيانات

    • تحويل قيمة درجة الحرارة إلى درجات مئوية
    • تحويل مستوى الرطوبة إلى نسبة مئوية
    ##### إدخال شروط الري

    • كتابة شرط التحكم في الري:
    - إذا كانت `(temperature >= 24.0) and (moisture <= 40.0)`

    - استدعاء دالة `water_plant(dc_motor_pin)`

    ##### عرض التقارير

    • طباعة تقرير درجة الحرارة: `"Temperature : " + str(temperature) + " C"`
    • طباعة تقرير الرطوبة: `"Moisture : " + str(round(moisture, 2)) + "%"`
    • إضافة `time.sleep(10)` في نهاية الحلقة

    التفاعل مع خدمات الويب السحابية

    #### تطوير المشروع

    • إرسال البيانات عبر خدمة الويب السحابية من منصة Binary IoT Cloud
    #### عرض البيانات على المنصة

    • عرض البيانات البيئية المجمعة بواسطة الأردوينو
    • مثال: جدول ورسوم بيانية لقراءات درجة الحرارة والرطوبة
    ##### بيانات مثال من المنصة

    • درجة الحرارة: تتراوح بين 25.36°C و 25.43°C
    • الرطوبة: تتراوح بين 39.39% و 42.84%
    #### التسجيل في المنصة السحابية

    ##### خطوات التسجيل

  • الانتقال إلى موقع المنصة: https://ksa-iot.azurewebsites.net/Login.aspx
  • الضغط على "تسجيل" من صفحة الترحيب.
  • تعبئة بيانات الحساب:
  • - اسم المستخدم (Username)

    - كلمة المرور (Password)

    - رقم التعريف الشخصي (PIN): 174563

  • الضغط على زر "Register" (تسجيل).
  • ##### واجهة التسجيل (شكل 4.26)

    • تحتوي على رمز QR للوصول.
    • نموذج يحتوي على حقول:
    - Username

    - Password

    - Confirm Password

    - Pin

    - زر Register

    • أرقام مرقمة (1-5) تشير إلى تسلسل الإجراءات.
    #### استدعاء واجهة برمجة تطبيقات الويب (Web API) باستخدام البايثون

    ##### مفهوم Web API و JSON

    • Web API: نقطة وصل للتواصل بين برنامج وخادم على الإنترنت.
    • JSON: تنسيق مفتوح لنقل البيانات (مفتاح - قيمة).
    ##### خطوات البرمجة

  • تثبيت حزمة `requests`:
  • ```

    pip install requests

    ```

  • استيراد المكتبات (`requests`, `time`)
  • تعريف دالة `send_data(username, password, temperature, moisture)`
  • إضافة استدعاء الدالة في الحلقة الرئيسية بعد طباعة التقارير
  • #### تواصل الأردوينو مع الحاسب الشخصي ومنصة الحوسبة السحابية

    ##### بنية النظام

    • منصة الحوسبة السحابية Binary IoT Cloud
    • الحاسب الشخصي (Laptop): يعمل كوسيط، يشغل كود بايثون.
    • لوحة الأردوينو (Arduino): متصلة بالحاسب.
    ##### تدفق البيانات

    • تتدفق البيانات من السحابة إلى الحاسب، ثم من الحاسب إلى الأردوينو.
    • يستخدم الحاسب لغات برمجة مثل Python و C++.
    • يستخدم بروتوكول Firmata للتواصل مع الأردوينو.
    ```

    نقاط مهمة

    • يوضح الشكل 4.29 بنية نظام إنترنت الأشياء الذي يتكون من: منصة Binary IoT Cloud، وحاسب شخصي، ولوحة أردوينو.
    • يعمل الحاسب الشخصي كوسيط، حيث يشغل كود بايثون للتواصل مع كل من المنصة السحابية ولوحة الأردوينو.
    • يستخدم النظام بروتوكول Firmata للتواصل بين برنامج الحاسب ولوحة الأردوينو.

    📋 المحتوى المنظم

    📖 محتوى تعليمي مفصّل

    نوع: محتوى تعليمي

    moisture_value = moisture_sensor_pin.read() if (temperature_value is not None) and (moisture_value is not None): temperature_value = float(temperature_value) * 1000 voltage = (temperature_value / 1024) * 5 temperature = (voltage - 0.5) * 100 moisture = (1.0 - float(moisture_value)) * 100 if (temperature >= 24.0) and (moisture <= 40.0): water_plant(dc_motor_pin) temperature_report = "Temperature : " + str(temperature) + " C" moisture_report = "Moisture : " + str(round(moisture, 2)) + "%" print(temperature_report) print(moisture_report) send_data(username, password, temperature, moisture) time.sleep(30)

    نوع: محتوى تعليمي

    وزارة التعليم Ministry of Education 2025 - 1447

    نوع: محتوى تعليمي

    واجهة برمجيات تطبيقات الويب

    نوع: محتوى تعليمي

    مع الحاسب الشخصي ومنصة الحوسبة السحابية Binary IoT Cloud

    شكل 4.29

    نوع: محتوى تعليمي

    شكل 4.29: تواصل الأردوينو مع الحاسب الشخصي ومنصة الحوسبة السحابية Binary IoT Cloud

    نوع: محتوى تعليمي

    منصة الحوسبة السحابية Binary IoT Cloud

    🔍 عناصر مرئية

    شكل 4.29: تواصل الأردوينو مع الحاسب الشخصي ومنصة الحوسبة السحابية Binary IoT Cloud

    A diagram illustrating the connection between a cloud service (Binary IoT Cloud), a laptop running Python code, and an Arduino microcontroller. The laptop is shown with code on the screen and Python and C++ logos indicating programming languages. Arrows show data flow from the cloud to the laptop, and from the laptop to the Arduino. The Arduino is depicted with its typical board layout and the Arduino logo.

    📄 النص الكامل للصفحة

    moisture_value = moisture_sensor_pin.read() if (temperature_value is not None) and (moisture_value is not None): temperature_value = float(temperature_value) * 1000 voltage = (temperature_value / 1024) * 5 temperature = (voltage - 0.5) * 100 moisture = (1.0 - float(moisture_value)) * 100 if (temperature >= 24.0) and (moisture <= 40.0): water_plant(dc_motor_pin) temperature_report = "Temperature : " + str(temperature) + " C" moisture_report = "Moisture : " + str(round(moisture, 2)) + "%" print(temperature_report) print(moisture_report) send_data(username, password, temperature, moisture) time.sleep(30) وزارة التعليم Ministry of Education 2025 - 1447 واجهة برمجيات تطبيقات الويب مع الحاسب الشخصي ومنصة الحوسبة السحابية Binary IoT Cloud --- SECTION: شكل 4.29 --- شكل 4.29: تواصل الأردوينو مع الحاسب الشخصي ومنصة الحوسبة السحابية Binary IoT Cloud منصة الحوسبة السحابية Binary IoT Cloud --- VISUAL CONTEXT --- **DIAGRAM**: شكل 4.29: تواصل الأردوينو مع الحاسب الشخصي ومنصة الحوسبة السحابية Binary IoT Cloud Description: A diagram illustrating the connection between a cloud service (Binary IoT Cloud), a laptop running Python code, and an Arduino microcontroller. The laptop is shown with code on the screen and Python and C++ logos indicating programming languages. Arrows show data flow from the cloud to the laptop, and from the laptop to the Arduino. The Arduino is depicted with its typical board layout and the Arduino logo. Data: Illustrates a system architecture for IoT applications using cloud services, personal computers, and microcontrollers. Context: Shows the components and data flow in a typical IoT system where an Arduino microcontroller communicates with a personal computer running an application, which in turn connects to a cloud platform.

    🎴 بطاقات تعليمية للمراجعة

    عدد البطاقات: 3 بطاقة لهذه الصفحة

    في كود التحكم بنظام ري نباتي يعتمد على إنترنت الأشياء، ما الشرط الذي يؤدي إلى تشغيل مضخة الماء (water_plant)؟

    • أ) إذا كانت درجة الحرارة أقل من 24 درجة مئوية، وكانت نسبة الرطوبة أعلى من 40%.
    • ب) إذا كانت درجة الحرارة تساوي أو تزيد عن 24 درجة مئوية، وكانت نسبة الرطوبة تساوي أو تقل عن 40%.
    • ج) إذا كانت درجة الحرارة أعلى من 30 درجة مئوية فقط، بغض النظر عن الرطوبة.
    • د) إذا كانت نسبة الرطوبة أقل من 20% فقط، بغض النظر عن درجة الحرارة.

    الإجابة الصحيحة: b

    الإجابة: إذا كانت درجة الحرارة تساوي أو تزيد عن 24 درجة مئوية، وكانت نسبة الرطوبة تساوي أو تقل عن 40%.

    الشرح: 1. يقرأ الكود قيم مستشعرات الحرارة والرطوبة. 2. يحول القيم إلى وحدات مفهومة (درجة مئوية ونسبة مئوية). 3. الشرط الذي يؤدي إلى الري هو: (temperature >= 24.0) and (moisture <= 40.0). 4. هذا يعني تشغيل المضخة عندما تكون الحرارة مرتفعة (≥24°C) والتربة جافة (≤40% رطوبة).

    تلميح: ابحث عن عبارة `if` في الكود التي تتحقق من متغيرين قبل استدعاء الدالة.

    التصنيف: مفهوم جوهري | المستوى: متوسط

    في الكود الموضح، ما الغرض من السطر `time.sleep(30)` في نهاية حلقة البرنامج؟

    • أ) إغلاق اتصال البرنامج بالإنترنت نهائياً.
    • ب) تسريع عملية قراءة المستشعرات إلى أقصى حد.
    • ج) إيقاف تنفيذ البرنامج لمدة 30 ثانية قبل تكرار القراءة والإرسال التاليين.
    • د) إعادة تشغيل لوحة الأردوينو.

    الإجابة الصحيحة: c

    الإجابة: إيقاف تنفيذ البرنامج لمدة 30 ثانية قبل تكرار القراءة والإرسال التاليين.

    الشرح: 1. تقوم دالة `time.sleep()` بإيقاف تنفيذ البرنامج مؤقتاً. 2. الرقم بين القوسين (30) يمثل عدد الثواني. 3. في سياق نظام إنترنت الأشياء، يمنع هذا الأمر استهلاك موارد المعالج بشكل مستمر ويسمح بفاصل زمني بين عمليات أخذ القراءات وإرسال البيانات. 4. يساعد في تنظيم معدل نقل البيانات وتوفير الطاقة.

    تلميح: تأمل وظيفة `sleep` في سياق حلقة برمجية مستمرة.

    التصنيف: مفهوم جوهري | المستوى: سهل

    بناءً على الكود البرمجي المستخدم في أنظمة إنترنت الأشياء، ما الشرط المنطقي الذي يؤدي إلى تفعيل وظيفة ري النبتة (water_plant)؟

    • أ) أن تكون درجة الحرارة أقل من 24.0 والرطوبة أعلى من 40.0.
    • ب) أن تكون درجة الحرارة 24.0 أو أكثر، أو تكون الرطوبة 40.0 أو أقل.
    • ج) أن تكون درجة الحرارة 24.0 أو أكثر، ونسبة الرطوبة 40.0 أو أقل.
    • د) أن تكون درجة الحرارة مساوية تماماً لـ 24.0 بغض النظر عن نسبة الرطوبة.

    الإجابة الصحيحة: c

    الإجابة: أن تكون درجة الحرارة 24.0 أو أكثر، ونسبة الرطوبة 40.0 أو أقل.

    الشرح: 1. يعتمد الكود على جملة شرطية تتحقق من متغيرين معاً باستخدام أداة الربط (and). 2. الشرط الأول هو (temperature >= 24.0) أي درجة الحرارة أكبر من أو تساوي 24. 3. الشرط الثاني هو (moisture <= 40.0) أي الرطوبة أقل من أو تساوي 40. 4. يجب تحقق كلا الشرطين معاً ليتم استدعاء دالة الري.

    تلميح: لاحظ أداة الربط المنطقية (and) والعلاقة الرياضية (أكبر من أو يساوي/أصغر من أو يساوي) في جملة if.

    التصنيف: مفهوم جوهري | المستوى: متوسط