Агуулгын хүснэгт:

IoT RPi LED мессежийн самбар: 3 алхам (зурагтай)
IoT RPi LED мессежийн самбар: 3 алхам (зурагтай)

Видео: IoT RPi LED мессежийн самбар: 3 алхам (зурагтай)

Видео: IoT RPi LED мессежийн самбар: 3 алхам (зурагтай)
Видео: 30 глупых вопросов Product Manager [Карьера в IT] 2024, Арваннэгдүгээр
Anonim
Image
Image
Тоног төхөөрөмжийн тохиргоо
Тоног төхөөрөмжийн тохиргоо

Энэхүү зааварчилгаанд би Raspberry Pi (RPi) ашиглан wifi-д холбогдсон LED мессежийн самбар хийсэн. Хэрэглэгчид 8x8 LED дэлгэц дээр гарч ирэх богино мессежийг илгээхийн тулд браузераа ашиглан Raspberry Pi -ийн вэб сервертэй холбогдох болно. Python дахь MAX7219 драйвертай 8х8 хэмжээтэй LED матрицыг интернэтэд сайн баримтжуулсан байдаг тул энэхүү төсөл нь вэб серверийн интерфэйсийг бий болгох, ирж буй мессежийг удирдахын тулд ZeroMQ мессежийг ашиглахад чиглэгддэг.

Шинэчлэлт: Энд IoT Decimal/Hexadecimal 8x8 LED матрицын зургийн самбарын дараагийн төсөл байна.

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

Алхам 1: Тоног төхөөрөмжийн тохиргоо

Тоног төхөөрөмжийн тохиргоо
Тоног төхөөрөмжийн тохиргоо
Тоног төхөөрөмжийн тохиргоо
Тоног төхөөрөмжийн тохиргоо

Энэ төсөл нь дараахь тоног төхөөрөмжийг шаарддаг.

  • Raspberry Pi
  • Богино USB -ээс MicroUSB кабель бүхий Anker гэх мэт USB тэжээлийн эх үүсвэр
  • Туузан кабель бүхий MAX7219 цэг матрицын модуль (Aliexpress 2 доллараас бага үнээр)
  • Хаалт (би картон хайрцгаар хийсэн бөгөөд шүршигчээ хараар будсан)

Тоног төхөөрөмжийн тохиргоо бол хамгийн хялбар хэсэг юм. LED матрицаас 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

Би хоёр талт хөөс соронзон хальс ашиглан LED нэгжийг 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/en/latest/install.html

Суулгасны дараа LED матриц дээр "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 framework -ийг ашигласан. Энэ нь бүрэн сонголт биш юм.

Apache root эсвэл дэд санд хавсаргасан led_msg.tar.gz файлыг татаж аваарай. 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 framework -ийг статик директор дотор суулгаарай.

Хөтчийнхөө msg.py хаягийг оруулаад вэб хуудас гарч ирэх эсэхийг шалгаарай. Одоохондоо мессеж бүү илгээгээрэй !!!

Зурвас илгээхээс өмнө ZeroMQ сервер нь вэб хуудасны үйлчлүүлэгчээс ирсэн мессежийг хүлээн авч LED матриц дээр харуулах ёстой. ZeroMQ сервер ажиллахгүй бол дэлгэц дээр юу ч харагдахгүй болно.

Хавсаргасан max7219_server.py кодыг вэб хэрэглэгчид гүйцэтгэх боломжтой Apache root dir биш харин өөрийн гэрийн лавлах руу татаж аваарай. Үүнийг root хэлбэрээр ажиллуулна уу:

sudo python max7219_server.py

Одоо ZeroMQ сервер вэб хуудаснаас мессеж хүлээн авахад бэлэн боллоо. Вэб хуудаснаас энгийн мессеж оруулаад илгээнэ үү. Хэрэв бүх зүйл зөв тохируулагдсан бол та энэ мэдэгдлийг ZeroMQ серверийн дэлгэц болон LED матриц дээр харах болно.

Хэрэв та серверийг унтраахыг хүсч байвал Control-C дарж серверийн дэлгэцээс гарна уу.

Ингээд л боллоо. Энэ төсөл миний хийсэн шиг таалагдана гэж найдаж байна.

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

Зөвлөмж болгож буй: