Isi kandungan:

Raspberry Pi Bercakap dengan ESP8266 Menggunakan MQTT: 8 Langkah
Raspberry Pi Bercakap dengan ESP8266 Menggunakan MQTT: 8 Langkah

Video: Raspberry Pi Bercakap dengan ESP8266 Menggunakan MQTT: 8 Langkah

Video: Raspberry Pi Bercakap dengan ESP8266 Menggunakan MQTT: 8 Langkah
Video: Kawal Motor Stepper Pada ESP32 Melalui Google Assistant Menggunakan IFTTT dan Adafruit IO 2024, Julai
Anonim
Raspberry Pi Bercakap dengan ESP8266 Menggunakan MQTT
Raspberry Pi Bercakap dengan ESP8266 Menggunakan MQTT

Dalam projek ini, saya akan menerangkan apa itu protokol MQTT dan bagaimana ia digunakan untuk berkomunikasi antara peranti. Kemudian, sebagai demonstrasi praktikal, saya akan menunjukkan cara mengatur sistem klien dan brocker, di mana modul ESP8266 dan juga perbincangan RPi satu sama lain atau menghantar mesej apabila butang ditekan.

Bahan diperlukan

1. Raspberry Pi 3

2. NodeMCU

3. LED

4. Butang

5. Perintang (10k, 475 ohm)

Langkah 1: Apa itu MQTT dan Bagaimana Ia Berfungsi

MQTT

MQTT adalah protokol pemindahan data mesin-ke-mesin (M2M). MQTT dibuat dengan tujuan mengumpulkan data dari banyak peranti dan kemudian mengangkut data tersebut ke infrastruktur IT. Ini ringan, dan oleh itu sesuai untuk pemantauan jarak jauh, terutama dalam sambungan M2M yang memerlukan jejak kod kecil atau di mana lebar jalur rangkaian terhad.

Bagaimana MQTT berfungsi

MQTT adalah protokol penerbitan / langganan yang membolehkan peranti canggih untuk menerbitkan kepada broker. Pelanggan berhubung dengan broker ini, yang kemudian menjadi penghubung komunikasi antara kedua-dua peranti. Setiap peranti dapat melanggan, atau mendaftar, untuk topik tertentu. Apabila pelanggan lain menerbitkan mesej mengenai topik yang dilanggan, broker akan meneruskan pesanan tersebut kepada pelanggan yang telah melanggannya.

MQTT adalah dua arah, dan mengekalkan kesedaran sesi yang bernas. Sekiranya peranti tepi jaringan kehilangan sambungan, semua pelanggan yang dilanggan akan diberitahu dengan fitur "Kemahuan dan Perjanjian Terakhir" pelayan MQTT sehingga mana-mana pelanggan yang diberi kuasa dalam sistem dapat menerbitkan nilai baru kembali ke tepi- peranti rangkaian, mengekalkan sambungan dua arah.

Projek ini terbahagi kepada 3 bahagian

Pertama, kami membuat pelayan MQTT pada RPi dan memasang beberapa perpustakaan.

Kedua, kami akan memasang perpustakaan di Arduino IDE agar NodeMCU dapat berfungsi dengan MQTT, memuat naik kod dan memeriksa sama ada pelayan berfungsi atau tidak.

Akhirnya, kami membuat skrip dalam Rpi, memuat naik kod yang diperlukan di NodeMCU dan jalankan skrip python untuk mengawal led dari kedua-dua pelayan dan pelanggan. Di sini, pelayan adalah RPi dan pelanggan adalah NodeMCU.

Langkah 2: Raspberry Pi

Pai raspberi
Pai raspberi
Pai raspberi
Pai raspberi
Pai raspberi
Pai raspberi
Pai raspberi
Pai raspberi

1. Untuk memasang pelayan dan klien MQTT terbaru di RPi, untuk menggunakan repositori baru, anda harus terlebih dahulu mengimport kunci penandatanganan pakej repositori.

wget https://repo.mosquitto.org/debian/mosquitto-repo.gpg.keysudo apt-key tambah mosquitto-repo.gpg.key

2. Sediakan repositori untuk apt.

cd /etc/apt/sources.list.d/

3. Bergantung pada versi Debian yang anda gunakan.

sudo wget https://repo.mosquitto.org/debian/mosquitto-wheezy.listsudo wget

sudo wget

sudo apt-get kemas kini

4. Pasang pelayan Mosquitto menggunakan arahan.

sudo apt-get install mosquitto

Sekiranya anda mengalami kesilapan dalam memasang Mosquitto seperti ini.

#################################################################

Pakej berikut mempunyai kebergantungan yang belum dipenuhi: mosquitto: Depends: libssl1.0.0 (> = 1.0.1) tetapi tidak boleh dipasang Bergantung: libwebsockets3 (> = 1.2) tetapi tidak boleh dipasang E: Tidak dapat membetulkan masalah, anda telah mengalami kerosakan pakej.

#################################################################

Kemudian gunakan arahan ini untuk menyelesaikan masalah.

sudo apt - pemasangan yang rosak

5. Setelah memasang pelayan MQTT, pasang klien menggunakan arahan

sudo apt-get pasang mosquitto-klien

Anda boleh memeriksa perkhidmatan menggunakan arahan.

status systemctl mosquitto.service

Sebagai pelayan dan pelanggan MQTT kami dipasang. Sekarang, kita boleh memeriksanya menggunakan langganan dan terbitkan. Untuk melanggan dan menerbitkan anda boleh menyemak arahan atau melayari laman web seperti yang diberikan di bawah ini.

Sub Mosquitto

Pub Mosquitto

Untuk memasang paho-mqtt library gunakan arahan di bawah.

sudo pip pasang paho-mqtt

Paho

Langkah 3: Cara Menyiapkan Alamat Ip Statik

Cara Menyiapkan Alamat Ip Statik
Cara Menyiapkan Alamat Ip Statik

Pergi ke direktori cd / etc dan buka file dhcpcd.conf menggunakan editor apa pun. Pada akhir, tuliskan empat baris ini.

antara muka eth0 static ip_address = 192.168.1.100 // ip yang anda mahu gunakan

antara muka wlan0

statik ip_address = 192.168.1.68

penghala statik = 192.168.1.1 // gateway Lalai anda

domain_name_servers statik = 192.168.1.1

Selepas itu simpan dan reboot pi anda.

Langkah 4: NodeMCU

NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU

Pasang perpustakaan yang diperlukan di Arduino IDE untuk NodeMCU

1. Pergi ke Sketch ==> Sertakan perpustakaan ==> Urus perpustakaan.

2. Cari mqtt dan pasang perpustakaan oleh Adafruit atau anda boleh memasang perpustakaan mana pun.

3. Ia bergantung pada perpustakaan sleepydog jadi kita juga memerlukan perpustakaan ini.

Program diberikan di atas, hanya untuk memeriksa sama ada ia berfungsi atau tidak. Di sini saya belum membuat skrip dalam RPi. Kami hanya menggunakan perintah untuk melanggan dan menerbitkan. Kami akan membuat skrip untuk dikawal di kemudian hari.

mosquitto_pub -h raspberrypi -t "/ leds / pi" -m "ON"

mosquitto_pub -h raspberrypi -t "/ leds / pi" -m "MATI"

mosquitto_pub -h raspberrypi -t "/ leds / pi" -m "BERGAMBAR"

mosquitto_pub -h raspberrypi -t "/ leds / esp8266" -m "ON"

mosquitto_pub -h raspberrypi -t "/ leds / esp8266" -m "MATI"

mosquitto_pub -h raspberrypi -t "/ leds / esp8266" -m "BERGAMBAR"

-h ==> nama host-t ==> topik

-m ==> mesej

Setelah memeriksa program Mqtt_check muat naik program lengkap di NodeMCU

Langkah 5: Skrip Python

Skrip Python
Skrip Python
Skrip Python
Skrip Python

Seperti yang saya bincangkan di atas, kita memerlukan skrip python untuk mengawal led menggunakan butang. Oleh itu, kita akan membuat skrip. Skrip diberikan di atas.

Apabila anda menjalankan skrip, skrip anda akan terlihat seperti yang ditunjukkan dalam gambar, jika kod hasilnya tidak nol maka itu adalah kesalahan anda dapat memeriksa kesalahan di laman web paho.

Langkah 6: Sambungan dan Diagram Litar

Sambungan dan Rajah Litar
Sambungan dan Rajah Litar
Sambungan dan Rajah Litar
Sambungan dan Rajah Litar

Antara muka butang, LED dengan NodeMCU

NodeMCU ===> ButtonGnd ===> Gnd

3.3V ===> PIN1

GPIO4 (D2) ===> PIN2

NodeMCU ===> LED

Gnd ===> Katod (-ve)

GPIO5 (D1) ===> Anod (+ ve)

Antara muka butang, LED dengan RPi

RPi ===> ButtonGnd ===> PIN1

GPIO 23 ===> PIN2

RPi ===> LED

Gnd ==> Katod (-ve)

GPIO 24 ===> Anod (+ ve)

Langkah 7: Hasilnya

Image
Image
Keputusan
Keputusan

Pastikan skrip anda berjalan jika tidak, ia tidak dapat mengawal butang led yang dipimpin.

Disyorkan: