Isi kandungan:
- Langkah 1: Apa itu MQTT dan Bagaimana Ia Berfungsi
- Langkah 2: Raspberry Pi
- Langkah 3: Cara Menyiapkan Alamat Ip Statik
- Langkah 4: NodeMCU
- Langkah 5: Skrip Python
- Langkah 6: Sambungan dan Diagram Litar
- Langkah 7: Hasilnya
Video: Raspberry Pi Bercakap dengan ESP8266 Menggunakan MQTT: 8 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:11
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
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
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
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
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
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
Pastikan skrip anda berjalan jika tidak, ia tidak dapat mengawal butang led yang dipimpin.
Disyorkan:
Bercakap Arduino - Memainkan MP3 Dengan Arduino Tanpa Modul - Memainkan Fail Mp3 Dari Arduino Menggunakan PCM: 6 Langkah
Bercakap Arduino | Memainkan MP3 Dengan Arduino Tanpa Modul | Memainkan Fail Mp3 Dari Arduino Menggunakan PCM: Dalam instruksional ini kita akan belajar cara memainkan fail mp3 dengan arduino tanpa menggunakan modul audio, di sini kita akan menggunakan perpustakaan PCM untuk Arduino yang memainkan 16 bit frekuensi 8kHZ 16M jadi mari kita lakukan ini
Jam Bercakap Dengan Arduino: 3 Langkah (dengan Gambar)
Talking Clock With Arduino: Hello all, Untuk sekian lama saya cuba membina Talking Talking Clock (lihat videonya), tetapi tanpa hasil yang baik kerana model modul suara yang saya gunakan untuk itu. Selepas banyak carian berkaitan dengan perkakasan yang betul dan juga belajar mengenai cara menggunakan libr yang sesuai
Bercakap Dengan Alexa dan Pembantu Google Bersama dalam Raspberry Pi: 4 Langkah
Bercakap Dengan Alexa dan Google Assistant Bersama dalam Raspberry Pi: Jalankan Amazon Alexa dan Google Assistant pada masa yang sama dalam Raspberry Pi. Panggil salah satu daripada nama mereka, mereka menyalakan LED mereka sendiri dan bunyi dering untuk tindak balas. Kemudian anda meminta beberapa permintaan dan mereka masing-masing menjawabnya. Anda boleh mengetahui ciri mereka
Peranti Pengukur Indeks UV Bercakap, Menggunakan Sensor VEML6075 dan Pembicara Little Buddy: 5 Langkah
Peranti Pengukur Indeks UV Bercakap, Menggunakan Sensor VEML6075 dan Pembicara Little Buddy: Musim panas akan datang! Matahari bersinar! Yang hebat. Tetapi ketika sinaran ultraviolet (UV) semakin kuat, orang seperti saya mendapat bintik-bintik, pulau-pulau coklat kecil berenang di lautan kulit merah, terbakar sinar matahari, gatal. Mampu mempunyai maklumat masa nyata
Bercakap dengan Pick dan Artificial Intelligence Chat Menggunakan Cleverbot: 14 Langkah (dengan Gambar)
Bercakap dengan Pick dan Artificial Intelligence Chat Menggunakan Cleverbot: Di sini saya cuba bukan sahaja arahan suara tetapi juga Artificial Intelligence Chat dengan Komputer menggunakan Cleverbot. Sebenarnya idea itu muncul ketika mendapati anak-anak mencampurkan warna dalam kotak pewarna ketika mengambil warna dari satu warna ke warna terdekat. Tetapi akhirnya melaksanakan