Daftar Isi:
- Langkah 1: Pengaturan Perangkat Keras
- Langkah 2: Pengaturan Perangkat Lunak
- Langkah 3: Pengaturan Halaman Web
Video: IoT RPi LED Message Board: 3 Langkah (dengan Gambar)
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:56
Dalam Instruksi ini, saya telah membuat papan pesan LED yang terhubung dengan wifi menggunakan Raspberry Pi (RPi). Pengguna akan terhubung ke server web Raspberry Pi menggunakan browser mereka untuk mengirimkan pesan singkat yang akan muncul di layar LED 8x8. Karena menghubungkan matriks LED 8x8 dengan driver MAX7219 dengan Python didokumentasikan dengan baik oleh orang lain di Internet, proyek ini berfokus pada membangun antarmuka server web dan menggunakan ZeroMQ Messaging untuk mengelola pesan masuk.
Pembaruan: Ini adalah proyek tindak lanjut Papan Gambar Matriks LED Desimal / Heksadesimal 8x8 IoT
(Saya seorang fasilitator klub untuk Girls Who Code Club dan saya membuat proyek sederhana ini untuk mengajar siswa tentang desain antarmuka web dan pengiriman pesan.)
Langkah 1: Pengaturan Perangkat Keras
Proyek ini membutuhkan perangkat keras berikut:
- Raspberry Pi
- Sumber daya USB seperti Anker dengan kabel USB ke MicroUSB pendek
- MAX7219 modul dot matrix dengan kabel pita (Aliexpress kurang dari $2)
- Enclosure (saya buat dari kardus dan cat semprot warna hitam)
Pengaturan perangkat keras adalah bagian yang mudah. Cukup sambungkan kabel pita 5 kawat dari matriks LED ke RPi per MAX7219 library doc.
LED->RPi========VCC->Pin GPIO #2 (5v)GND->Pin GPIO #6 (GND)DIN->Pin GPIO #19CS ->Pin GPIO #24CLK->Pin GPIO # 23
Saya menggunakan pita busa dua sisi untuk menempelkan unit LED ke kasing RPi. Kemudian, saya membuat selungkup dari kotak kardus untuk menampung RPi dan baterai.
Langkah 2: Pengaturan Perangkat Lunak
RPi harus memiliki perangkat lunak berikut:
- Python 3
- Apache 2 webserver
- Driver Max7219 untuk Python
- Pesan ZeroMQ
Python 3
RPi seharusnya sudah memiliki Python 3 yang sudah diinstal sebelumnya. Sementara kode saya ditulis untuk Python 3, Python 2 harus bekerja dengan beberapa perubahan kecil.
Apache 2
Siapkan Apache dan aktifkan skrip Python CGI. Di bawah ini adalah beberapa sumber yang bagus untuk menyiapkan Apache di RPi jadi saya tidak akan mengulanginya di sini. Cukup ikuti tutorial di bawah ini untuk mengatur Apache dan CGI. Pastikan skrip *.py dapat dieksekusi dari browser.
- https://raspberrywebserver.com/cgiscripting/
- https://www.knight-of-pi.org/Apache-web-server-with-cgi-for-python/
Driver Max7291
Instal driver Max7219 dengan mengikuti panduan penginstalan terbaru:
https://max7219.readthedocs.io/en/latest/install.html
Setelah penginstalan, jalankan kode contoh, matrix_test.py, per panduan penginstalan untuk menampilkan "Hello World" pada Matriks LED. Ini harus bekerja sebelum melanjutkan ke langkah berikutnya.
Pesan ZeroMQ
Mengapa kita perlu Pesan? Coba jalankan kode contoh di atas, matrix_test.py, pada dua layar terminal secara bersamaan. Sistem akan memungkinkan beberapa kode untuk berjalan secara bersamaan tetapi Anda akan melihat pesan yang tumpang tindih yang tidak diinginkan. Dalam lingkungan pengguna tunggal, ini mungkin tidak menjadi masalah karena Anda dapat memastikan bahwa hanya satu program yang dapat dijalankan pada satu waktu. Dalam lingkungan multi-pengguna seperti web, sistem harus membuat antrian FIFO (First-In-First-Out) untuk memastikan hanya satu orang yang dapat mengeksekusi kode sementara yang lain menunggu. Meskipun mungkin ada solusi lain untuk mencapai ini, saya memutuskan untuk menggunakan ZeroMQ untuk mengelola antrian FIFO. Kode server ZeroMQ berisi panggilan fungsi aktual untuk menampilkan pesan pada matriks LED satu per satu sementara server web bertindak sebagai klien ZeroMQ untuk menanyakan dan mengirimkan pesan ke server ZeroMQ. Dengan cara ini, sementara beberapa pengguna dapat mengirimkan pesan melalui halaman web secara bersamaan, server ZeroMQ hanya akan menampilkan satu pesan dalam satu waktu.
Untuk proyek ini, kita hanya akan menginstal paket Python pyzmq dan bukan seluruh paket ZeroMQ.
Lari:
sudo pip3 instal pyzmq
Baca panduan ZeroMQ di https://zguide.zeromq.org dan coba contoh server dan klien hello world dengan Python. Salin kode contoh Python untuk server dan klien ke RPi dan pastikan mereka berfungsi sebelum melanjutkan ke langkah berikutnya.
Langkah 3: Pengaturan Halaman Web
Di halaman web, saya menggunakan kerangka bootstrap css/js untuk membuat halaman terlihat cantik. Ini benar-benar opsional.
Unduh file led_msg.tar.gz terlampir ke root atau sub-direktori Apache. Untuk membuka tar file tar gzip'd, jalankan:
tar -xzvf led_msg.tar.gz
Ini membuat file berikut:
msg.py (program utama)
templates/interstitial.html (template html) templates/send_msg.html (template html)static/img/led_150x150-j.webp
Secara opsional, instal kerangka bootstrap css/js di bawah direktori statis.
Masukkan URL untuk msg.py browser Anda dan pastikan halaman web muncul. Jangan kirim pesan dulu!!!
Sebelum pesan dapat dikirimkan, server ZeroMQ harus mulai menerima pesan dari klien halaman web dan menampilkannya pada matriks LED. Tidak ada yang akan ditampilkan di layar jika server ZeroMQ tidak berjalan.
Unduh kode max7219_server.py terlampir ke direktori home Anda, bukan di direktori root Apache yang dapat dijalankan oleh pengguna web. Jalankan sebagai root:
sudo python max7219_server.py
Sekarang server ZeroMQ siap menerima pesan dari halaman web. Masukkan dan kirimkan pesan sederhana dari halaman web. Jika semuanya diatur dengan benar, Anda akan melihat pesan itu di layar server ZeroMQ serta di Matriks LED.
Jika Anda ingin mematikan server, lakukan saja Control-C untuk keluar dari layar server.
Itu dia. Semoga Anda menikmati proyek ini sama seperti saya.
Satu peningkatan yang dapat Anda lakukan adalah membuat komunikasi ZeroMQ antara server dan klien tidak sinkron sehingga halaman web tidak menunggu saat pesan lain ditampilkan. Anda juga dapat memasang matriks LED tambahan dalam mode kaskade. Saya akan menyerahkan itu kepada Anda.
Direkomendasikan:
Howto: Instalasi Raspberry PI 4 Headless (VNC) Dengan Rpi-imager dan Gambar: 7 Langkah (dengan Gambar)
Cara: Memasang Raspberry PI 4 Headless (VNC) Dengan Rpi-imager dan Gambar: Saya berencana untuk menggunakan Rapsberry PI ini dalam banyak proyek menyenangkan di blog saya. Jangan ragu untuk memeriksanya. Saya ingin kembali menggunakan Raspberry PI saya tetapi saya tidak memiliki Keyboard atau Mouse di lokasi baru saya. Sudah lama sejak saya menyiapkan Raspberry
Cara Membuat Website Message Board Menggunakan PHP dan MYSQL: 5 Langkah
Cara Membuat Website Message Board Menggunakan PHP dan MYSQL: Instruksi ini akan menunjukkan cara membuat website message board menggunakan php, mysql, html, dan css. Jika Anda baru dalam pengembangan web, jangan khawatir, akan ada penjelasan dan analogi terperinci sehingga Anda dapat lebih memahami konsepnya. Tikar
Little Message Hider/agen rahasia Chapstick: 4 Langkah (dengan Gambar)
Penyembunyi Pesan Kecil/Agen Rahasia Chapstick: Mencari tempat untuk menyimpan sedikit pesan untuk temanmu? Bagaimana dengan pekerjaan agen rahasia yang selalu Anda inginkan? Desain sederhana ini sangat ideal untuk situasi seperti ini dan sangat murah untuk dibuat
RPi IoT Smart Light Menggunakan Firebase: 4 Langkah (dengan Gambar)
RPi IoT Smart Light Menggunakan Firebase: Panduan ini menunjukkan cara membuat dan menyiapkan aplikasi untuk mengontrol Raspberry Pi melalui Firebase (Database online). Dan kemudian pencetakan 3D kasing untuk Pi Zero W, Powerboost 1000C, baterai, dan Blinkt!.Untuk dapat mengikuti dengan paling mudah, saya
RPi-Zero IoT Event Indicator / Lampu Warna: 6 Langkah (dengan Gambar)
RPi-Zero IoT Event Indicator / Lampu Warna: Tidak ada mikrokontroler tambahan, & Tidak diperlukan modul tambahan HAT. RPi-Zero melakukan semuanya. Lebih baik lagi gunakan RPi-Zero W !Contoh penggunaan: Indikator status Layanan Web (misalnya pelacakan DowJonesIndex), indikator status acara Politik atau Olahraga, lampu suasana hati