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

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

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

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

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

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

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

📝 ملخص الصفحة

📚 تنسيق البيانات

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

جسون (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`:
  • ```

    pip install requests

    ```

  • استيراد المكتبة:
  • ```python

    import requests

    ```

  • إنشاء متغير رابط API:
  • ```python

    api_url = "https://ksa-iot-api.azurewebsites.net/api/readings"

    ```

  • إنشاء كائن JSON للبيانات:
  • ```python

    reading = {

    "username": username,

    "password": password,

    "temperature": temperature,

    "moisture": moisture,

    "datetime": date_time

    }

    ```

  • استدعاء API باستخدام `requests.post()`:
  • ```python

    response = requests.post(api_url, json=reading)

    ```

    نقاط مهمة

    • يتم إنشاء كائن JSON يحتوي على بيانات المستخدم (اسم المستخدم، كلمة المرور) وبيانات القياسات (درجة الحرارة، الرطوبة، التاريخ والوقت).
    • تُستخدم دالة `requests.post()` لإرسال البيانات إلى رابط API محدد، حيث يتم تمرير رابط API وكائن JSON كمعاملات.

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

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

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

    أنشئ متغيراً جديداً باسم api_url بواسطة الرابط الآتي حيث يُعد نقطة وصل واجهة برمجة تطبيقات الويب للمنصة السحابية:

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

    api_url = "https://ksa-iot-api.azurewebsites.net/api/readings"

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

    أنشئ كائناً بمتغيرات الدالة التي ستمرر إلى واجهة برمجة تطبيقات الويب كجزء الطلب الرئيسي:

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

    reading = { "username": username, "password": password, "temperature": temperature, "moisture": moisture, "datetime": date_time }

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

    استدع واجهة برمجة تطبيقات الويب باستخدام دالة request.post() والتي تحتوي على معاملات كل من رابط واجهة برمجة تطبيقات الويب (API URL) وكائن جسون الرئيس (JSON body object):

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

    response = requests.post(api_url, json=reading)

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

    جسون هو نوع تنسيق بيانات مفتوح لنقل البيانات بين الخدمات

    🔍 عناصر مرئية

    الشكل 4.28: جسون هو نوع تنسيق بيانات مفتوح لنقل البيانات بين الخدمات

    A diagram illustrating data flow and services using puzzle pieces. It shows icons for 'data', 'program', '{json}', 'Python', and 'web applications'. The Ministry of Education logo is in the bottom left.

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

    أنشئ متغيراً جديداً باسم api_url بواسطة الرابط الآتي حيث يُعد نقطة وصل واجهة برمجة تطبيقات الويب للمنصة السحابية: api_url = "https://ksa-iot-api.azurewebsites.net/api/readings" أنشئ كائناً بمتغيرات الدالة التي ستمرر إلى واجهة برمجة تطبيقات الويب كجزء الطلب الرئيسي: reading = { "username": username, "password": password, "temperature": temperature, "moisture": moisture, "datetime": date_time } استدع واجهة برمجة تطبيقات الويب باستخدام دالة request.post() والتي تحتوي على معاملات كل من رابط واجهة برمجة تطبيقات الويب (API URL) وكائن جسون الرئيس (JSON body object): response = requests.post(api_url, json=reading) جسون هو نوع تنسيق بيانات مفتوح لنقل البيانات بين الخدمات --- VISUAL CONTEXT --- **DIAGRAM**: الشكل 4.28: جسون هو نوع تنسيق بيانات مفتوح لنقل البيانات بين الخدمات Description: A diagram illustrating data flow and services using puzzle pieces. It shows icons for 'data', 'program', '{json}', 'Python', and 'web applications'. The Ministry of Education logo is in the bottom left. Data: Illustrates the concept of JSON as an open data format for service communication. Context: Visual representation of how JSON facilitates data transfer between different services in web applications.

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

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

    ما هو الغرض الرئيسي من استخدام تنسيق JSON في أنظمة إنترنت الأشياء؟

    • أ) تخزين البيانات بشكل دائم في قاعدة بيانات محلية.
    • ب) تصميم واجهات المستخدم الرسومية للتطبيقات.
    • ج) نقل البيانات بين الخدمات المختلفة في تطبيقات الويب.
    • د) تشفير البيانات لحمايتها من الاختراق.

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

    الإجابة: نقل البيانات بين الخدمات المختلفة في تطبيقات الويب.

    الشرح: 1. JSON هو تنسيق بيانات مفتوح وخفيف الوزن. 2. يُستخدم لتمثيل البيانات المنظمة. 3. يسهل قراءته وكتابته من قبل البشر والآلات. 4. الغرض الرئيسي هو تسهيل نقل وتبادل البيانات بين خدمات الويب المختلفة، مثل إرسال قراءات المستشعرات من جهاز إلى منصة سحابية.

    تلميح: فكر في تنسيق البيانات الذي يسهل التواصل بين البرامج.

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

    ما هي الدالة المستخدمة في Python لاستدعاء واجهة برمجة تطبيقات الويب (API) وإرسال بيانات إليها؟

    • أ) api.call()
    • ب) web.send()
    • ج) requests.post()
    • د) json.upload()

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

    الإجابة: requests.post()

    الشرح: 1. مكتبة `requests` في Python تُستخدم لإرسال طلبات HTTP. 2. الدالة `post()` تُستخدم لإرسال بيانات إلى عنوان URL محدد. 3. في سياق إنترنت الأشياء، تُستخدم لإرسال قراءات المستشعرات (مثل درجة الحرارة والرطوبة) إلى منصة سحابية عبر API.

    تلميح: تأتي من مكتبة `requests` وتستخدم لإرسال طلبات HTTP.

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

    ما هو الهيكل النموذجي للكائن (JSON body) الذي يُرسل إلى واجهة برمجة تطبيقات الويب في مثال قراءات المستشعرات؟

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

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

    الإجابة: كائن يحتوي على حقول مثل اسم المستخدم، كلمة المرور، درجة الحرارة، الرطوبة، والتاريخ والوقت.

    الشرح: 1. الكائن (JSON body) يمثل البيانات المراد إرسالها. 2. يتضمن حقولاً مثل: `username` (للتوثيق)، `password` (للتوثيق)، `temperature` (قراءة المستشعر)، `moisture` (قراءة المستشعر)، `datetime` (طابع زمني للقراءة). 3. هذا الهيكل شائع في أنظمة إنترنت الأشياء لجمع البيانات من الأجهزة وإرسالها إلى السحابة.

    تلميح: يحتوي على بيانات الاعتماد وقراءات المستشعرات والمعلومات الزمنية.

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