İçindekiler:

IoT RPi LED Mesaj Panosu: 3 Adım (Resimlerle)
IoT RPi LED Mesaj Panosu: 3 Adım (Resimlerle)

Video: IoT RPi LED Mesaj Panosu: 3 Adım (Resimlerle)

Video: IoT RPi LED Mesaj Panosu: 3 Adım (Resimlerle)
Video: SMS ile Ev Otomasyonu (Akıllı Ev Sistemleri) - Arduino GSM Shield Kullanımı & Kodlar 2024, Temmuz
Anonim
Image
Image
Donanım Kurulumu
Donanım Kurulumu

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

Donanım Kurulumu
Donanım Kurulumu
Donanım Kurulumu
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

Yazılım Kurulumu
Yazılım Kurulumu
Yazılım Kurulumu
Yazılım Kurulumu
Yazılım Kurulumu
Yazılım Kurulumu
Yazılım Kurulumu
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: