- المكونات المطلوبة:
- إعداد البريد الإلكتروني في Raspberry Pi لإرسال رسائل التنبيه:
- إعداد القارورة في Raspberry Pi:
- كود HTML لصفحة الويب:
- حاوية ذكية باستخدام Raspberry Pi ومستشعر الوزن
- شرح الدائرة:
- شرح العمل:
ربما تكون قد سمعت عن الثلاجة الذكية التي يمكنها تلقائيًا طلب المواد الغذائية التي تنخفض في الثلاجة ، لذلك نستلهم من ذلك أننا نبني هنا حاوية Raspberry Pi الذكية باستخدام Load Cell و HX711 Weight Sensor. يمكن أن تخبرك هذه الحاوية الذكية عن حالتها مثل ما إذا كانت ممتلئة أو فارغة ، عن طريق إرسال بريد إلى معرف البريد الإلكتروني الخاص بك. يمكننا أيضًا مراقبة وزن الحاوية في الوقت الفعلي باستخدام متصفح الويب ، وهذا يجعله مشروع إنترنت الأشياء حيث يمكنك مراقبة الحاوية الخاصة بك من أي مكان باستخدام الإنترنت. هنا سيتم تحديث وزن الحاوية في كل 5 ثوانٍ على متصفح الويب ، ويمكن تغيير هذه المدة بسهولة في ملف كود HTML. لقد حددنا قيمة الوزن العتبة 300 جرام لإرسال البريد الإلكتروني حول ذلك " الحاوية ممتلئة "، يمكن أيضًا تغيير هذا الحد. تحقق من الفيديو في نهاية هذا البرنامج التعليمي.
إذا لم تكن معتادًا على خلية الحمل ووحدة HX711 ، فتحقق من مشاريعنا السابقة Raspberry Pi القائمة على بوابة استشعار الوزن الأوتوماتيكية وقياس وزن Arduino باستخدام خلية الحمل ووحدة HX711.
المكونات المطلوبة:
نحن هنا نستخدم Raspberry Pi 3 Raspbian Jessie OS. تمت مناقشة جميع متطلبات الأجهزة والبرامج الأساسية مسبقًا ، يمكنك البحث عنها في مقدمة Raspberry Pi و Raspberry PI LED Blinking للبدء ، بخلاف ما نحتاج إليه:
- Raspberry Pi (يجب أن يعمل أي نموذج)
- تحميل خلية
- HX711 تحميل وحدة مكبر للصوت خلية
- 16x2 LCD
- مصدر الطاقة أو بنك الطاقة
- توصيل الأسلاك
- اللوح
- براغي الصواميل والإطار والقاعدة
هنا قمنا بتوصيل قاعدة خشبية بخلية التحميل من أجل الثبات بمساعدة الصواميل والمسامير كما هو موضح أدناه. تعرف على المزيد حول خلية الحمل ووحدة مستشعر الوزن HX711 هنا.
إعداد البريد الإلكتروني في Raspberry Pi لإرسال رسائل التنبيه:
لإرسال البريد من Raspberry Pi ، والذي يحتوي على حالة الحاوية (ممتلئة أو فارغة) ، نحتاج إلى تثبيت برنامج. نحن هنا نستخدم ssmtp وهو حل سهل وجيد لإرسال البريد باستخدام سطر الأوامر أو باستخدام Python Script. نحتاج إلى تثبيت مكتبتين لإرسال الرسائل باستخدام SMTP:
sudo apt-get install ssmtp sudo apt-get install mailutils
بعد تثبيت المكتبات ، يحتاج المستخدم إلى فتح ملف ssmtp.conf وتحرير ملف التكوين هذا كما هو موضح في الصورة أدناه ثم حفظ الملف. لحفظ الملف والخروج منه ، اضغط على "CTRL + x" ، ثم "y" ثم اضغط على "إدخال".
sudo nano /etc/ssmtp/ssmtp.conf
root = YourEmailAddress mailhub = smtp.gmail.com: 587 hostname = raspberrypi AuthUser = YourEmailAddress AuthPass = YourEmailPassword FromLineOverride = YES UseSTARTTLS = YES UseTLS = YES
يمكننا أيضًا اختباره عن طريق إرسال بريد تجريبي عن طريق إصدار الأمر أدناه ، وستحصل على البريد على عنوان البريد الإلكتروني المذكور إذا كان كل شيء يعمل بشكل جيد:
صدى "Hello saddam" - mail -s "Testing…" [email protected]
يوجد أدناه لقطة من رسائل التنبيه الإلكترونية التي تلقيناها أثناء الاختبار.
إعداد القارورة في Raspberry Pi:
هنا ، قمنا بإنشاء خادم ويب ، والذي يوفر طريقة لإرسال قيمة وزن الحاوية من Raspberry Pi إلى الشبكة باستخدام Flask في متصفح الويب. يتيح لنا Flask تشغيل برامج Python النصية الخاصة بنا من خلال صفحة ويب ويمكننا إرسال واستقبال البيانات من Raspberry Pi إلى متصفح الويب والعكس صحيح. Flask هو إطار مصغر لبايثون. تعتمد هذه الأداة على Unicode مع خادم تطوير ومصحح أخطاء مدمجين ، ودعم اختبار وحدة متكامل ، ودعم ملفات تعريف الارتباط الآمنة وسهولة استخدامها ، وهذه الأشياء تجعلها مفيدة للهواة .
قم بتثبيت حزمة دعم قارورة في Raspberry Pi باستخدام الأمر المحدد:
تثبيت قارورة $ pip
ثم يمكننا استخدام القارورة بمجرد استيرادها في برنامجنا ، كما قمنا باستيراد حزم القارورة التالية لهذا المشروع:
من flask import Flask ، render_template ، request ، jsonify
يمكنك معرفة المزيد حول البرمجة باستخدام Flask هنا ، وكذلك التحقق من مشروعنا السابق حيث استخدمنا Flask لإرسال الرسالة من صفحة الويب إلى Raspberry Pi.
كود HTML لصفحة الويب:
لقد أنشأنا أيضًا صفحة ويب باستخدام لغة HTML لعرض رسالة الوزن والتنبيه على متصفح الويب. لقد استخدمنا برنامج jQuery صغيرًا لتحميل الصفحة (عن طريق استدعاء / show_weight) كل 5 ثوانٍ حتى نتمكن من الحصول على قيمة الوزن في الوقت الفعلي. يوجد أدناه كود HTML لصفحة الويب بما في ذلك jQuery:
ملخص الدائرة
حاوية ذكية باستخدام Raspberry Pi ومستشعر الوزن
وزن الحاوية: 302 جرام
(التحديث كل 5 ثوان)إنذار!!!
الحاوية ممتلئة تم
إرسال البريد الإلكتروني.
يحتاج المستخدم إلى نسخ ولصق كود HTML المذكور أعلاه في بعض محررات النصوص (المفكرة) وحفظ الملف بامتداد.HTML (web.html). ثم ضع ملف HTML هذا في المجلد / Templates فيما يتعلق بموقع برنامج Python النصي. يعني أنك بحاجة إلى إنشاء مجلد باسم القوالب ، حيث قمت بوضع ملف Python Code الخاص بك لحاوية Raspberry Pi Smart هذه ، ثم ضع ملف web.html في مجلد القوالب هذا. هذه الخطوة مهمة ، وإلا فإن مشروعنا لن ينجح. يمكنك فتح ملف web.html مباشرة بالنقر المزدوج عليه للحصول على ناتج كود HTML وسترى صفحة الويب كما هو موضح أدناه. تحقق كذلك من العملية برمتها في فيديو توضيحي في نهايةالمطاف. بعد الانتهاء من البرمجة وكل شيء ، يمكننا فقط تشغيل كود Python في Raspberry Pi وفتح IP_address_of_your_Pi: 5010 في متصفح الويب (مثل
ستعرض صفحة الويب أيضًا رسالة تنبيه عندما يتجاوز وزن الحاوية 300 جرام كما هو موضح أدناه:
يمكنك التحقق من عنوان IP الخاص بـ Raspberry Pi باستخدام الأمر ifconfig :
ifconfig
شرح الدائرة:
اتصالات هذه الحاوية الذكية IoT سهلة ويرد أدناه التخطيطي. 16x2 LCD دبابيس RS و EN و d4 و d5 و d6 و d7 متصلة برقم GPIO pin رقم 18 و 23 و 24 و 25 و 8 و 7 من Raspberry Pi على التوالي ودبابيس DT و SCK للوحدة HX711 متصلة مباشرة بـ Raspberry Pi GPIO دبوس 27 و 17. تم شرح توصيلات خلية الحمل بوحدة HX711 مسبقًا كما هو موضح في الرسم التخطيطي للدائرة أدناه.
شرح العمل:
تشغيل هذه الحاوية الذكية سهل. في هذا المشروع ، استخدمنا Raspberry Pi 3 للتحكم في العملية بأكملها. تستشعر خلية الحمل وزن الحاوية وتوفر جهدًا تناظريًا كهربائيًا لوحدة مضخم الحمل HX711. HX711 هو ADC 24 بت ، والذي يضخم ويحول إخراج خلية التحميل إلى شكل رقمي. ثم يتم تغذية هذه القيمة المضخمة إلى Raspberry Pi. الآن يقوم Raspberry Pi بحساب ناتج HX711 ويحول ذلك إلى قيمة الوزن.
ثم تتم مقارنة قيمة الوزن هذه مع قيمة العتبة المحددة مسبقًا (300 جرام) باستخدام رمز Raspberry Pi و Python ، إذا تجاوز وزن الحاوية 300 جرام ، يرسل Raspberry Pi رسالة بريد إلكتروني تفيد بأن "Smart Container Alert…. Container Full". وإذا ظل الوزن أقل من 300 جرام ، فإن Raspberry Pi يرسل بريدًا إلكترونيًا ينص على "تنبيه ذكي للحاوية…. الحاوية فارغة".
يمكن أيضًا مراقبة الوزن باستخدام متصفح الويب ، ما عليك سوى فتح عنوان IP الخاص بـ Raspberry Pi باستخدام المنفذ 5010 مثل http://192.168.1.100:5010 ( استبدل عنوان IP بعنوانك). استخدمنا هنا Flask لإرسال البيانات من Raspberry Pi إلى صفحة الويب عبر الشبكة. سيتم تحديث هذه الصفحة تلقائيًا في كل 5 ثوانٍ ونحصل على بيانات محدثة ، ولهذا استخدمنا jQuery كما هو موضح سابقًا.
كما تم استخدام شاشة LCD اختيارية مقاس 16 × 2 لعرض رسائل الوزن والحالة.
يتم تقديم رمز Python الكامل أدناه ، حيث كتبنا وظائف لقيادة LCD ، ولقراءة قيمة الوزن من خلية التحميل ، ولعرض البيانات على صفحة الويب وما إلى ذلك. يمكنك فهمها بسهولة أو إذا كنت مبتدئًا ، فراجع دروس Raspberry Pi السابقة.