Съдържание:

IoT RPi LED табло за съобщения: 3 стъпки (със снимки)
IoT RPi LED табло за съобщения: 3 стъпки (със снимки)

Видео: IoT RPi LED табло за съобщения: 3 стъпки (със снимки)

Видео: IoT RPi LED табло за съобщения: 3 стъпки (със снимки)
Видео: ИЗПЛЮЙ КАМЪЧЕТО - Епизод 10 2024, Юли
Anonim
Image
Image
Хардуерна настройка
Хардуерна настройка

В тази инструкция направих LED дъска за съобщения, свързана с wifi, използвайки Raspberry Pi (RPi). Потребителите ще се свържат с уеб сървъра на Raspberry Pi, използвайки своите браузъри, за да изпратят кратки съобщения, които ще се показват на 8x8 LED дисплея. Тъй като свързването на 8x8 LED матрица с драйвера MAX7219 в Python е добре документирано от други в Интернет, този проект се фокусира върху изграждането на интерфейс на уеб сървър и използването на ZeroMQ Messaging за управление на входящи съобщения.

Актуализация: Ето един последващ проект IoT Десетична/Шестнадесетична 8x8 LED Matrix Drawing Board

(Аз съм фасилитатор на клуб за Girls Who Code Club и измислих този прост проект, за да науча учениците на дизайна на уеб интерфейса и съобщенията.)

Стъпка 1: Настройка на хардуера

Хардуерна настройка
Хардуерна настройка
Хардуерна настройка
Хардуерна настройка

Този проект изисква следния хардуер:

  • Малина Пи
  • USB източник на захранване като Anker с къс USB към MicroUSB кабел
  • MAX7219 точков матричен модул с лентов кабел (Aliexpress за по -малко от $ 2)
  • Корпус (направих такъв от картонена кутия и спрей боядисан в черно)

Настройката на хардуера е лесната част. Просто свържете 5 -жилен лентов кабел от LED матрицата към RPi на библиотека dox 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 трябва да има следния софтуер:

  • Python 3
  • Apache 2 уеб сървър
  • Max7219 драйвер за Python
  • 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/en/latest/install.html

След инсталирането стартирайте примерния код, matrix_test.py, за ръководство за инсталиране, за да покажете „Hello World“на LED матрицата. Това трябва да работи, преди да преминете към следващата стъпка.

ZeroMQ съобщения

Защо имаме нужда от съобщения? Опитайте да стартирате горния примерен код, matrix_test.py, на два терминални екрана едновременно. Системата ще позволи да се изпълняват няколко кода едновременно, но ще видите припокриване на съобщения, което не е желателно. В среда с един потребител това може да не е проблем, тъй като можете да се уверите, че само една програма може да работи едновременно. В многопотребителска среда, като уеб, системата трябва да създаде FIFO (First-In-First-Out) опашка, за да се увери, че само един човек може да изпълни кода, докато другите чакат. Въпреки че може да има други решения за постигане на това, реших да използвам ZeroMQ за управление на опашката FIFO. Кодът на сървъра на ZeroMQ съдържа действителното извикване на функция за показване на съобщение на светодиодната матрица едно по едно, докато уеб сървърът действа като 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 файла, изпълнете:

tar -xzvf led_msg.tar.gz

Това създава следните файлове:

msg.py (основна програма)

templates/interstitial.html (html template) templates/send_msg.html (html template) static/img/led_150x150-j.webp

По избор инсталирайте рамката на bootstrap css/js под статичната директория.

Въведете URL адреса за msg.py вашия браузър и се уверете, че уеб страницата се показва. Все още не изпращайте съобщение !!!

Преди да могат да бъдат изпратени съобщения, сървърът ZeroMQ трябва да бъде стартиран да приема съобщения от клиента на уеб страницата и да ги показва на LED матрицата. Нищо няма да се покаже на екрана, ако сървърът ZeroMQ не работи.

Изтеглете прикачения код max7219_server.py в домашната си директория, а не в основния каталог на Apache, където може да бъде изпълнен от уеб потребители. Стартирайте го като root:

sudo python max7219_server.py

Сега сървърът ZeroMQ е готов да получава съобщения от уеб страницата. Въведете и изпратете просто съобщение от уеб страницата. Ако всичко е настроено правилно, ще видите това съобщение на екрана на сървъра на ZeroMQ, както и на LED матрицата.

Ако искате да изключите сървъра, просто направете Control-C, за да излезете от екрана на сървъра.

Това е. Надявам се този проект да ви хареса толкова, колкото и аз.

Едно подобрение, което можете да направите, е да направите асинхронната комуникация на ZeroMQ между сървъра и клиентите, така че уеб страницата да не чака, докато се показват други съобщения. Също така, можете да прикачите допълнителна LED матрица в каскаден режим. Ще оставя това на вас.

Препоръчано: