İçindekiler:

Raspberry Pi, MQTT Kullanarak ESP8266 İle Konuşuyor: 8 Adım
Raspberry Pi, MQTT Kullanarak ESP8266 İle Konuşuyor: 8 Adım

Video: Raspberry Pi, MQTT Kullanarak ESP8266 İle Konuşuyor: 8 Adım

Video: Raspberry Pi, MQTT Kullanarak ESP8266 İle Konuşuyor: 8 Adım
Video: Adafruit io kullanımı w/ESP8266 | Arduino projesi nasıl geliştirilir? 2024, Kasım
Anonim
Raspberry Pi, MQTT Kullanarak ESP8266 ile Konuşuyor
Raspberry Pi, MQTT Kullanarak ESP8266 ile Konuşuyor

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

Ahududu Pi
Ahududu Pi
Ahududu Pi
Ahududu Pi
Ahududu Pi
Ahududu Pi
Ahududu Pi
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

Statik Ip Adresi Nasıl Kurulur
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

DüğümMCU
DüğümMCU
DüğümMCU
DüğümMCU
DüğümMCU
DüğümMCU
DüğümMCU
DüğümMCU

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ı

Python Komut Dosyası
Python Komut Dosyası
Python Komut Dosyası
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ı

Bağlantılar ve Devre Şeması
Bağlantılar ve Devre Şeması
Bağlantılar ve Devre Şeması
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ç

Image
Image
Sonuç
Sonuç

Komut dosyasının çalıştığından emin olun, aksi takdirde butonları kullanarak led'i kontrol edemez.

Önerilen: