İçindekiler:
Video: IoT RPi LED Mesaj Panosu: 3 Adım (Resimlerle)
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:19
Bu Eğitilebilir Kitapta, bir Raspberry Pi (RPi) kullanarak wifi bağlantılı bir LED mesaj panosu yaptım. Kullanıcılar, 8x8 LED ekranda görünecek kısa mesajları göndermek için tarayıcılarını kullanarak Raspberry Pi'nin web sunucusuna bağlanacaklar. Python'da MAX7219 sürücüsü ile 8x8 LED matrisinin arayüzlenmesi, İnternet'teki başkaları tarafından iyi belgelendiğinden, bu proje bir web sunucusu arayüzü oluşturmaya ve gelen mesajları yönetmek için ZeroMQ Mesajlaşmayı kullanmaya odaklanıyor.
Güncelleme: İşte bir takip projesi IoT Ondalık/Onaltılık 8x8 LED Matris Çizim Kurulu
(Ben Kod Yazan Kızlar Kulübü için bir kulüp kolaylaştırıcısıyım ve öğrencilere web arayüzü tasarımı ve mesajlaşmayı öğretmek için bu basit projeyi buldum.)
Adım 1: Donanım Kurulumu
Bu proje aşağıdaki donanımı gerektirir:
- Ahududu Pi
- Kısa bir USB - MicroUSB kablosuna sahip Anker gibi USB güç kaynağı
- Şerit kablolu MAX7219 nokta vuruşlu modül (Aliexpress 2 dolardan daha ucuza)
- Muhafaza (Bir karton kutudan yaptım ve siyah sprey boyayla boyadım)
Donanım kurulumu kolay kısımdır. MAX7219 kitaplık belgesine göre LED matrisinden RPi'ye 5 telli şerit kablo bağlamanız yeterlidir.
LED->RPi========VCC->GPIO Pin #2 (5v)GND->GPIO Pin #6 (GND)DIN->GPIO Pin #19CS ->GPIO Pin #24CLK->GPIO Pin # 23
LED ünitesini RPI kasasına yapıştırmak için çift taraflı köpük bant kullandım. Ardından, hem RPI hem de pili barındırmak için bir karton kutudan bir muhafaza yaptım.
Adım 2: Yazılım Kurulumu
RPi aşağıdaki yazılıma sahip olmalıdır:
- piton 3
- Apache 2 web sunucusu
- Python için Max7219 sürücüsü
- ZeroMQ Mesajlaşma
piton 3
RPi, önceden yüklenmiş Python 3'e sahip olmalıdır. Kodum Python 3 için yazılırken, Python 2 birkaç küçük değişiklikle çalışmalı.
Apaçi 2
Apache'yi kurun ve Python CGI komut dizisini etkinleştirin. Aşağıda, Apache'yi RPi'ye kurmak için birkaç harika kaynak var, bu yüzden burada tekrar etmeyeceğim. Apache ve CGI'yı kurmak için aşağıdaki öğreticileri takip edin. *.py komut dosyalarının bir tarayıcıdan yürütülebilir olduğundan emin olun.
- https://raspberrywebserver.com/cgiscripting/
- https://www.knight-of-pi.org/apache-web-server-with-cgi-for-python/
Max7291 Sürücü
En son yükleme kılavuzunu izleyerek Max7219 sürücüsünü yükleyin:
https://max7219.readthedocs.io/en/latest/install.html
Kurulumdan sonra, LED Matrix'te "Merhaba Dünya"yı görüntülemek için kurulum kılavuzuna göre matrix_test.py örnek kodunu çalıştırın. Bunun bir sonraki adıma geçmeden önce çalışması gerekir.
ZeroMQ Mesajlaşma
Neden Mesajlaşmaya ihtiyacımız var? Yukarıdaki örnek kodu matrix_test.py'yi aynı anda iki terminal ekranında çalıştırmayı deneyin. Sistem, birden fazla kodun aynı anda çalışmasına izin verecektir, ancak mesajların üst üste bindiğini göreceksiniz, bu istenmez. Tek bir kullanıcı ortamında, aynı anda yalnızca bir programın çalışabileceğinden emin olabileceğiniz için bu bir sorun olmayabilir. Web gibi çok kullanıcılı bir ortamda, diğerleri beklerken yalnızca bir kişinin kodu çalıştırabilmesini sağlamak için sistemin bir FIFO (İlk Giren İlk Çıkar) kuyruğu oluşturması gerekir. Bunu başarmak için başka çözümler olsa da, FIFO kuyruğunu yönetmek için ZeroMQ kullanmaya karar verdim. ZeroMQ sunucu kodu, web sunucusu, ZeroMQ sunucusunu sorgulamak ve mesaj göndermek için bir ZeroMQ istemcisi olarak hareket ederken, LED matrisinde birer birer bir mesaj görüntülemek için gerçek işlev çağrısını içerir. Bu şekilde, birden fazla kullanıcı aynı anda bir web sayfası aracılığıyla mesaj gönderebilirken, ZeroMQ sunucusu bir seferde yalnızca bir mesaj görüntüleyecektir.
Bu proje için, ZeroMQ paketinin tamamını değil, sadece Python paketini pyzmq kuracağız.
Çalıştırmak:
sudo pip3 pyzmq yükleyin
zguide.zeromq.org adresindeki ZeroMQ kılavuzunu okuyun ve Python'daki merhaba dünya sunucusu ve istemci örneğini deneyin. Hem sunucu hem de istemci için Python örnek kodunu RPi'ye kopyalayın ve bir sonraki adıma geçmeden önce çalıştıklarından emin olun.
3. Adım: Web Sayfası Kurulumu
Web sayfasında, sayfanın güzel görünmesi için bootstrap css/js çerçevesini kullandım. Bu tamamen isteğe bağlıdır.
Ekli led_msg.tar.gz dosyasını Apache kök veya alt dizinine indirin. gzip'd tar dosyasını açmak için şunu çalıştırın:
tar -xzvf led_msg.tar.gz
Bu, aşağıdaki dosyaları oluşturur:
msg.py (ana program)
templates/interstitial.html (html şablonu) templates/send_msg.html (html şablonu)static/img/led_150x150.jpg (html şablonunda kullanılan jpg)
İsteğe bağlı olarak, statik dizinin altına bootstrap css/js çerçevesini kurun.
Tarayıcınız için msg.py URL'sini girin ve web sayfasının geldiğinden emin olun. Henüz mesaj göndermeyin!!!
Mesajlar gönderilmeden önce, ZeroMQ sunucusunun web sayfası istemcisinden gelen mesajları kabul etmesi ve bunları LED matrisinde göstermesi gerekir. ZeroMQ sunucusu çalışmıyorsa ekranda hiçbir şey görüntülenmez.
Ekli max7219_server.py kodunu, web kullanıcıları tarafından yürütülebileceği Apache kök dizinine değil, ana dizininize indirin. Kök olarak çalıştırın:
sudo python max7219_server.py
Artık ZeroMQ sunucusu web sayfasından mesaj almaya hazırdır. Web sayfasından basit bir mesaj girin ve gönderin. Her şey doğru ayarlanmışsa, bu mesajı ZeroMQ sunucu ekranında ve LED Matrix'te göreceksiniz.
Sunucuyu kapatmak istiyorsanız, sunucu ekranından çıkmak için Control-C yapmanız yeterlidir.
Bu kadar. Umarım bu projeden benim aldığım kadar zevk alırsınız.
Yapabileceğiniz bir geliştirme, sunucu ve istemciler arasındaki ZeroMQ iletişimini eşzamansız hale getirmektir, böylece web sayfası diğer mesajlar görüntülenirken beklemez. Ayrıca, kademeli modda ek LED matrisi ekleyebilirsiniz. Bunu sana bırakacağım.
Önerilen:
Kablosuz Duyuru Panosu (Bluetooth): 5 Adım (Resimlerle)
Kablosuz Bildiri Panosu (Bluetooth): Her şeyin dijitalleştiği bu modern dünyada, neden geleneksel Bildiri panosu yeni bir görünüm kazanmasın. Öyleyse, Bluetooth kontrollü bir Bildiri Panosu yapalım çok basit. Bu kurulum statik bildirim yerine kullanılabilir. kolejlerde olduğu gibi yönetim kurulu /
LED Şerit Mesaj Panosu: 3 Adım
LED Şerit Mesaj Panosu: Bu talimat, ayrı ayrı adreslenebilir NeoPixel LED şeritlerinden bir mesaj panosu oluşturma sürecinde size yol gösterecektir. Bu proje, https://github.com/bigjo… adresinde bulunabilen Josh Levine tarafından üretilen bir tabelanın uyarlanmış bir versiyonudur
Raspberry Pi Motosiklet Panosu: 9 Adım (Resimlerle)
Raspberry Pi Motosiklet Panosu: Öğrenci olarak Multimedya & Howest Kortrijk'te iletişim teknolojisi, kendi IoT projemi yapmak zorunda kaldım. Bu, ilk yılda izlenen tüm modülleri tek bir büyük projede birleştirecektir. Boş zamanlarımda motosikletime çok bindiğim için
MXY Board - Düşük Bütçeli XY Plotter Çizim Robotu Panosu: 8 Adım (Resimlerle)
MXY Kartı - Düşük Bütçeli XY Plotter Çizim Robotu Kartı: Amacım, XY çizici çizim makinesini düşük bütçeli yapmak için mXY kartını tasarlamaktı. Ben de bu projeyi yapmak isteyenlerin işini kolaylaştıran bir pano tasarladım. Bir önceki projede 2 adet Nema17 step motor kullanılırken bu kart u
PHP ve MYSQL Kullanarak Mesaj Panosu Web Sitesi Nasıl Yapılır: 5 Adım
PHP ve MYSQL Kullanarak Mesaj Panosu Web Sitesi Nasıl Yapılır: Bu talimat size php, mysql, html ve css kullanarak bir mesaj panosu web sitesinin nasıl oluşturulacağını gösterecektir. Web geliştirmede yeniyseniz, endişelenmeyin, kavramları daha iyi anlayabilmeniz için ayrıntılı açıklamalar ve analojiler olacak. Mat