جدول المحتويات:
فيديو: لوحة رسائل IoT RPi LED: 3 خطوات (بالصور)
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:39
في Instructable ، قمت بإنشاء لوحة رسائل LED متصلة بشبكة wifi باستخدام Raspberry Pi (RPi). سيتصل المستخدمون بخادم الويب الخاص بـ Raspberry Pi باستخدام متصفحاتهم لإرسال رسائل قصيرة ستظهر على شاشة LED مقاس 8 × 8. نظرًا لأن استخدام مصفوفة 8x8 LED مع برنامج التشغيل MAX7219 في Python موثق جيدًا من قبل الآخرين على الإنترنت ، يركز هذا المشروع على إنشاء واجهة خادم ويب واستخدام ZeroMQ Messaging لإدارة الرسائل الواردة.
تحديث: هنا مشروع متابعة IoT Decimal / Hexadecimal 8x8 LED Matrix Drawing Board
(أنا منسق نادي Girls Who Code Club وقد توصلت إلى هذا المشروع البسيط لتعليم الطلاب تصميم واجهة الويب والمراسلة.)
الخطوة 1: إعداد الجهاز
يتطلب هذا المشروع الأجهزة التالية:
- فطيرة التوت
- مصدر طاقة USB مثل Anker مع كابل USB قصير إلى MicroUSB
- وحدة مصفوفة نقطية MAX7219 مع كابل الشريط (Aliexpress بأقل من 2 دولار)
- حاوية (صنعت واحدة من صندوق من الورق المقوى ورشتها باللون الأسود)
إعداد الأجهزة هو الجزء السهل. ما عليك سوى توصيل كبل شريطي مكون من 5 أسلاك من مصفوفة LED إلى RPi لكل مستند مكتبة MAX7219.
LED-> RPi ======== VCC-> GPIO Pin # 2 (5v) GND-> GPIO Pin # 6 (GND) DIN-> GPIO Pin # 19CS -> GPIO Pin # 24CLK-> GPIO Pin # 23
لقد استخدمت شريطًا رغويًا على الوجهين لتركيب وحدة LED على علبة RPi. بعد ذلك ، صنعت حاوية من صندوق من الورق المقوى لإيواء كل من RPi والبطارية.
الخطوة 2: إعداد البرنامج
يجب أن يكون لدى RPi البرامج التالية:
- بايثون 3
- اباتشي 2 ويب سيفر
- برنامج تشغيل Max7219 لبيثون
- المراسلة ZeroMQ
بايثون 3
يجب أن يكون RPi مثبتًا مسبقًا على Python 3. أثناء كتابة الكود الخاص بي لـ Python 3 ، يجب أن يعمل Python 2 مع بعض التغييرات الطفيفة.
اباتشي 2
قم بإعداد Apache وقم بتمكين البرمجة النصية لـ Python CGI. فيما يلي بعض الموارد الرائعة لإعداد Apache على RPi ، لذا لن أكرر هنا. ما عليك سوى اتباع البرامج التعليمية أدناه لإعداد Apache و CGI. تأكد من أن البرامج النصية *.py قابلة للتنفيذ من المستعرض.
- https://raspberrywebserver.com/cgiscripting/
- https://www.knight-of-pi.org/apache-web-server-with-cgi-for-python/
سائق Max7291
قم بتثبيت برنامج التشغيل Max7219 باتباع أحدث دليل للتثبيت:
https://max7219.readthedocs.io/en/latest/install.html
بعد التثبيت ، قم بتشغيل مثال الكود ، matrix_test.py ، لكل دليل تثبيت لعرض "Hello World" على مصفوفة LED. يجب أن يعمل هذا قبل الانتقال إلى الخطوة التالية.
المراسلة ZeroMQ
لماذا نحتاج المراسلة؟ جرب تشغيل مثال الكود أعلاه ، matrix_test.py ، على شاشتين طرفيتين في وقت واحد. سيسمح النظام بتشغيل أكواد متعددة في وقت واحد ولكن سترى رسائل متداخلة وهو أمر غير مرغوب فيه. في بيئة مستخدم واحد ، قد لا تكون هذه مشكلة حيث يمكنك التأكد من أنه يمكن تشغيل برنامج واحد فقط في كل مرة. في بيئة متعددة المستخدمين مثل الويب ، يتعين على النظام إنشاء قائمة انتظار FIFO (أول ما يدخل أولاً يخرج أولاً) للتأكد من أن شخصًا واحدًا فقط يمكنه تنفيذ الكود بينما ينتظر الآخرون. بينما قد تكون هناك حلول أخرى لتحقيق ذلك ، فقد قررت استخدام ZeroMQ لإدارة قائمة انتظار FIFO. يحتوي رمز خادم ZeroMQ على استدعاء الوظيفة الفعلي لعرض رسالة على مصفوفة LED واحدة تلو الأخرى بينما يعمل خادم الويب كعميل ZeroMQ للاستعلام عن الرسائل وإرسالها إلى خادم ZeroMQ. بهذه الطريقة ، بينما يمكن لعدة مستخدمين إرسال رسائل عبر صفحة ويب في وقت واحد ، سيعرض خادم ZeroMQ رسالة واحدة فقط في كل مرة.
بالنسبة لهذا المشروع ، سنقوم فقط بتثبيت حزمة Python pyzmq وليس حزمة ZeroMQ بأكملها.
يركض:
sudo pip3 تثبيت pyzmq
اقرأ دليل ZeroMQ على https://zguide.zeromq.org وجرب مثال خادم وعميل hello world في Python. انسخ رمز Python المثال لكل من الخادم والعميل إلى RPi وتأكد من أنهما يعملان قبل الانتقال إلى الخطوة التالية.
الخطوة 3: إعداد صفحة الويب
في صفحة الويب ، استخدمت إطار عمل bootstrap css / js لجعل الصفحة تبدو جميلة. هذا اختياري تمامًا.
قم بتنزيل ملف led_msg.tar.gz المرفق إلى جذر Apache أو الدليل الفرعي. لفك ضغط ملف gzip'd tar ، قم بتشغيل:
القطران -xzvf led_msg.tar.gz
يؤدي هذا إلى إنشاء الملفات التالية:
msg.py (البرنامج الرئيسي)
قوالب / interstitial.html (قالب html) قوالب / send_msg.html (قالب html) static / img / led_150x150-j.webp
اختياريًا ، قم بتثبيت إطار عمل bootstrap css / js ضمن الدليل الثابت.
أدخل عنوان URL لـ msg.py متصفحك وتأكد من ظهور صفحة الويب. لا ترسل رسالة بعد !!!
قبل إرسال الرسائل ، يجب بدء خادم ZeroMQ لقبول الرسائل من عميل صفحة الويب وعرضها على مصفوفة LED. لن يتم عرض أي شيء على الشاشة إذا لم يكن خادم ZeroMQ قيد التشغيل.
قم بتنزيل كود max7219_server.py المرفق في الدليل الرئيسي الخاص بك ، وليس في مسار جذر Apache حيث يمكن تنفيذه بواسطة مستخدمي الويب. قم بتشغيله كجذر:
سودو بيثون max7219_server.py
الآن خادم ZeroMQ جاهز لتلقي الرسائل من صفحة الويب. أدخل وأرسل رسالة بسيطة من صفحة الويب. إذا تم إعداد كل شيء بشكل صحيح ، فسترى هذه الرسالة على شاشة خادم ZeroMQ وكذلك على مصفوفة LED.
إذا كنت تريد إيقاف تشغيل الخادم ، فما عليك سوى إجراء Control-C للخروج من شاشة الخادم.
هذا كل شيء. آمل أن تستمتع بهذا المشروع بقدر ما استمتعت.
أحد التحسينات التي يمكنك إجراؤها هو جعل اتصال ZeroMQ بين الخادم والعملاء غير متزامن حتى لا تنتظر صفحة الويب أثناء عرض الرسائل الأخرى. أيضًا ، يمكنك إرفاق مصفوفة LED إضافية في وضع التتالي. سأترك هذا الأمر متروك لك.
موصى به:
نظام إنذار رسائل SMS لاكتشاف الحركة: 5 خطوات (بالصور)
نظام إنذار رسائل SMS لاكتشاف الحركة: في هذا المشروع سأجمع بين مستشعر حركة PIR رخيص مع وحدة TC35 GSM لبناء نظام إنذار يرسل لك & quot؛ تنبيه داخلي & quot؛ الرسائل القصيرة عندما يحاول شخص ما سرقة أغراضك. هيا بنا نبدأ
لوحة رسائل شريط LED: 3 خطوات
لوحة رسائل شريط LED: سيرشدك هذا التوجيه خلال عملية إنشاء لوحة رسائل من شرائط NeoPixel LED القابلة للتوجيه بشكل فردي. هذا المشروع هو نسخة معدلة من علامة أنتجها جوش ليفين ، ويمكن العثور عليها على https://github.com/bigjo
رسائل التذكير بالغسيل اليدوي: 5 خطوات (بالصور)
تذكير بغسل اليدين: تذكير غسل اليدين عبارة عن رباط يد يذكرك بغسل يديك بعد كل 20 دقيقة. تحتوي على ثلاثة أوضاع لونية ، أحمر يشير إلى غسل اليدين ، ووضع بهتان اللون (30 ثانية) لفرك اليدين لمدة 30 ثانية ، واللون الأخضر للغسيل
كيفية إنشاء موقع لوحة رسائل باستخدام PHP و MYSQL: 5 خطوات
كيفية إنشاء موقع ويب للوحة الرسائل باستخدام PHP و MYSQL: سيوضح لك هذا التوجيه كيفية إنشاء موقع ويب للوحة الرسائل باستخدام php و mysql و html و css. إذا كنت مبتدئًا في تطوير الويب ، فلا داعي للقلق ، فسيكون هناك تفسيرات وقياسات تفصيلية حتى تتمكن من فهم المفاهيم بشكل أفضل. حصيرة
طيور الحب في عيد الحب: صندوق لإرسال واستقبال رسائل Telegram الصوتية: 9 خطوات (بالصور)
طيور الحب في عيد الحب: صندوق لإرسال واستقبال رسائل Telegram الصوتية: تحقق من الفيديو هنا ما هو الحب (الطيور)؟ يا حبيبي لا تؤذيني ولا تؤذيني أكثر من ذلك ، إنه جهاز مستقل يتلقى الرسائل الصوتية إلى حبك أو عائلتك أو صديقك. افتح الصندوق ، واضغط على الزر أثناء التحدث ، ثم حرر لإرسال