📚 تمارين تطبيقية - مشروع الحديقة الذكية
المفاهيم الأساسية
لا تحتوي هذه الصفحة على تعريفات جديدة للمفاهيم.
خريطة المفاهيم
بناءً على المحتوى، هذه الصفحة هي استكمال للخريطة السابقة تحت فرع "تمارين التطبيق".
```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)` في نهاية الحلقة
تمارين التطبيق
#### 1. كفاءة PWM للتحكم في محرك DC
- السؤال: مناقشة كفاءة استخدام PWM للتحكم في محرك التيار المستمر.
#### 2. مقارنة المتحكمات الدقيقة
- السؤال: مقارنة بين Arduino و micro:bit من حيث عدد أطراف الإدخال/الإخراج لتحديد الأفضل لنظام الحديقة الذكية.
#### 3. معالجة بيانات المستشعرات
- السؤال: شرح سبب اختلاف الصيغة الرياضية لمعالجة قيم المدخلات التناظرية باختلاف نوع المستشعر.
#### 4. فحص جودة بيانات المستشعرات
- السؤال: ما أهمية إجراء عمليات فحص البيانات المجمعة لمعرفة ما إذا كانت المستشعرات ترسل فارغة أو تالفة؟
#### 5. مقارنة محركات الري
- السؤال: هل تعتقد أن استخدام محرك السيرفو (Servo Motor) هو الأفضل لري النباتات بشكل أكثر دقة وكفاءة؟ اعرض أفكارك أدناه.
#### 6. تطوير برنامج التقارير
- السؤال: قم بإعادة كتابة برنامج البايثون باستخدام أوامر الطباعة لإنشاء تقرير حول قراءات البيئة المحيطة كل 30 ثانية.
```
نقاط مهمة
* تحتوي هذه الصفحة على ثلاثة تمارين تطبيقية جديدة لمشروع الحديقة الذكية.
* التمارين تركز على: فحص جودة البيانات، مقارنة أنواع المحركات، وتطوير برنامج التقارير.
* هذه التمارين هي استمرار للتمارين السابقة في نفس المشروع.