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

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

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

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

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

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

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

📝 ملخص الصفحة

📚 برمجة الأردوينو بالبايثون (pyfirmata)

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

pyfirmata: حزمة برمجية في بايثون تسمح بالاتصال وبرمجة لوحة الأردوينو.

StandardFirmata: بروتوكول/مكتبة يتم تحميلها على لوحة الأردوينو لتمكين الاتصال مع لغات برمجة أخرى مثل بايثون.

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

```markmap

تطبيقات على المتحكمات الدقيقة

إنشاء نظام إنذار تسرب الغاز

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

#### تمرين 1: بحث عن مخاطر الغاز

##### • البحث في الإنترنت عن أنواع مختلفة لمخاطر الغاز التي يمكن لمستشعر الغاز اكتشافها وتحليلها.

##### • عرض نتائج البحث.

#### تمرين 2: برمجة نغمات الإنذار

##### • تحليل كيفية إصدار الطنان الكهربائي لنغمات مختلفة كإنذارات للأنواع المختلفة من المخاطر.

##### • عرض الأفكار.

#### تمرين 3: استخدامات أخرى للطنان الكهربائي

##### • وصف الاستخدامات الممكنة للطنان الكهربائي بخلاف نظام الإنذار.

#### تمرين 4: مستشعر الغاز

##### • مراجعة المعلومات والإشارات التي يصدرها مستشعر الغاز.

##### • تعليل سبب زيادة عدد أطراف توصيله مقارنة بالمستشعرات الأخرى.

#### تمرين 5: تعديل نمط وميض LED

##### • تغيير نمط وميض الدايودات المشعة للضوء.

##### • تشغيل وإيقاف الدايود المشع للضوء الأخضر فقط ثلاث مرات ولمدة ثانية واحدة كل مرة.

#### تمرين 6: تعديل نمط صفير الطنان

##### • تغيير نمط صفير الطنان الكهربائي.

##### • إصدار صفير بتردد 220 هرتز لمدة 700 مللي ثانية.

#### تمرين 7: توسيع دائرة التحذير

##### • توسيع الدائرة لتحذير إضافي.

##### • إصدار الطنان تحذيراً إضافياً عند زيادة قيمة الغاز عن 100.

محاكاة وحدة مراقبة محمية زراعية

تنفيذ الدائرة في Tinkercad

#### • استخدام جهاز تحكم الأردوينو الدقيق.

#### • استخدام الدايودات المشعة للضوء (LED).

#### • استخدام المستشعرات.

وظيفة النظام

#### • مراقبة التغيرات البيئية:

##### - الحركة.

##### - درجة الحرارة.

##### - رطوبة التربة.

##### - وجود الدخان.

#### • إشعار المستخدم بالتغيرات.

متطلبات المشروع

#### 1. استخدام ألوان مختلفة للدايودات المشعة للضوء (LED) لكل مستشعر لتمييز نوع التغير.

#### 2. توسيع التصميم لإصدار رسائل في وحدة التحكم عند استيفاء الشروط (مثل: !Fire Hazard عند اكتشاف دخان).

إنشاء تطبيق سحابي لإنترنت الأشياء

الهدف

#### • مراقبة البيئة وجمع البيانات في الزمن الفعلي وإرسالها إلى منصة سحابية.

الأدوات المطلوبة

#### • بيئة التطوير المتكاملة للأردوينو (Arduino IDE)

#### • أداة جيت برينز بايتشارم (JetBrains PyCharm)

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

أهداف التعلم

#### • استخدام البايثون وبروتوكول PyFirmata لبرمجة الأردوينو.

#### • تصميم دائرة لتطبيق إنترنت الأشياء باستخدام الأردوينو.

#### • مراقبة البيئة وجمع بيانات المستشعر في الزمن الفعلي.

#### • استخدام خدمة الويب لإرسال البيانات إلى منصة سحابية.

#### • مراقبة بيئة بعيدة عبر المنصة السحابية.

#### • توظيف بيانات المستشعر والبيانات السحابية لاتخاذ القرارات.

#### • التعرف على توسيع نطاق تطبيقات إنترنت الأشياء لحلول معقدة.

إعداد بيئة تطوير الأردوينو

استخدام بايثون في برمجة الأردوينو

#### • لغة C++ هي اللغة الرسمية لبرمجة الأردوينو.

#### • يمكن استخدام لغة بايثون عبر بروتوكول Firmata.

#### • بايثون لغة عالية المستوى وقوية بسبب مكتباتها الكثيرة.

#### • دور Firmata: توفير الاتصال بين الأردوينو وأوامر لغة البرمجة.

الخطوة العملية الأولى

#### • توصيل لوحة الأردوينو بمنفذ USB في الحاسب.

إعداد بيئة التطوير المتكاملة (IDE)

تنزيل وتثبيت Arduino IDE

#### • الانتقال إلى الموقع https://www.arduino.cc/en/software

#### • تنزيل أحدث إصدار متوافق مع جهاز التحكم الدقيق

#### • تشغيل برنامج التثبيت

تحميل مكتبة StandardFirmata

#### • فتح Arduino IDE عبر أيقونة البحث في الحاسب

#### • الذهاب إلى File > Examples > Firmata

##### • AllInputsFirmata

##### • AnalogFirmata

##### • EchoString

##### • OldStandardFirmata

##### • ServoFirmata

##### • SimpleAnalogFirmata

##### • SimpleDigitalFirmata

##### • StandardFirmata

##### • StandardFirmataBLE

##### • StandardFirmataChipKit

##### • StandardFirmataEthernet

##### • StandardFirmataPlus

##### • StandardFirmataWiFi

##### • test

#### • تحميل المكتبة إلى لوحة الأردوينو

توصيل لوحة أردوينو

تحديد منفذ الاتصال (Serial Port)

#### • الطريق: Tools (أدوات) > Port (منفذ) > Serial Ports (منافذ تسلسلية).

#### • مثال: COM4 (قد يختلف حسب الجهاز، مثل COM3 أو COM5).

#### • تسجيل رقم المنفذ لاستخدامه في برنامج بايثون.

الشرط الأساسي

#### • يجب توصيل لوحة الأردوينو (مثل Arduino Uno) بمنفذ USB في الحاسوب أولاً، وإلا لن يكون خيار Port فعالاً.

دور مكتبة Firmata

#### • تبقى مكتبة Firmata محملة على الأردوينو لتمكين برنامج بايثون من الاتصال به.

برمجة الأردوينو بالبايثون (pyfirmata)

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

#### 1. تثبيت حزمة pyfirmata

##### • الأمر في Terminal: pip install pyfirmata

#### 2. استدعاء المكتبة في الكود

##### • import pyfirmata

#### 3. تحديد منفذ الاتصال

##### • communication_port = "COM4" (يختلف حسب الجهاز)

#### 4. إجراء الاتصال والوصول للأطراف

##### • board = pyfirmata.Arduino(communication_port)

##### • it = pyfirmata.util.Iterator(board)

##### • it.start()

#### 5. استخدام حلقة لا نهائية

##### • while True:

##### • # كتابة الأوامر هنا

ملاحظة تقنية

#### • الاتصال عبر USB يستخدمه نظام التشغيل (مثل ويندوز) لإنشاء منفذ تسلسلي افتراضي للتبادل مع الأردوينو.

ماذا تعلمت

التعرف على مكونات جهاز التحكم الدقيق وبرمجته

قياس البيانات من مستشعرات الإدخال المختلفة

فهم كيفية عمل بيانات المستشعرات والخوارزميات معاً في البرمجة

استخدام استجابات التشغيل والاستجابات الآلية

تصميم دوائر إنترنت الأشياء باستخدام جهاز التحكم الدقيق في Tinkercad

برمجة جهاز الأردوينو باستخدام لغة لبنات التعليمات البرمجية في Tinkercad

المصطلحات الرئيسية

Gas Sensor / مستشعر الغاز

Soil Moisture Sensor / مستشعر رطوبة التربة

Pulse-Width Modulation / تضمين عرض النبضة

Temperature Sensor / مستشعر الحرارة

```

نقاط مهمة

  • بعد تحميل StandardFirmata على الأردوينو، يجب اتباع خطوات برمجية محددة في كل مشروع بايثون.
  • يتم تثبيت حزمة pyfirmata عبر الأمر `pip install pyfirmata` في Terminal بيئة التطوير (مثل PyCharm).
  • يجب تحديد منفذ الاتصال الصحيح للوحة الأردوينو (مثل COM4) وتخزينه في متغير.
  • يتم إنشاء كائن `board` للاتصال، وكائن `Iterator` للوصول إلى مدخلات الدائرة.
  • يجب وضع الأوامر الرئيسية داخل حلقة لا نهائية `while True:` لتنفيذها باستمرار على الأردوينو.

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

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

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

الآن وبعد أن قمت بتحميل StandardFirmata على جهاز تحكم الأردوينو الدقيق، عليك اتباع الخطوات الآتية مع كل مشروع تقوم بتنفيذه باستخدام لغة البايثون:

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

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

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

pip install pyfirmata

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

أنشئ ملف بايثون جديد، و في بداية تعليماتك البرمجية، استدعِ حزمة pyfirmata البرمجية بالأسطر البرمجي أدناه:

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

import pyfirmata

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

أنشئ متغيراً باسم communication_port (منفذ الاتصال)، يقوم بتخزين اسم منفذ الاتصال بحاسوبك حيث يتم توصيل لوحة الأردوينو:

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

communication_port = "COM4"

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

استخدم الأوامر الآتية لإجراء الاتصال بين برنامج البايثون ولوحة الأردوينو الخاصة بك، وللوصول إلى أطراف لوحة الأردوينو:

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

# Set the Arduino port to read from board = pyfirmata.Arduino(communication_port) # Set up access to the inputs of the circuit it = pyfirmata.util.Iterator(board) it.start()

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

يتعين عليك استخدام تكراراً لا نهائياً كـ while True: لأوامرك بصورة مستمرة في الأردوينو.

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

while True: # write your code here

نوع: FIGURE_REFERENCE

شكل 4.4: برمجة الأردوينو بالبايثون من خلال pyfirmata

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

على الرغم من أن الاتصال يبدو من خلال منفذ USB، إلا أن الواقع هو استخدام ويندوز لتنفيذ عملي قياسي لتبادل البيانات مع جهاز الأردوينو، حيث يقوم نظام التشغيل بإنشاء منفذ تسلسلي افتراضي.

🔍 عناصر مرئية

شكل 4.4: برمجة الأردوينو بالبايثون من خلال pyfirmata

A diagram illustrating the setup for programming an Arduino board using Python and the pyfirmata library. It shows an Arduino Uno board connected to a computer running PyCharm. The pyfirmata logo is also visible, indicating its role in the connection.

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

الآن وبعد أن قمت بتحميل StandardFirmata على جهاز تحكم الأردوينو الدقيق، عليك اتباع الخطوات الآتية مع كل مشروع تقوم بتنفيذه باستخدام لغة البايثون: افتح باي تشارم (PyCharm) وقم بتثبيت حزمة pyfirmata من خلال نظام مدير الحزم (pip). في باي تشارم، افتح الواجهة الطرفية (Terminal) في مجلد عملك، وقم بإدخال الأمر الآتي: pip install pyfirmata أنشئ ملف بايثون جديد، و في بداية تعليماتك البرمجية، استدعِ حزمة pyfirmata البرمجية بالأسطر البرمجي أدناه: import pyfirmata أنشئ متغيراً باسم communication_port (منفذ الاتصال)، يقوم بتخزين اسم منفذ الاتصال بحاسوبك حيث يتم توصيل لوحة الأردوينو: communication_port = "COM4" استخدم الأوامر الآتية لإجراء الاتصال بين برنامج البايثون ولوحة الأردوينو الخاصة بك، وللوصول إلى أطراف لوحة الأردوينو: # Set the Arduino port to read from board = pyfirmata.Arduino(communication_port) # Set up access to the inputs of the circuit it = pyfirmata.util.Iterator(board) it.start() يتعين عليك استخدام تكراراً لا نهائياً كـ while True: لأوامرك بصورة مستمرة في الأردوينو. while True: # write your code here شكل 4.4: برمجة الأردوينو بالبايثون من خلال pyfirmata على الرغم من أن الاتصال يبدو من خلال منفذ USB، إلا أن الواقع هو استخدام ويندوز لتنفيذ عملي قياسي لتبادل البيانات مع جهاز الأردوينو، حيث يقوم نظام التشغيل بإنشاء منفذ تسلسلي افتراضي. --- VISUAL CONTEXT --- **DIAGRAM**: شكل 4.4: برمجة الأردوينو بالبايثون من خلال pyfirmata Description: A diagram illustrating the setup for programming an Arduino board using Python and the pyfirmata library. It shows an Arduino Uno board connected to a computer running PyCharm. The pyfirmata logo is also visible, indicating its role in the connection. Context: Illustrates the hardware and software setup required for Arduino programming with Python.

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

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

ما الغرض الأساسي من استخدام الأمر `pip install pyfirmata` في مشروع برمجة الأردوينو بالبايثون؟

  • أ) إنشاء ملف بايثون جديد لمشروع الأردوينو.
  • ب) تثبيت حزمة pyfirmata البرمجية التي تتيح الاتصال بين برنامج البايثون ولوحة الأردوينو.
  • ج) فتح منفذ اتصال تسلسلي (COM) مع لوحة الأردوينو.
  • د) تشغيل تكرار لا نهائي (while loop) لتنفيذ الأوامر باستمرار.

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

الإجابة: تثبيت حزمة pyfirmata البرمجية التي تتيح الاتصال بين برنامج البايثون ولوحة الأردوينو.

الشرح: 1. الأمر `pip` هو مدير حزم لغة بايثون. 2. `install` تعني تثبيت. 3. `pyfirmata` هو اسم الحزمة البرمجية المطلوبة. 4. الغرض هو تثبيت هذه الحزمة لتمكين الاتصال مع الأردوينو.

تلميح: هذا الأمر يُنفذ في الواجهة الطرفية (Terminal) لإضافة مكتبة برمجية محددة.

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

ما الوظيفة الأساسية للكود `board = pyfirmata.Arduino(communication_port)` في برمجة الأردوينو بالبايثون؟

  • أ) تثبيت مكتبة pyfirmata على نظام التشغيل.
  • ب) تعريف متغير لتخزين اسم منفذ الاتصال بالحاسوب.
  • ج) إنشاء كائن (object) يمثل لوحة الأردوينو وإجراء الاتصال بين برنامج البايثون واللوحة عبر المنفذ المحدد.
  • د) بدء تكرار (iterator) لقراءة البيانات من أطراف الدخل في الدائرة.

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

الإجابة: إنشاء كائن (object) يمثل لوحة الأردوينو وإجراء الاتصال بين برنامج البايثون واللوحة عبر المنفذ المحدد.

الشرح: 1. `pyfirmata.Arduino()` هي دالة من مكتبة pyfirmata. 2. `communication_port` هو متغير يحتوي اسم المنفذ (مثل 'COM4'). 3. نتيجة تنفيذ الدالة هي كائن (board) يمثل لوحة الأردوينو المتصلة. 4. هذا الكائن هو نقطة البداية للتحكم في أطراف (pins) اللوحة.

تلميح: يستخدم هذا الكائن المتغير الذي يحمل اسم منفذ الاتصال (مثل COM4).

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

ما الدور الذي يؤديه الكود `it = pyfirmata.util.Iterator(board); it.start()` في اتصال البايثون بالأردوينو؟

  • أ) إغلاق الاتصال مع لوحة الأردوينو بعد انتهاء البرنامج.
  • ب) إعداد وتشغيل مُكرِّر (Iterator) لقراءة البيانات من أطراف الدخل (inputs) في الدائرة الكهربائية المتصلة بالأردوينو.
  • ج) تحديد المنفذ التسلسلي الافتراضي الذي أنشأه نظام التشغيل.
  • د) كتابة الأوامر البرمجية داخل تكرار لا نهائي (while True).

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

الإجابة: إعداد وتشغيل مُكرِّر (Iterator) لقراءة البيانات من أطراف الدخل (inputs) في الدائرة الكهربائية المتصلة بالأردوينو.

الشرح: 1. `pyfirmata.util.Iterator(board)` تنشئ كائن Iterator مرتبط بلوحة الأردوينو. 2. مهمة هذا الكائن هي إدارة قراءة البيانات من أطراف الإدخال (مثل أجهزة الاستشعار) بشكل مستمر. 3. استدعاء `it.start()` يبدأ عملية القراءة هذه في الخلفية.

تلميح: يرتبط هذا الكائن بالكائن الذي يمثل لوحة الأردوينو (board).

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

لماذا يُستخدم التكرار اللانهائي `while True:` عادةً في برمجة الأردوينو باستخدام البايثون؟

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

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

الإجابة: لتنفيذ الأوامر البرمجية بصورة مستمرة ومتكررة طالما أن لوحة الأردوينو قيد التشغيل.

الشرح: 1. `while True:` يخلق حلقة تنفيذ لا نهائية. 2. جميع الأوامر الموجودة داخل هذه الحلقة تُنفذ بشكل متكرر. 3. هذا ضروري لأن العديد من تطبيقات إنترنت الأشياء (مثل قراءة مستمرة من حساس أو تشغيل أضواء) تتطلب تنفيذاً مستمراً دون توقف.

تلميح: هذا الهيكل البرمجي شائع في أنظمة التحكم والمراقبة التي تعمل دون توقف.

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