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

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

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

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

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

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

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

📝 ملخص الصفحة

📚 استدعاء واجهة برمجة تطبيقات الويب باستخدام البايثون

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

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

جسون (JavaScript Object Notation - JSON): نوع مفتوح لتنسيق البيانات يستخدم لنقل البيانات بين الخدمات. الكائنات فيه هي أزواج من (مفتاح - قيمة) تخزن أنواع البيانات مثل السلاسل النصية والأعداد والمصفوفات.

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

```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`:
  • ```bash

    pip install requests

    ```

  • استدعاء المكتبة في البرنامج:
  • ```python

    import requests

    ```

  • الحصول على التاريخ والوقت:
  • ```python

    from datetime import datetime

    date_time = str(datetime.now())

    ```

  • تعريف بيانات الدخول (اسم المستخدم وكلمة المرور الخاصة بـ Binary IoT Cloud):
  • ```python

    username = "your_username_here"

    password = "your_password_here"

    ```

  • إنشاء دالة `send_data`:
  • ```python

    def send_data(username, password, temperature, moisture):

    ```

    ##### الشكل التوضيحي (شكل 4.27)

    • تطبيق يتصل بمنصة سحابية من خلال واجهة برمجة تطبيقات الويب.

    تمارين التطبيق

    #### 1. كفاءة PWM للتحكم في محرك DC

    • السؤال: مناقشة كفاءة استخدام PWM للتحكم في محرك التيار المستمر.
    #### 2. مقارنة المتحكمات الدقيقة

    • السؤال: مقارنة بين Arduino و micro:bit من حيث عدد أطراف الإدخال/الإخراج لتحديد الأفضل لنظام الحديقة الذكية.
    #### 3. معالجة بيانات المستشعرات

    • السؤال: شرح سبب اختلاف الصيغة الرياضية لمعالجة قيم المدخلات التناظرية باختلاف نوع المستشعر.
    #### 4. فحص جودة بيانات المستشعرات

    • السؤال: ما أهمية إجراء عمليات فحص البيانات المجمعة لمعرفة ما إذا كانت المستشعرات ترسل فارغة أو تالفة؟
    #### 5. مقارنة محركات الري

    • السؤال: هل تعتقد أن استخدام محرك السيرفو (Servo Motor) هو الأفضل لري النباتات بشكل أكثر دقة وكفاءة؟ اعرض أفكارك أدناه.
    #### 6. تطوير برنامج التقارير

    • السؤال: قم بإعادة كتابة برنامج البايثون باستخدام أوامر الطباعة لإنشاء تقرير حول قراءات البيئة المحيطة كل 30 ثانية.
    ```

    نقاط مهمة

    * الهدف هو إنشاء كائن بايثون (`requests`) يحتوي على بيانات البيئة المحيطة وإرسالها إلى منصة Binary IoT Cloud عبر Web API.

    * يتم استخدام تنسيق JSON لنقل البيانات بين الخدمات.

    * تتضمن الخطوات العملية تثبيت المكتبات، استيرادها، ومعالجة البيانات (مثل التاريخ والوقت) قبل إرسالها.

    * الشكل 4.27 يوضح فكرة الاتصال بالتطبيق السحابي عبر Web API.

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

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

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

    استدعاء واجهة برمجة تطبيقات الويب باستخدام البايثون

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

    Calling a Web API with Python

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

    ستقوم بإنشاء كائن بايثون (Python requests) الذي يحتوي على بيانات البيئة المحيطة، ويرسلها إلى منصة الحوسبة السحابية السحابية (Binary IoT Cloud) من خلال واجهة برمجة تطبيقات الويب (Web API).

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

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

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

    جسور أو ترميز الكائنات

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

    JavaScript Object Notation - JSON

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

    هي نوع مفتوح لتنسيق البيانات يستخدم لنقل البيانات بين الخدمات. الكائنات في جسون هي أزواج تكون من (مفتاح - قيمة) تمكنها تخزين أنواع البيانات مثل: السلاسل النصية، والأعداد الصحيحة، والأعداد العشرية، والمصفوفات، وكائنات أخرى.

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

    قم بتثبيت حزمة طلبات البايثون (Python requests) من خلال نظام إدارة الحزم (pip). افتح الواجهة الطرفية (Terminal) في مجلد العمل الخاص بك، وأدخل الأمر الآتي:

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

    pip install requests

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

    في بداية برنامج البايثون الخاص بك، استدع حزمة الطلبات (requests) بالسطر البرمجي الآتي:

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

    import requests

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

    احصل على التاريخ والوقت الحالي، وحولهما إلى نص باستخدام الوحدة القياسية (datetime) بالطريقة الآتية:

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

    from datetime import datetime

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

    date_time = str(datetime.now())

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

    أنشئ متغيرين باسم username (اسم المستخدم) و password (كلمة المرور)، بحيث يتطابقان مع البيانات التي استخدمتها سابقًا للتسجيل في منصة الحوسبة السحابية Binary IoT Cloud.

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

    username = "your_username_here"

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

    password = "your_password_here"

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

    أنشئ دالة جديدة باسم (send_data) تستقبل المعاملات الآتية:

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

    def send_data(username, password, temperature, moisture):

    نوع: FIGURE_REFERENCE

    شكل 4.27: تطبيق يتصل بمنصة سحابية من خلال واجهة برمجة تطبيقات الويب

    نوع: METADATA

    وزارة التعليم

    نوع: METADATA

    Ministry of Education

    نوع: METADATA

    2025 - 1447

    🔍 عناصر مرئية

    شكل 4.27: تطبيق يتصل بمنصة سحابية من خلال واجهة برمجة تطبيقات الويب

    Diagram illustrates a cloud icon connected to servers and devices, representing a web API connection.

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

    استدعاء واجهة برمجة تطبيقات الويب باستخدام البايثون Calling a Web API with Python ستقوم بإنشاء كائن بايثون (Python requests) الذي يحتوي على بيانات البيئة المحيطة، ويرسلها إلى منصة الحوسبة السحابية السحابية (Binary IoT Cloud) من خلال واجهة برمجة تطبيقات الويب (Web API). واجهة برمجة تطبيقات الويب (Web API) هي نقطة وصل تسمح لبرنامج ما بالتواصل مع برنامج آخر موجود على خادم على شبكة الإنترنت. جسور أو ترميز الكائنات JavaScript Object Notation - JSON هي نوع مفتوح لتنسيق البيانات يستخدم لنقل البيانات بين الخدمات. الكائنات في جسون هي أزواج تكون من (مفتاح - قيمة) تمكنها تخزين أنواع البيانات مثل: السلاسل النصية، والأعداد الصحيحة، والأعداد العشرية، والمصفوفات، وكائنات أخرى. قم بتثبيت حزمة طلبات البايثون (Python requests) من خلال نظام إدارة الحزم (pip). افتح الواجهة الطرفية (Terminal) في مجلد العمل الخاص بك، وأدخل الأمر الآتي: pip install requests في بداية برنامج البايثون الخاص بك، استدع حزمة الطلبات (requests) بالسطر البرمجي الآتي: import requests احصل على التاريخ والوقت الحالي، وحولهما إلى نص باستخدام الوحدة القياسية (datetime) بالطريقة الآتية: from datetime import datetime date_time = str(datetime.now()) أنشئ متغيرين باسم username (اسم المستخدم) و password (كلمة المرور)، بحيث يتطابقان مع البيانات التي استخدمتها سابقًا للتسجيل في منصة الحوسبة السحابية Binary IoT Cloud. username = "your_username_here" password = "your_password_here" أنشئ دالة جديدة باسم (send_data) تستقبل المعاملات الآتية: def send_data(username, password, temperature, moisture): شكل 4.27: تطبيق يتصل بمنصة سحابية من خلال واجهة برمجة تطبيقات الويب وزارة التعليم Ministry of Education 2025 - 1447 --- VISUAL CONTEXT --- **DIAGRAM**: شكل 4.27: تطبيق يتصل بمنصة سحابية من خلال واجهة برمجة تطبيقات الويب Description: Diagram illustrates a cloud icon connected to servers and devices, representing a web API connection. Context: Illustrates the concept of connecting to a cloud platform via a web API.

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

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

    ما هو تعريف واجهة برمجة تطبيقات الويب (Web API)؟

    • أ) لغة برمجة تستخدم لإنشاء تطبيقات الويب التفاعلية.
    • ب) بروتوكول أمان يحمي البيانات أثناء نقلها عبر الإنترنت.
    • ج) نقطة وصل تسمح لبرنامج ما بالتواصل مع برنامج آخر موجود على خادم على شبكة الإنترنت.
    • د) مكتبة في بايثون مخصصة لإرسال واستقبال طلبات HTTP.

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

    الإجابة: نقطة وصل تسمح لبرنامج ما بالتواصل مع برنامج آخر موجود على خادم على شبكة الإنترنت.

    الشرح: 1. واجهة برمجة تطبيقات الويب هي اختصار لـ Web API. 2. وظيفتها الأساسية هي تمكين التواصل. 3. هذا التواصل يكون بين برنامجين، أحدهما موجود على خادم عبر الإنترنت. 4. بذلك، تعمل كوسيط أو نقطة اتصال.

    تلميح: فكر في وظيفة الواجهة التي تربط بين برنامجين عبر الشبكة.

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

    ما هو تنسيق JSON المستخدم في نقل البيانات عبر واجهات برمجة التطبيقات؟

    • أ) لغة ترميز تستخدم لوصف وهيكلة محتوى صفحات الويب.
    • ب) نوع مفتوح لتنسيق البيانات يستخدم لنقل البيانات بين الخدمات، ويعتمد على أزواج (مفتاح - قيمة).
    • ج) بروتوكول يستخدم لتحويل عناوين IP إلى أسماء نطاقات.
    • د) مكتبة في بايثون لمعالجة وتخزين البيانات في قواعد البيانات.

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

    الإجابة: نوع مفتوح لتنسيق البيانات يستخدم لنقل البيانات بين الخدمات، ويعتمد على أزواج (مفتاح - قيمة).

    الشرح: 1. JSON هو اختصار لـ JavaScript Object Notation. 2. هو تنسيق مفتوح وقياسي لنقل البيانات. 3. الغرض الأساسي منه هو تبادل البيانات بين الخدمات والتطبيقات. 4. بنيته تعتمد على أزواج المفتاح والقيمة لتخزين أنواع بيانات مختلفة.

    تلميح: يركز هذا التنسيق على بنية البيانات وكيفية تنظيمها لنقلها.

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

    ما الخطوة البرمجية الأولى اللازمة لاستخدام مكتبة `requests` في بايثون لإرسال طلب إلى Web API؟

    • أ) تثبيت المكتبة باستخدام الأمر `pip install requests` في الواجهة الطرفية.
    • ب) تحديد عنوان URL للـ API المستهدف داخل البرنامج.
    • ج) استدعاء المكتبة باستخدام الأمر `import requests` في بداية البرنامج.
    • د) كتابة دالة رئيسية باسم `main()` لتنفيذ البرنامج.

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

    الإجابة: استدعاء المكتبة باستخدام الأمر `import requests` في بداية البرنامج.

    الشرح: 1. لاستخدام أي مكتبة خارجية في بايثون، يجب استيرادها أولاً. 2. مكتبة `requests` هي المكتبة المسؤولة عن إرسال واستقبال طلبات HTTP. 3. يتم استيرادها باستخدام الكلمة المفتاحية `import` متبوعة باسم المكتبة. 4. هذه الخطوة تسبق أي استخدام لوظائف المكتبة مثل `requests.post()` أو `requests.get()`.

    تلميح: تتعلق الخطوة باستيراد المكتبة أو الوحدة البرمجية للاستخدام.

    التصنيف: صيغة/خطوات | المستوى: سهل

    في سياق إنترنت الأشياء، ما الغرض الرئيسي من إنشاء دالة مثل `send_data(username, password, temperature, moisture)`؟

    • أ) لتخزين بيانات تسجيل الدخول وقراءات المستشعرات محليًا على الجهاز.
    • ب) لتغليف وتنظيم عملية إرسال بيانات المستشعرات (مثل درجة الحرارة والرطوبة) إلى منصة سحابية عبر Web API.
    • ج) لتحميل مكتبات بايثون الإضافية المطلوبة للاتصال بالإنترنت.
    • د) لعرض قراءات المستشعرات على شاشة المستخدم مباشرة دون استخدام السحابة.

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

    الإجابة: لتغليف وتنظيم عملية إرسال بيانات المستشعرات (مثل درجة الحرارة والرطوبة) إلى منصة سحابية عبر Web API.

    الشرح: 1. الدوال في البرمجة تُستخدم لتغليف كتل من التعليمات البرمجية ذات الوظيفة المحددة. 2. الدالة `send_data` مصممة خصيصًا لعملية إرسال البيانات في أنظمة إنترنت الأشياء. 3. معاملاتها (username, password) للتوثيق، و(temperature, moisture) تمثل بيانات البيئة المراد إرسالها. 4. الهدف النهائي هو إرسال هذه البيانات بشكل منظم إلى منصة سحابية عبر استدعاء Web API.

    تلميح: فكر في وظيفة الدوال البرمجية بشكل عام، وتطبيقها على عملية إرسال البيانات.

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