أعمل على مشروع جديد، كيف تتابع حالة نباتاتك 🌷🌵 عبر الأنترنت (الجزء الأول)

الثلاثاء, أكتوبر 17, 2017


ما قصة المشروع ؟

خلال هذا الصيف كان علي اجتياز فترة تدريب في شركة، هو تدريب اجباري، يعتبر جزءا من التكوين الذي أتلقاه في الجامعة، و فقط قبل أيام قدمت عرضا أمام الأساتذة في الجامعة، حول المهام التي أنجزتها خلال التدريب و المشروع الذي عملت عليه خلال فترة التدريب في الشركة.

إيجاد فرصة للتدريب في شركة ما ليس سهلا اطلاقا، خصوصا كطالب سنة أولى، لا يوجد مدير شركة يريد ان يضيع وقته مع طالب مبتدأ في سنته الأولى، في حالة كهاته لن ينفع الا استخراج لائحة علاقتك، على أمل أن يتوسط لك أحدهم للحصول على تدريب في شركة ما.

كنت محظوظا أني تمكنت من الحصول على فرصة تدريب في شركة تنشط بمجال الأتمتة الصناعية Industrial automation، و اقترحت ان اعمل على أحد المشاريع التي جمعت فيها ثلاثة من أحب الأشياء إلي: البرمجة + الإلكترونيات + النباتات.

الفكرة 

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

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

الأدوات المستعملة 

كالعادة استعملت لوحة أردوينو، راسبيري بي كان ليكون خيارا أفضل، لكنني أردت أن أقوم بالأمر بأقل تكلفة ممكنة.

Image result for Arduino mega


شاشة LCD حجمها 2.4" ملونة ستكون مثالية لهكذا المشروع، هاته الشاشة ستفتح لي إمكانيات غير محدودة لتخصيص هذا المشروع، فكرت أن أعرض البيانات على شكل منحنيات هكذا ستكون عندي فكرة شاملة على حالة النبتة طيلة فترة زمنية معينة.
من خلال المنحنى فقط يمكنني أن أرى إلى أي مدى ارتفعت درجة الحرارة و إلي أي مدى انخفضت.
مستعشر درجة حرارة و في نفس الوقت مسشتعر رطوبة الهواء DHT11، دقته متوسطة، ليس مناسبا لهكذا مشروع، لكنه هذا ما لدي الآن.
هذا المستشعر لديه أخ أكبر بدقة أعلى اسمه DHT22، هو مناسب أكثر لمشروع كهذا.
هذا مستشعر لرطوبة التربة، استعملته سابقا في مشروع  نشرته هنا على المدونة

هذه لوحة تطويرية اسمها NodeMcu بها أيضا منافذ (مداخل/مخارج) لكنها تحتوي ايضا على شريحة WiFi، أرديونو سترسل البيانات إلى هاته اللوحة، التي ترسلها بدورها إلى ويب سيرفر عن طريق Http requests.

النتيجة


يمكنني الآن أن أتابع حالة نباتاتي،و أراقبها في كل لحظة، و أتأكد من أن كل شيء بخير.
لكن يبقى هذا غير عملي حتى الآن، أحتاج شيئا يمكنني من مراقبة حالة نباتاتي و أنا في الجامعة، أو في أي مكان آخر، هنا يأتي دور الموقع.


الموقع

قمت ببرمجة الموقع باستعمال PHP و MySQL، خبرتي ضعيفة جدا في PHP، ليس مثاليا جدا، لكنه يعمل 😅
الموقع الآن يعيش فقط على حاسوبي، لم أحصل على فرصة بعد لرفعه على استضافة.

يقوم الموقع باستقبال البينات من لوحة NodeMcu و يخزنها في قاعدة بيانات، و يعطي إمكانية عرض هذه البيانات بشكل جميل على شكل منحنيات، استعملت مكتبة جافاسكربت Chart.js لرسم هاته المنحنيات، استعملت ايضا Ajax لتحديث هاته المنحنيات أتوماتيكيا دون الحاجة لتحديث الصفحة.




لكن لحظة كم يمكنني تتبع من نبتة عن طريق الموقع ؟ ماذا لو كان هناك نباتات متفرقة في أماكن مختلفة ؟
حسنا مع كل نبتة أو مجموعة نباتات في مكان واحد أضع محطة قياس، كل محطة لديها عنوان IP خاص.
ويمكنني اعدادها لكي ترسل البيانات الى نفس الويب سرفر


وقت الحقيقة 😂

هذا ما وصلت إليه الآن في المشروع، المشروع كبير نسبيا عما عملت عليه سابقا، لذا سيستغرق وقتا اتمام العمل على المشروع.
بصراحة لست راضيا عن ما هو عليه الآن، لست مقتنعا بالكود الذي كتبته، أشعر أنه غبي قليلا، لذا أخطط لإعادة كتابة كل شيء من الصفر.

هذا كان الجزء الأول، في الجزء القادم سأتحدث عن برمجة المحطة ، و في جزء قادم أخر برمجة الموقع.
لست مبرمجا بارعا، مستواي أقل من مبتدأ، لذا لا تتوقع شيئا خارقا، لا تضحكو علي فقط أرجوكم -_-

مقالات مشابهة

0 comments