Isi kandungan:
Video: Papan Mesej LED IoT RPi: 3 Langkah (dengan Gambar)
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:09
Dalam Instructable ini, saya telah membuat papan pesanan LED bersambung wifi menggunakan Raspberry Pi (RPi). Pengguna akan menyambung ke pelayan web Raspberry Pi menggunakan penyemak imbas mereka untuk menghantar pesanan ringkas yang akan muncul di paparan LED 8x8. Oleh kerana menghubungkan matriks 8x8 LED dengan pemacu MAX7219 di Python didokumentasikan dengan baik oleh orang lain di Internet, projek ini memfokuskan pada membina antara muka pelayan web dan menggunakan Pemesejan ZeroMQ untuk menguruskan mesej masuk.
Kemas kini: Berikut adalah projek susulan IoT Decimal / Hexadecimal 8x8 LED Matrix Drawing Board
(Saya adalah fasilitator kelab untuk Girls Who Code Club dan saya membuat projek ringkas ini untuk mengajar pelajar mengenai reka bentuk dan pesanan antara muka web.)
Langkah 1: Persediaan Perkakasan
Projek ini memerlukan perkakasan berikut:
- Pai raspberi
- Sumber kuasa USB seperti Anker dengan kabel USB ke MicroUSB pendek
- Modul matriks dot MAX7219 dengan kabel pita (Aliexpress dengan harga kurang dari $ 2)
- Kandang (saya membuat satu dari kotak kadbod dan semburan dicat hitam)
Penyediaan perkakasan adalah bahagian yang mudah. Cukup sambungkan kabel reben 5 wayar dari matriks LED ke dokumen perpustakaan RPi per MAX7219.
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 melekatkan unit LED ke casing RPi. Kemudian, saya membuat penutup dari kotak kadbod untuk menempatkan RPi dan bateri.
Langkah 2: Persediaan Perisian
RPi harus mempunyai perisian berikut:
- Python 3
- Pelayan web Apache 2
- Pemandu Max7219 untuk Python
- Pemesejan ZeroMQ
Python 3
RPi harus mempunyai Python 3 yang sudah dipasang sebelumnya. Walaupun kod saya ditulis untuk Python 3, Python 2 semestinya berfungsi dengan sedikit perubahan kecil.
Apache 2
Sediakan Apache dan aktifkan skrip Python CGI. Berikut adalah beberapa sumber hebat untuk menyiapkan Apache di RPi jadi saya tidak akan mengulanginya di sini. Cukup ikuti tutorial di bawah untuk menyiapkan Apache dan CGI. Pastikan skrip *.py dapat dilaksanakan dari penyemak imbas.
- https://raspberrywebserver.com/cgiscripting/
- https://www.knight-of-pi.org/apache-web-server-with-cgi-for-python/
Pemandu Max7291
Pasang pemacu Max7219 dengan mengikuti panduan pemasangan terkini:
https://max7219.readthedocs.io/en/latest/install.html
Selepas pemasangan, jalankan kod contoh, matrix_test.py, setiap panduan pemasangan untuk memaparkan "Hello World" pada LED Matrix. Ini mesti berjaya sebelum pergi ke langkah seterusnya.
Pemesejan ZeroMQ
Mengapa kita memerlukan Pemesejan? Cuba jalankan kod contoh di atas, matrix_test.py, pada dua skrin terminal secara serentak. Sistem akan membenarkan beberapa kod berjalan serentak tetapi anda akan melihat mesej bertindih yang tidak diingini. Dalam persekitaran pengguna tunggal, ini mungkin tidak menjadi masalah kerana anda dapat memastikan bahawa hanya satu program yang dapat berjalan pada satu masa. Dalam persekitaran berbilang pengguna seperti web, sistem harus membuat barisan FIFO (First-In-First-Out) untuk memastikan hanya satu orang yang dapat melaksanakan kod sementara yang lain menunggu. Walaupun mungkin ada penyelesaian lain untuk mencapainya, saya memutuskan untuk menggunakan ZeroMQ untuk menguruskan barisan FIFO. Kod pelayan ZeroMQ mengandungi panggilan fungsi sebenar untuk memaparkan mesej pada matriks LED satu per satu sementara pelayan web bertindak sebagai pelanggan ZeroMQ untuk bertanya dan menghantar mesej ke pelayan ZeroMQ. Dengan cara ini, sementara banyak pengguna dapat mengirim pesan melalui halaman web secara serentak, pelayan ZeroMQ hanya akan memaparkan satu pesan pada satu masa.
Untuk projek ini, kami hanya akan memasang pyzmq pakej Python dan bukan keseluruhan pakej ZeroMQ.
jalankan:
sudo pip3 pasang pyzmq
Baca panduan ZeroMQ di https://zguide.zeromq.org dan cuba contoh pelayan dan pelanggan hello world di Python. Salin kod contoh Python untuk pelayan dan klien ke RPi dan pastikan ia berfungsi sebelum pergi ke langkah seterusnya.
Langkah 3: Penyediaan Halaman Web
Di laman web, saya menggunakan rangka kerja css / js bootstrap untuk menjadikan halaman kelihatan cantik. Ini benar-benar pilihan.
Muat turun fail led_msg.tar.gz yang dilampirkan ke root atau sub-direktori Apache. Untuk melepaskan fail tar gzip'd, jalankan:
tar -xzvf led_msg.tar.gz
Ini membuat fail berikut:
msg.py (program utama)
templat / interstitial.html (templat html) templat / send_msg.html (templat html) statik / img / led_150x150-j.webp
Sebagai pilihan, pasang kerangka bootstrap css / js di bawah direktori statik.
Masukkan URL untuk msg.py penyemak imbas anda dan pastikan laman web muncul. Jangan hantar mesej !!!
Sebelum mesej dapat dikirimkan, pelayan ZeroMQ harus mulai menerima pesan dari klien halaman web dan menampilkannya pada matriks LED. Tidak ada yang akan dipaparkan di skrin jika pelayan ZeroMQ tidak berjalan.
Muat turun kod max7219_server.py yang dilampirkan ke direktori rumah anda, bukan di dir root Apache di mana ia dapat dijalankan oleh pengguna web. Jalankan sebagai root:
sudo python max7219_server.py
Kini pelayan ZeroMQ siap menerima mesej dari laman web. Masukkan dan hantarkan pesanan ringkas dari laman web. Sekiranya semuanya disiapkan dengan betul, anda akan melihat mesej itu di skrin pelayan ZeroMQ dan juga pada Matriks LED.
Sekiranya anda ingin mematikan pelayan, lakukan Control-C untuk keluar dari skrin pelayan.
Itu sahaja. Semoga anda dapat menikmati projek ini seperti yang saya lakukan.
Salah satu peningkatan yang dapat anda lakukan adalah menjadikan komunikasi ZeroMQ antara pelayan dan klien tidak segerak sehingga laman web tidak menunggu sementara mesej lain sedang ditampilkan. Anda juga boleh memasang matriks LED tambahan dalam mod lata. Saya akan menyerahkannya kepada anda.
Disyorkan:
Papan Mesej Jalur LED: 3 Langkah
Papan Mesej Jalur LED: Instruksional ini akan memandu anda melalui proses membuat papan pesanan dari jalur LED NeoPixel yang boleh ditujukan secara individu. Projek ini adalah versi khas dari tanda yang dihasilkan oleh Josh Levine, yang boleh didapati di https://github.com/bigjo
Cara Membuat Laman Web Papan Mesej Menggunakan PHP dan MYSQL: 5 Langkah
Cara Membuat Laman Web Papan Mesej Menggunakan PHP dan MYSQL: Petunjuk ini akan menunjukkan kepada anda cara membuat laman web papan pesanan menggunakan php, mysql, html, dan css. Sekiranya anda baru dalam pengembangan web, jangan risau, akan ada penjelasan dan analogi terperinci sehingga anda mungkin lebih memahami konsepnya. Mat
Stranger Things Wall in a Frame (Tulis Mesej Anda Sendiri!): 8 Langkah (dengan Gambar)
Stranger Things Wall in a Frame (Tulis Mesej Anda Sendiri!): Saya bermaksud melakukan ini selama berbulan-bulan setelah melihat tutorial menggunakan lampu Krismas (kelihatan hebat tetapi apa gunanya tidak menunjukkan sebarang mesej, bukan?). Oleh itu, saya telah membuat Stranger Things Wall ini beberapa waktu yang lalu dan saya mengambil masa yang lama
VALENTINE'S DAY Love Birds: Kotak untuk Menghantar dan Menerima Telegram Audio Mesej: 9 Langkah (dengan Gambar)
VALENTINE'S DAY Love Birds: Kotak untuk Menghantar dan Menerima Telegram Audio Mesej: periksa videonya di siniApa itu Cinta (burung)? Oh Baby jangan sakitkan saya, jangan sakitkan saya lagi. Ini adalah peranti mandiri yang menerima menghantar mesej suara kepada cinta, keluarga atau rakan anda. Buka kotak, tekan butang semasa anda bercakap, lepaskan untuk menghantar
Bingkai Poster Skrin Sentuh yang Terang Dengan Mesej Subliminal !: 16 Langkah (dengan Gambar)
Rangka Poster Skrin Sentuh yang Terang Dengan Mesej Subliminal !: Sejak Think Geek pertama kali menyiarkan satu set lima "perjalanan &"; inspirasi Serenity / Firefly poster, saya tahu saya mesti mempunyai satu set sendiri. Beberapa minggu yang lalu saya akhirnya mendapatkannya, tetapi menghadapi dilema: bagaimana memasangnya di dinding saya? Bagaimana melakukan