Мазмұны:
- 1 -қадам: Жабдықты орнату
- 2 -қадам: Бағдарламалық қамтамасыз етуді орнату
- 3 -қадам: веб -бетті орнату
Бейне: IoT RPi LED хабар тақтасы: 3 қадам (суреттермен)
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:25
Бұл нұсқаулықта мен Raspberry Pi (RPi) көмегімен Wi-Fi қосылған LED хабар тақтасын жасадым. Пайдаланушылар 8x8 жарықдиодты дисплейде көрсетілетін қысқа хабарламаларды жіберу үшін браузерлерін пайдаланып Raspberry Pi веб -серверіне қосылады. Python-да MAX7219 драйверімен 8x8 жарықдиодты матрицаның интерфейсі Интернетте басқалармен жақсы құжатталғандықтан, бұл жоба веб-сервер интерфейсін құруға және кіріс хабарламаларды басқару үшін ZeroMQ хабар алмасуды қолдануға бағытталған.
Жаңарту: мұнда IoT ондық/он алтылық 8x8 жарықдиодты матрицалық сурет тақтасының келесі жобасы.
(Мен «Кодты білетін қыздар клубы» клубының фасилитаторымын және студенттерге веб -интерфейс дизайны мен хабар алмасуды үйрету үшін осы қарапайым жобаны ойлап таптым.)
1 -қадам: Жабдықты орнату
Бұл жоба келесі жабдықты қажет етеді:
- Raspberry Pi
- USB қуат көзі, мысалы, қысқа USB -MicroUSB кабелі бар Anker
- Таспалы кабелі бар MAX7219 нүктелік матрицалық модуль (Aliexpress $ 2 -ден төмен)
- Қоршау (мен оны картон қораптан және спрейге боялған) жасадым
Аппараттық құралдарды орнату - бұл оңай бөлігі. Жарық диодты матрицадан 5 сымды таспалы кабельді MAX7219 кітапханасының құжатына RPi -ге қосыңыз.
LED-> RPi ======== VCC-> GPIO Pin #2 (5v) GND-> GPIO PIN #6 (GND) DIN-> GPIO PIN #19CS-> GPIO PIN #24CLK-> GPIO PIN # 23
Мен жарықдиодты қондырғыны RPi корпусына бекіту үшін екі жақты көбік таспасын қолдандым. Содан кейін мен RPi мен батареяны сақтау үшін картон қораптан қоршау жасадым.
2 -қадам: Бағдарламалық қамтамасыз етуді орнату
RPi келесі бағдарламалық жасақтамаға ие болуы керек:
- Python 3
- Apache 2 вебсүйгіш
- Python үшін Max7219 драйвері
- ZeroMQ хабар алмасу
Python 3
RPi-де Python 3 алдын ала орнатылған болуы керек. Менің кодым Python 3 үшін жазылғанмен, Python 2 аздаған өзгерістермен жұмыс істеуі керек.
Apache 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/kz/latest/install.html
Орнатқаннан кейін, LED Matrix -те «Hello World» көрсету үшін орнату нұсқаулығына matrix_test.py мысал кодын іске қосыңыз. Бұл келесі қадамға өтпес бұрын жұмыс істеуі керек.
ZeroMQ хабар алмасу
Бізге хабар алмасу не үшін қажет? Жоғарыда келтірілген мысал кодын matrix_test.py бір мезгілде екі терминалды экранда іске қосып көріңіз. Жүйе бірнеше кодты бір уақытта іске қосуға мүмкіндік береді, бірақ сіз қажет емес хабарламалардың қабаттасқанын көресіз. Бір пайдаланушы ортасында бұл мәселе болмауы мүмкін, себебі сіз бір уақытта бір ғана бағдарламаның жұмыс істейтініне көз жеткізе аласыз. Веб сияқты көп қолданушы ортасында жүйе FIFO (First-In-First-Out) кезегін құруы керек, бұл кодты тек бір адам ғана орындай алады, ал басқалары күтеді. Бұған жетудің басқа шешімдері болуы мүмкін, мен FIFO кезегін басқару үшін ZeroMQ қолдануды шештім. ZeroMQ серверінің коды LED -матрицада бір уақытта хабарды көрсетуге арналған функционалды шақыруды қамтиды, ал веб -сервер ZeroMQ серверіне хабарларды сұрау және жіберу үшін ZeroMQ клиенті ретінде әрекет етеді. Осылайша, бірнеше пайдаланушы веб -бет арқылы бір уақытта хабарлама жібере алатын болса, ZeroMQ сервері бір уақытта тек бір хабарды көрсетеді.
Бұл жоба үшін біз тек ZeroMQ пакетін емес, Python pyzmq пакетін орнатамыз.
жүгіру:
sudo pip3 pyzmq орнатыңыз
Http://zguide.zeromq.org сайтындағы ZeroMQ нұсқаулығын оқыңыз және Python -да сәлемдеуші әлемдік сервер мен клиенттің мысалын көріңіз. Python мысал кодын серверге де, клиентке де RPi -ге көшіріңіз және келесі қадамға өтпес бұрын олардың жұмыс істейтініне көз жеткізіңіз.
3 -қадам: веб -бетті орнату
Веб -бетте мен бетті әдемі ету үшін bootstrap css/js негізін қолдандым. Бұл мүлдем міндетті емес.
Қосылған led_msg.tar.gz файлын Apache түбіріне немесе ішкі каталогына жүктеңіз. Gzip'd tar файлын ашу үшін келесі әрекеттерді орындаңыз:
tar -xzvf led_msg.tar.gz
Бұл келесі файлдарды жасайды:
msg.py (негізгі бағдарлама)
templates/interstitial.html (html үлгісі) templates/send_msg.html (html үлгісі) static/img/led_150x150-j.webp
Қажет болса, bootstrap css/js негізін статикалық каталогтың астына орнатыңыз.
Msg.py шолғышының URL мекенжайын енгізіңіз және веб -беттің пайда болуын тексеріңіз. Әлі хабарлама жібермеңіз !!!
Хабарламалар жіберілмес бұрын, ZeroMQ сервері веб -беттің клиентінен хабарламаларды қабылдап, оларды жарықдиодты матрицада көрсетуді бастау керек. Егер ZeroMQ сервері жұмыс істемесе, экранда ештеңе көрсетілмейді.
Қосылған max7219_server.py кодын Apache root dir -де емес, үй каталогына жүктеңіз, оны веб -пайдаланушылар орындауы мүмкін. Оны түбір ретінде іске қосыңыз:
sudo python max7219_server.py
Енді ZeroMQ сервері веб -беттен хабарламаларды қабылдауға дайын. Веб -беттен қарапайым хабарламаны енгізіңіз және жіберіңіз. Егер бәрі дұрыс орнатылса, сіз бұл хабарды ZeroMQ серверінің экранында, сонымен қатар LED матрицасында көресіз.
Егер сіз серверді өшіруді қаласаңыз, сервер экранынан шығу үшін Control-C түймесін басыңыз.
Міне бітті. Сізге бұл жоба мен сияқты ұнайды деп үміттенемін.
Сіз жасай алатын жақсартудың бірі - сервер мен клиенттер арасындағы ZeroMQ байланысын асинхронды ету, сондықтан веб -бет басқа хабарламалар көрсетілгенше күтпейді. Сонымен қатар, каскадты режимде қосымша жарықдиодты матрицаны қоса аласыз. Мен мұны сізге қалдырамын.
Ұсынылған:
Тақталар тақтасы: Электронды тоқыма прототиптер тақтасы: 5 қадам (суреттермен)
ThreadBoard: Электронды тоқыма жылдам прототиптеу тақтасы: ThreadBoard V2-дің 3D басып шығарылмайтын нұсқасы үшін нұсқаулықты мына жерден табуға болады. ThreadBoard-дің 1-нұсқасын мына жерден табуға болады. электронды тоқыма бұйымдарын жылдам прототиптеу үшін
MXY тақтасы - бюджеті төмен XY плоттерлік робот тақтасы: 8 қадам (суреттермен)
MXY тақтасы - бюджеті төмен XY плоттерлік роботтар тақтасы: Менің мақсатым mXY тақтасын XY плоттерлік сурет салу машинасы төмен етіп жасау болды. Сондықтан мен бұл жобаны жасағысы келетіндерге жеңілдететін тақта жасадым. Алдыңғы жобада, 2 дана Nema17 қадамдық қозғалтқыштарды пайдалану кезінде, бұл тақта
WW2 радио хабар тарату машинасы: 13 қадам (суреттермен)
WW2 Radio Broadcast Time Machine: Мұның идеясы - мен жатқан бөліктерді пайдалану және ескі радиода жасалған аудио джукбокс құру. Мұның артында басқа мақсат қою үшін мен оны Екінші дүниежүзілік соғыстың ескі радио хабарларымен толтыруды шештім, содан кейін
Микро: «Мәтіндік хабар алмасу» қуыршақ!: 5 қадам (суреттермен)
Микро: Қуыршақ «Мәтіндік хабар алмасу»!: Біздің сымсыз байланысымыздың барлығы дерлік телефон қоңырауларын, мәтіндік хабарларды және WiFi -ді қосқанда радио толқындарының көмегімен жүзеге асады*. Кіріктірілген радио таратқыштар мен қабылдағыштармен Micro: Bit микроконтроллері әр түрлі жобаларды құруды жеңілдетеді
Үйге ескерту: үлкен дисплейде Arduino + бұлтты хабар алмасу: 14 қадам (суреттермен)
Негізгі ескерту: Үлкен дисплейде Arduino + бұлтты хабар алмасу: Ұялы телефондар заманында адамдар сіздің қоңырауыңызға тәулік бойы жауап береді деп күтуге болады. Немесе … жоқ Әйелім үйге келген соң, телефон сөмкесінде қалады немесе батареясы бітіп қалады. Бізде жер сызығы жоқ. Қоңырау шалу немесе