Mundarija:
Video: IoT RPi LED xabarlar paneli: 3 qadam (rasmlar bilan)
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:25
Ushbu yo'riqnomada men Raspberry Pi (RPi) yordamida wifi-ga ulangan LED-xabarlar panelini tayyorladim. Foydalanuvchilar 8x8 LED displeyida ko'rsatiladigan qisqa xabarlarni yuborish uchun o'z brauzerlari yordamida Raspberry Pi veb -serveriga ulanadi. Python-dagi MAX7219 drayveri bilan 8x8 LED matritsasini o'zaro bog'lash Internetda boshqalar tomonidan yaxshi hujjatlashtirilganligi sababli, ushbu loyiha veb-server interfeysi yaratishga va kiruvchi xabarlarni boshqarish uchun ZeroMQ Xabarlar xizmatidan foydalanishga qaratilgan.
Yangilash: Mana, keyingi loyiha IoT o'nlik/o'n oltilik 8x8 LED matritsali chizish taxtasi.
(Men kod yozadigan qizlar klubi klubi yordamchisiman va men talabalarga veb -interfeys dizayni va xabar almashish bo'yicha dars berish uchun shu oddiy loyihani ishlab chiqdim.)
1 -qadam: Uskuna sozlamalari
Ushbu loyiha quyidagi uskunalarni talab qiladi:
- Raspberry Pi
- Qisqa USB -MicroUSB kabeli bilan Anker kabi USB quvvat manbai
- MAX7219 nuqta matritsali tasma simi moduli (Aliexpress 2 dollardan kam)
- Qoplama (men karton qutidan va qora rangga bo'yalgan purkagichdan yasadim)
Uskunani sozlash - bu oson qism. LED matritsasidan 5 simli tasma kabelini MAX7219 kutubxonasi dociga RPi ga ulang.
LED-> RPi ======== VCC-> GPIO Pin #2 (5v) GND-> GPIO PIN 6 (GND) DIN-> GPIO PIN #19CS-> GPIO PIN #24CLK-> GPIO PIN-kodi 23
Men LEDni RPi korpusiga yopishtirish uchun ikki tomonlama ko'pikli lentani ishlatardim. Keyin, men RPi va batareyani joylashtirish uchun karton qutidan korpus yasadim.
2 -qadam: dasturiy ta'minotni sozlash
RPi quyidagi dasturlarga ega bo'lishi kerak:
- Python 3
- Apache 2 veb -muxlisi
- Python uchun max7219 haydovchi
- ZeroMQ xabar almashish
Python 3
RPi-da Python 3 oldindan o'rnatilgan bo'lishi kerak. Mening kodim Python 3 uchun yozilgan bo'lsa -da, Python 2 kichik o'zgarishlar bilan ishlashi kerak.
Apache 2
Apache -ni o'rnating va Python CGI skriptini yoqing. Quyida RPi -da Apache -ni o'rnatish uchun ajoyib manbalar mavjud, shuning uchun men bu erda takrorlamayman. Apache va CGI -ni sozlash uchun quyidagi ko'rsatmalarga amal qiling. *. Py skriptlari brauzerda bajarilishi mumkinligiga ishonch hosil qiling.
- https://raspberrywebserver.com/cgiscripting/
- https://www.knight-of-pi.org/apache-web-server-with-cgi-for-python/
Max7291 uchun haydovchi
Max7219 drayverini eng so'nggi o'rnatish ko'rsatmalariga amal qilib o'rnating:
https://max7219.readthedocs.io/en/latest/install.html
O'rnatishdan so'ng, "Matrix_test.py" misol kodini LED matritsasida "Salom dunyo" ni ko'rsatish uchun o'rnatish qo'llanmasida ishga tushiring. Bu keyingi bosqichga o'tishdan oldin ishlashi kerak.
ZeroMQ xabar almashish
Nega bizga xabar kerak? Yuqoridagi misol matrix_test.py kodini bir vaqtning o'zida ikkita terminal ekranida ishlatishga harakat qiling. Tizim bir vaqtning o'zida bir nechta kodni ishga tushirishga imkon beradi, lekin siz bir -biriga mos kelmaydigan xabarlarni ko'rasiz. Bitta foydalanuvchi muhitida bu muammo bo'lmasligi mumkin, chunki siz bir vaqtning o'zida faqat bitta dastur ishlashiga ishonch hosil qilishingiz mumkin. Veb kabi ko'p foydalanuvchilarli muhitda tizim FIFO (birinchi navbatda birinchi navbatda) navbatini yaratishi kerak, boshqalari kutishganda kodni faqat bir kishi bajarishi mumkin. Bunga erishish uchun boshqa echimlar bo'lishi mumkin bo'lsa -da, men FIFO navbatini boshqarish uchun ZeroMQ -dan foydalanishga qaror qildim. ZeroMQ server kodi LED matritsasidagi xabarni birma -bir ko'rsatish uchun funktsional chaqiruvni o'z ichiga oladi, veb -server esa ZeroMQ serveriga xabarlarni so'rash va yuborish uchun ZeroMQ mijozi vazifasini bajaradi. Shunday qilib, bir nechta foydalanuvchilar bir vaqtning o'zida veb -sahifa orqali xabar yuborishlari mumkin bo'lsa, ZeroMQ serveri bir vaqtning o'zida faqat bitta xabarni ko'rsatadi.
Ushbu loyiha uchun biz faqat ZeroMQ paketini emas, balki Python pyzmq paketini o'rnatamiz.
yugurish:
sudo pip3 pyzmq -ni o'rnating
Http://zguide.zeromq.org saytidagi ZeroMQ qo'llanmasini o'qing va Python -da salom dunyo serveri va mijoz misolini sinab ko'ring. Python misol kodini server va mijoz uchun RPi -ga nusxalash va keyingi bosqichga o'tishdan oldin ularning ishlashiga ishonch hosil qiling.
3 -qadam: veb -sahifani sozlash
Veb -sahifada men sahifani chiroyli qilish uchun bootstrap CSS/JS ramkasidan foydalandim. Bu mutlaqo ixtiyoriy.
Apache ildiz yoki pastki katalogiga biriktirilgan led_msg.tar.gz faylini yuklab oling. Gzip'd tar faylini ochish uchun quyidagini bajaring:
tar -xzvf led_msg.tar.gz
Bu quyidagi fayllarni yaratadi:
msg.py (asosiy dastur)
templates/interstitial.html (html shablon) andozalari/send_msg.html (html shablon) statik/img/led_150x150.jpg (html shablonida ishlatilgan jpg)
Ixtiyoriy ravishda, statik katalog ostiga yuklanuvchi css/js ramkasini o'rnating.
Brauzeringiz uchun msg.py manzilini kiriting va veb -sahifaning paydo bo'lishiga ishonch hosil qiling. Hali xabar yubormang !!!
Xabarlarni yuborishdan oldin, ZeroMQ serverini veb -sahifa mijozidan xabarlarni qabul qilishni boshlash va ularni LED matritsasida ko'rsatish kerak. Agar ZeroMQ serveri ishlamayotgan bo'lsa, ekranda hech narsa ko'rinmaydi.
Max7219_server.py kodini biriktirilgan Apache root dir emas, balki uy katalogiga yuklab oling, uni veb -foydalanuvchilar bajarishi mumkin. Uni root sifatida ishga tushiring:
sudo python max7219_server.py
Endi ZeroMQ serveri veb -sahifadan xabarlarni qabul qilishga tayyor. Veb -sahifadan oddiy xabarni kiriting va yuboring. Agar hamma narsa to'g'ri sozlangan bo'lsa, siz bu xabarni ZeroMQ server ekranida va LED matritsasida ko'rasiz.
Agar siz serverni o'chirmoqchi bo'lsangiz, server ekranidan chiqish uchun Control-C tugmachasini bosing.
Bo'ldi shu. Umid qilamanki, siz ham men kabi bu loyihadan bahramand bo'lasiz.
Siz qila oladigan yaxshilanishlardan biri bu server va mijozlar o'rtasidagi ZeroMQ aloqasini asinxron qilishdir, shunda veb -sahifa boshqa xabarlar ko'rsatilguncha kutmaydi. Bundan tashqari, siz qo'shimcha LED matritsasini kaskad rejimida ulashingiz mumkin. Men buni sizga qoldiraman.
Tavsiya:
LED chiziqli xabarlar paneli: 3 qadam
LED chiziqli xabarlar taxtasi: Bu ko'rsatma sizga individual ravishda joylashtiriladigan NeoPixel LED tasmalaridan xabarlar taxtasini yaratish jarayonida yordam beradi. Bu loyiha Josh Levine tomonidan ishlab chiqarilgan belgining moslashtirilgan versiyasidir, uni https://github.com/bigjo… saytida topish mumkin
Raspberry Pi va MQTT protokoli yordamida raqamli xabarlar paneli: 8 qadam
Raspberry Pi va MQTT protokolidan foydalangan holda raqamli xabarnomalar taxtasi: E'lonlar taxtasi deyarli hamma joyda, masalan, ofis, maktablar, kasalxonalar va mehmonxonalarda ishlatiladi. Ulardan muhim xabarnomalarni ko'rsatish yoki bo'lajak voqealar yoki uchrashuvlarni reklama qilish uchun qayta -qayta foydalanish mumkin. Ammo e'lonlar yoki e'lonlar chop etilishi kerak
Ajoyib xabarlar - Ironman nashri: 5 qadam (rasmlar bilan)
Ajoyib xabarlar - Ironman nashri: " Excelsior " - Sten Li. Marvellous xabarnomalari! Bu ko'rsatma mening sevimli super qahramonlarimning marhum otasiga bag'ishlangan. Bir muncha vaqt men bu temir odam haykalini javonda saqlaganman. Bu shubhali kelib chiqishi o'yinchog'i, menga janjaldan keyin berilgan
Mikro: Bitli qo'g'irchoq "Matnli xabarlar"!: 5 qadam (rasmlar bilan)
Mikro: Bitli qo'g'irchoq "Matnli xabarlar"!: Bizning deyarli barcha simsiz aloqa radio to'lqinlari*yordamida amalga oshiriladi, shu jumladan telefon qo'ng'iroqlari, matnli xabarlar va WiFi. O'rnatilgan radio uzatgichlar va qabul qiluvchilar bilan Micro: Bit mikrokontroller har xil loyihalarni qurishni juda osonlashtiradi
Uy haqida ogohlantirish: Arduino + Katta displeyda bulutli xabarlar: 14 qadam (rasmlar bilan)
Uyga ogohlantirish: Katta displeyda Arduino + Bulutli xabarlar: Mobil telefonlar asrida odamlar 24/7 qo'ng'irog'ingizga javob berishini kutishingiz mumkin. Yoki … emas Xotinim uyga qaytgach, telefon qo'lidagi sumkada qoladi yoki batareyasi tugab qoladi. Bizda quruqlik chizig'i yo'q. Qo'ng'iroq qilish yoki