Мазмуну:

IoT RPi LED билдирүү тактасы: 3 кадам (сүрөттөр менен)
IoT RPi LED билдирүү тактасы: 3 кадам (сүрөттөр менен)

Video: IoT RPi LED билдирүү тактасы: 3 кадам (сүрөттөр менен)

Video: IoT RPi LED билдирүү тактасы: 3 кадам (сүрөттөр менен)
Video: ESP32 Tutorial 47 - WS2812 CheerLights using MQTT over Internet | SunFounder's ESP32 IoT Learnig kit 2024, Ноябрь
Anonim
Image
Image
Аппараттык орнотуу
Аппараттык орнотуу

Бул Нускамада мен Raspberry Pi (RPi) колдонуп, Wi-Fiга туташкан LED билдирүү тактасын жасадым. Колдонуучулар 8x8 LED дисплейинде көрсөтүлүүчү кыска билдирүүлөрдү жөнөтүү үчүн браузерлерин колдонуп Raspberry Pi веб -серверине туташат. Pythonдогу MAX7219 драйвери менен 8x8 LED матрицасын интернетте башкалар жакшы документтештиргендиктен, бул долбоор веб-сервер интерфейсин түзүүгө жана келген билдирүүлөрдү башкаруу үчүн ZeroMQ Messaging колдонууга багытталган.

Жаңыртуу: Бул жерде кийинки долбоор IoT Decimal/Hexadecimal 8x8 LED Matrix Drawing Board

(Мен коддор клубуна кирген кыздар үчүн клубдун фасилитаторумун жана студенттерге веб -интерфейстин дизайны жана кабарлашуу боюнча сабак берүү үчүн ушул жөнөкөй долбоор менен келдим.)

1 -кадам: Аппараттык орнотуу

Аппараттык орнотуу
Аппараттык орнотуу
Аппараттык орнотуу
Аппараттык орнотуу

Бул долбоор төмөнкү жабдууларды талап кылат:

  • Raspberry Pi
  • Кыска USB MicroUSB кабели менен Anker сыяктуу USB кубат булагы
  • MAX7219 чекиттүү матрица модулу лента кабели менен (Aliexpress $ 2ден аз)
  • Корпус (мен картон кутудан жана спрейден кара боёк менен жасадым)

Аппараттык орнотуу - оңой бөлүк. Жөн эле MAX7219 китепканасынын доктуруна RPi үчүн LED матрицасынан 5 зымдуу тасма кабелин туташтырыңыз.

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 веб сүйүүчү
  • Python үчүн Max7219 драйвери
  • ZeroMQ Messaging

Python 3

RPiде Python 3 мурунтан эле орнотулган болушу керек. Менин кодум Python 3 үчүн жазылган болсо, Python 2 анча -мынча өзгөртүүлөр менен иштеши керек.

Apache 2

Apache орнотуп, Python CGI сценарийин иштетүү. Төмөндө RPiде Apache орнотуу үчүн эң сонун ресурстар бар, ошондуктан мен бул жерде кайталабайм. 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" үлгүсүндөгү кодду иштетип, LED матрицасында "Hello World" дисплейин көрсөтүңүз. Бул кийинки кадамга өтүүдөн мурун иштеши керек.

ZeroMQ Messaging

Эмне үчүн бизге билдирүү керек? Жогорудагы мисал кодун, 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 -кадам: Web баракчасын орнотуу

Веб баракчасында мен баракты кооз кылып көрсөтүү үчүн bootstrap css/js негизин колдондум. Бул толугу менен милдеттүү эмес.

Apache тамырына же каталогуна тиркелген led_msg.tar.gz файлын жүктөп алыңыз. Gzip'd tar файлын ачуу үчүн, чуркаңыз:

tar -xzvf led_msg.tar.gz

Бул төмөнкү файлдарды түзөт:

msg.py (негизги программа)

templates/interstitial.html (html шаблону) шаблондор/send_msg.html (html шаблону) static/img/led_150x150-j.webp

Кааласаңыз, статикалык каталогдун астына bootstrap css/js негизин орнотуңуз.

Msg.py браузериңиздин URL дарегин киргизиңиз жана веб баракчанын пайда болушун текшериңиз. Азырынча билдирүү жөнөтпөңүз !!!

Билдирүүлөрдү тапшыруудан мурун, ZeroMQ серверин веб -баракча кардарынан келген билдирүүлөрдү кабыл алуу жана аларды LED матрицасында көрсөтүү үчүн баштоо керек. ZeroMQ сервери иштебесе, экранда эч нерсе көрүнбөйт.

Тиркелген max7219_server.py кодун веб -колдонуучулар аткара турган Apache root dir эмес, үй каталогуна түшүрүңүз. Аны тамыр катары иштетүү:

sudo python max7219_server.py

Эми ZeroMQ сервери веб -баракчадан билдирүүлөрдү алууга даяр. Веб -баракчадан жөнөкөй билдирүүнү киргизиңиз жана тапшырыңыз. Эгерде бардыгы туура орнотулган болсо, анда ZeroMQ серверинин экранында жана LED матрицасында ошол билдирүүнү көрөсүз.

Эгерде сиз серверди өчүргүңүз келсе, жөн гана Control-C кылыңыз, сервердин экранынан чыгыңыз.

Дал ушул. Бул долбоор мага окшоп жагат деп ишенем.

Сиз кыла турган жакшыртуулардын бири, ZeroMQ сервер менен кардарлар ортосундагы байланышты асинхрондук кылуу, башка баракчалар көрсөтүлүп жатканда веб -баракча күтпөйт. Ошондой эле, сиз кошумча LED матрицасын каскад режиминде тиркей аласыз. Мен муну сизге калтырам.

Сунушталууда: