İçindekiler:
- Adım 1: MQTT Nedir ve Nasıl Çalışır?
- 2. Adım: Ahududu Pi
- Adım 3: Statik Ip Adresi Nasıl Kurulur
- 4. Adım: NodeMCU
- Adım 5: Python Komut Dosyası
- Adım 6: Bağlantılar ve Devre Şeması
- 7. Adım: Sonuç
Video: Raspberry Pi, MQTT Kullanarak ESP8266 İle Konuşuyor: 8 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:20
Bu projede, MQTT protokolünün ne olduğunu ve cihazlar arasında nasıl iletişim kurmak için kullanıldığını anlatacağım. Ardından, pratik bir gösteri olarak, bir ESP8266 modülünün yanı sıra RPi'nin konuştuğu bir client ve brocker sisteminin nasıl kurulacağını göstereceğim. birbirlerine veya bir düğmeye basıldığında mesaj gönderin.
Gerekli malzeme
1. Ahududu Pi 3
2. DüğümMCU
3. LED
4. Düğme
5. Dirençler (10k, 475 ohm)
Adım 1: MQTT Nedir ve Nasıl Çalışır?
MQTT
MQTT, makineden makineye (M2M) bir veri aktarım protokolüdür. MQTT, birçok cihazdan veri toplamak ve ardından bu verileri BT altyapısına taşımak amacıyla oluşturuldu. Hafiftir ve bu nedenle özellikle küçük kod ayak izi gerektiren veya ağ bant genişliğinin sınırlı olduğu M2M bağlantılarında uzaktan izleme için idealdir.
MQTT nasıl çalışır?
MQTT, ağ ucu cihazlarının bir aracıya yayınlamasına izin veren bir yayınlama/abone olma protokolüdür. İstemciler, daha sonra iki aygıt arasındaki iletişime aracılık eden bu aracıya bağlanır. Her cihaz belirli konulara abone olabilir veya kayıt olabilir. Başka bir istemci, abone olunan bir konuda bir mesaj yayınladığında, aracı, mesajı abone olan herhangi bir istemciye iletir.
MQTT çift yönlüdür ve durum bilgisi olan oturum farkındalığını korur. Bir uç ağ aygıtının bağlantısı kesilirse, sistemdeki herhangi bir yetkili istemcinin uç uçta yeni bir değer yayınlayabilmesi için, abone olan tüm istemciler MQTT sunucusunun “Son Vasiyet ve Vasiyet” özelliği ile bilgilendirilecektir. ağ aygıtı, çift yönlü bağlantıyı korur.
Proje 3 bölüme ayrılmıştır
Öncelikle RPi üzerinde MQTT server oluşturuyoruz ve bazı kütüphaneler kuruyoruz.
İkinci olarak NodeMCU'nun MQTT ile çalışması için Arduino IDE'ye kütüphaneler kuracağız, kodu yükleyeceğiz ve sunucunun çalışıp çalışmadığını kontrol edeceğiz.
Son olarak, Rpi'de bir script oluşturuyoruz, gerekli kodu NodeMCU'ya yüklüyoruz ve hem sunucu hem de istemci tarafında ledleri kontrol etmek için python scriptini çalıştırıyoruz. Burada sunucu RPI ve istemci NodeMCU'dur.
2. Adım: Ahududu Pi
1. En son MQTT sunucusunu ve istemcisini RPi'ye kurmak için, yeni depoyu kullanmak için önce depo paketi imzalama anahtarını içe aktarmalısınız.
wget https://repo.mosquitto.org/debian/mosquitto-repo.gpg.keysudo apt-key mosquitto-repo.gpg.key ekleyin
2. Depoyu uygun hale getirin.
cd /etc/apt/sources.list.d/
3. Hangi Debian sürümünü kullandığınıza bağlı olarak.
sudo wget https://repo.mosquitto.org/debian/mosquitto-wheezy.listsudo wget
sudo wget
sudo apt-get güncellemesi
4. Komutu kullanarak Mosquitto sunucusunu kurun.
sudo apt-get kurulum sivrisinek
Mosquitto'yu kurarken bu şekilde hata alıyorsanız.
#################################################################
Aşağıdaki paketlerin karşılanmayan bağımlılıkları var:mosquitto: Bağımlı: libssl1.0.0 (>= 1.0.1) ama kurulamaz Bağımlı: libwebsockets3 (>= 1.2) ama kurulamaz E: Sorunlar düzeltilemiyor, bozuk tutulmuş paketler.
#################################################################
Ardından sorunları gidermek için bu komutu kullanın.
sudo apt --fix-bozuk kurulum
5. MQTT sunucusunu kurduktan sonra, komutu kullanarak istemciyi kurun
sudo apt-get install sivrisinek istemcileri
Komutu kullanarak hizmetleri kontrol edebilirsiniz.
systemctl durumu mosquitto.service
MQTT sunucumuz ve istemcimiz kurulu olduğu için. Artık abone ol ve yayınla kullanarak kontrol edebiliriz. Abone olmak ve yayınlamak için komutları kontrol edebilir veya aşağıda verilen web sitesini ziyaret edebilirsiniz.
Sivrisinek Alt
Sivrisinek Barı
paho-mqtt kütüphanesini kurmak için aşağıdaki komutu kullanın.
sudo pip kurulumu paho-mqtt
paho
Adım 3: Statik Ip Adresi Nasıl Kurulur
cd /etc dizinine gidin ve herhangi bir düzenleyici kullanarak dhcpcd.conf dosyasını açın. Sonunda, bu dört satırı yazın.
interface eth0 static ip_address=192.168.1.100 // kullanmak istediğiniz ip
arayüz wlan0
statik ip_adresi=192.168.1.68
statik yönlendiriciler=192.168.1.1 // Varsayılan ağ geçidiniz
statik etki alanı_adı_sunucuları=192.168.1.1
Bundan sonra kaydedin ve pi'nizi yeniden başlatın.
4. Adım: NodeMCU
NodeMCU için Arduino IDE'de gerekli kitaplıkları kurun
1. Sketch'e gidin ==> Kitaplığı dahil et ==> Kitaplıkları yönetin.
2. mqtt'yi arayın ve Adafruit tarafından kitaplığı kurun veya herhangi bir kitaplık kurabilirsiniz.
3. Sleepydog kütüphanesine bağlıdır, bu yüzden bu kütüphaneye de ihtiyacımız var.
Program sadece çalışıp çalışmadığını kontrol etmek için yukarıda verilmiştir. Burada RPi'de herhangi bir komut dosyası oluşturmadım. Sadece abone olmak ve yayınlamak için komutları kullanıyoruz. Daha sonra kontrol etmek için script oluşturacağız.
mosquitto_pub -h raspberrypi -t "/leds/pi" -m "AÇIK"
mosquitto_pub -h raspberrypi -t "/leds/pi" -m "KAPALI"
mosquitto_pub -h raspberrypi -t "/leds/pi" -m "TOGGLE"
mosquitto_pub -h raspberrypi -t "/leds/esp8266" -m "AÇIK"
mosquitto_pub -h raspberrypi -t "/leds/esp8266" -m "KAPALI"
mosquitto_pub -h raspberrypi -t "/leds/esp8266" -m "TOGGLE"
-h == > ana bilgisayar adı-t == > konu
-m == > mesaj
Mqtt_check programını kontrol ettikten sonra NodeMCU'da tam programı yükleyin
Adım 5: Python Komut Dosyası
Yukarıda bahsettiğim gibi butonları kullanarak ledleri kontrol etmek için python betiğine ihtiyacımız var. Yani, script oluşturacağız. Senaryo yukarıda verilmiştir.
Komut dosyasını çalıştırdığınızda, komut dosyanız resimde gösterildiği gibi görünmelidir, sonuç kodu sıfır değilse, bunlar bir hatadır, paho web sitesinde hatayı kontrol edebilirsiniz.
Adım 6: Bağlantılar ve Devre Şeması
Düğme arabirimi, NodeMCU'lu LED
NodeMCU === > ButtonGnd === > Gnd
3.3V === > PIN1
GPIO4 (D2) === > PIN2
NodeMCU === > LED
Gnd === > Katot (-ve)
GPIO5 (D1) === > Anot(+ve)
Düğme arabirimi, RPi'li LED
RPi === > ButtonGnd === > PIN1
GPIO 23 === > PIN2
RPi === > LED
Gnd == > Katot(-ve)
GPIO 24 === > Anot(+ve)
7. Adım: Sonuç
Komut dosyasının çalıştığından emin olun, aksi takdirde butonları kullanarak led'i kontrol edemez.
Önerilen:
Uno ile ESP8266 WeMos D1 R1 Wifi İşlemci Kullanarak ESP32-Cam ile Görüntü Yakalama ve Gönderme: 7 Adım
ESP8266 WeMos D1 R1 Uno ile Wifi İşlemci Kullanarak ESP32-Cam ile Görüntü Yakalayın ve Gönderin: Uno ile ESP8266 WeMos D1 R1 WiFI İşlemci kullanarak ESP32-Cam (OV2640) kullanarak görüntü yakalayın ve e-postaya gönderin, Google Drive'a kaydedin ve gönderin Twilio'yu kullanan Whatsapp.Requirements: Uno'lu ESP8266 WeMos D1 R1 WiFI İşlemci (https://protosupplies
M5stick-C ile Neopixel Ws2812 Gökkuşağı LED Glow - Rainbow'u Arduino IDE Kullanarak M5stack M5stick C Kullanarak Neopixel Ws2812 Üzerinde Çalıştırmak: 5 Adım
M5stick-C ile Neopixel Ws2812 Gökkuşağı LED Glow | Rainbow'u Neopixel Ws2812'de M5stack M5stick C Kullanarak Arduino IDE Kullanarak Çalıştırmak: Merhaba arkadaşlar bu talimatta Arduino IDE ile neopixel ws2812 LED'lerini veya led şerit veya led matrisi veya led halkayı m5stack ile m5stick-C geliştirme kartını nasıl kullanacağımızı öğreneceğiz ve bunu yapacağız. onunla bir gökkuşağı deseni
HT12D Kullanarak RF 433MHZ Radyo Kontrolü HT12E - 433mhz ile HT12E & HT12D Kullanarak Rf Uzaktan Kumanda Yapma: 5 Adım
HT12D Kullanarak RF 433MHZ Radyo Kontrolü HT12E | 433mhz ile HT12E ve HT12D Kullanarak Rf Uzaktan Kumanda Yapma: Bu talimatta size HT12E kodlamalı & HT12D kod çözücü IC.Bu talimatta çok ucuz BİLEŞENLER GİBİ kullanarak veri gönderip alabilirsiniz: HT
Arduino IDE Kullanarak M5stick C İle Saat Yapımı - M5stack M5stick-C ile RTC Gerçek Zamanlı Saat: 4 Adım
Arduino IDE Kullanarak M5stick C İle Saat Yapımı | M5stack M5stick-C ile RTC Gerçek Zamanlı Saat: Merhaba arkadaşlar bu talimatta Arduino IDE kullanarak m5stick-C m5stack geliştirme kartı ile saat yapmayı öğreneceğiz. Ekranda ayın haftası
ESP32 veya ESP8266 Kullanarak MQTT Uyarıları ile HiFive1 Arduino Saldırgan Tespiti: 6 Adım
ESP32 veya ESP8266 Kullanarak MQTT Uyarıları ile HiFive1 Arduino Saldırgan Tespiti: HiFive1, SiFive'dan FE310 CPU ile oluşturulmuş ilk Arduino uyumlu RISC-V tabanlı karttır. Kart, Arduino UNO'dan yaklaşık 20 kat daha hızlıdır, ancak UNO kartı gibi, herhangi bir kablosuz bağlantıdan yoksundur.Neyse ki, birkaç ucuz