Daftar Isi:

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

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

Video: Raspberry Pi Berbicara dengan ESP8266 Menggunakan MQTT: 8 Langkah
Video: NodeMCU ESP8266 Send Data to Raspberry Pi Using MQTT Broker 2024, November
Anonim
Raspberry Pi Berbicara dengan ESP8266 Menggunakan MQTT
Raspberry Pi Berbicara dengan ESP8266 Menggunakan MQTT

Dalam proyek ini, saya akan menjelaskan apa itu protokol MQTT dan bagaimana protokol itu digunakan untuk berkomunikasi antar perangkat. Kemudian, sebagai demonstrasi praktis, saya akan mendemonstrasikan cara mengatur sistem klien dan pialang, di mana modul ESP8266 serta RPi berbicara satu sama lain atau mengirim pesan saat tombol ditekan.

Bahan yang dibutuhkan

1. Raspberry Pi 3

2. NodeMCU

3. LED

4. Tombol

5. Resistor (10k, 475 ohm)

Langkah 1: Apa itu MQTT dan Bagaimana Cara Kerjanya

MQTT

MQTT adalah protokol transfer data mesin-ke-mesin (M2M). MQTT dibuat dengan tujuan mengumpulkan data dari banyak perangkat dan kemudian mengirimkan data tersebut ke infrastruktur TI. Ringan, dan karenanya ideal untuk pemantauan jarak jauh, terutama dalam koneksi M2M yang memerlukan jejak kode kecil atau di mana bandwidth jaringan terbatas.

Cara kerja MQTT

MQTT adalah protokol publish/subscribe yang memungkinkan perangkat edge-of-network untuk mempublikasikan ke broker. Klien terhubung ke broker ini, yang kemudian memediasi komunikasi antara kedua perangkat. Setiap perangkat dapat berlangganan, atau mendaftar, ke topik tertentu. Ketika klien lain memublikasikan pesan tentang topik langganan, broker meneruskan pesan tersebut ke klien mana pun yang telah berlangganan.

MQTT adalah dua arah, dan mempertahankan kesadaran sesi stateful. Jika perangkat edge-of-network kehilangan konektivitas, semua klien yang berlangganan akan diberi tahu dengan fitur "Kehendak dan Perjanjian Terakhir" dari server MQTT sehingga setiap klien resmi dalam sistem dapat memublikasikan nilai baru kembali ke edge-of- perangkat jaringan, mempertahankan konektivitas dua arah.

Proyek ini dibagi menjadi 3 bagian

Pertama, kami membuat server MQTT di RPi dan menginstal beberapa perpustakaan.

Kedua, kita akan menginstal library di Arduino IDE agar NodeMCU dapat bekerja dengan MQTT, mengunggah kode dan memeriksa apakah server berfungsi atau tidak.

Terakhir, kami membuat skrip di Rpi, mengunggah kode yang diperlukan di NodeMCU dan menjalankan skrip python untuk mengontrol led dari sisi server dan klien. Di sini, server adalah RPi dan klien adalah NodeMCU.

Langkah 2: Raspberry Pi

Raspberry Pi
Raspberry Pi
Raspberry Pi
Raspberry Pi
Raspberry Pi
Raspberry Pi
Raspberry Pi
Raspberry Pi

1. Untuk menginstal server dan klien MQTT terbaru di RPi, untuk menggunakan repositori baru Anda harus terlebih dahulu mengimpor kunci penandatanganan paket repositori.

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

2. Jadikan repositori tersedia untuk apt.

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

3. Tergantung pada versi Debian yang Anda gunakan.

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

sudo wget

sudo apt-get update

4. Instal server Mosquitto menggunakan perintah.

sudo apt-get install mosquitto

Jika Anda mendapatkan kesalahan dalam menginstal Mosquitto seperti ini.

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

Paket-paket berikut memiliki dependensi yang belum terpenuhi:mosquitto: Tergantung: libssl1.0.0 (>= 1.0.1) tetapi tidak dapat diinstal Tergantung: libwebsockets3 (>= 1.2) tetapi tidak dapat diinstal E: Tidak dapat memperbaiki masalah, Anda telah menahan kerusakan paket.

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

Kemudian gunakan perintah ini untuk memperbaiki masalah.

sudo apt --fix-broken install

5. Setelah menginstal server MQTT, instal klien menggunakan perintah

sudo apt-get install mosquitto-clients

Anda dapat memeriksa layanan menggunakan perintah.

systemctl status mosquitto.service

Saat server dan klien MQTT kami diinstal. Sekarang, kita dapat memeriksanya menggunakan berlangganan dan publikasikan. Untuk berlangganan dan mempublikasikan Anda dapat memeriksa perintah atau mengunjungi situs web seperti yang diberikan di bawah ini.

Sub Nyamuk

Pub Nyamuk

Untuk menginstal pustaka paho-mqtt gunakan perintah di bawah ini.

sudo pip install paho-mqtt

Paho

Langkah 3: Cara Mengatur Alamat Ip Statis

Cara Mengatur Alamat Ip Statis
Cara Mengatur Alamat Ip Statis

Buka direktori cd /etc dan buka file dhcpcd.conf menggunakan editor apa saja. Pada akhirnya, tulis empat baris ini.

antarmuka eth0 static ip_address=192.168.1.100 // ip yang ingin Anda gunakan

antarmuka wlan0

ip_address statis = 192.168.1.68

router statis=192.168.1.1 // Gerbang default Anda

static domain_name_servers=192.168.1.1

Setelah itu simpan dan reboot pi Anda.

Langkah 4: NodeMCU

NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU

Instal perpustakaan yang diperlukan di Arduino IDE untuk NodeMCU

1. Buka Sketsa ==> Sertakan perpustakaan ==> Kelola perpustakaan.

2. Cari mqtt dan instal perpustakaan oleh Adafruit atau Anda dapat menginstal perpustakaan apa pun.

3. Tergantung pada library sleepydog jadi kita juga membutuhkan library ini.

Program diberikan di atas, hanya untuk memeriksa apakah itu berfungsi atau tidak. Di sini saya belum membuat skrip apa pun di RPi. Kami hanya menggunakan perintah untuk berlangganan dan menerbitkan. Kami akan membuat skrip untuk mengontrol nanti.

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

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

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

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

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

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

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

-m == > pesan

Setelah memeriksa program Mqtt_check, unggah program lengkap di NodeMCU

Langkah 5: Skrip Python

Skrip Python
Skrip Python
Skrip Python
Skrip Python

Seperti yang saya bahas di atas kita membutuhkan skrip python untuk mengendalikan led menggunakan tombol. Jadi, kita akan membuat skrip. Script diberikan di atas.

Ketika Anda menjalankan skrip skrip Anda akan terlihat seperti yang ditunjukkan pada gambar, jika kode hasil tidak nol maka itu adalah kesalahan, Anda dapat memeriksa kesalahan di situs web paho.

Langkah 6: Koneksi dan Diagram Sirkuit

Koneksi dan Diagram Sirkuit
Koneksi dan Diagram Sirkuit
Koneksi dan Diagram Sirkuit
Koneksi dan Diagram Sirkuit

Antarmuka tombol, LED dengan NodeMCU

NodeMCU === > ButtonGnd === > Gnd

3.3V === > PIN1

GPIO4 (D2) === > PIN2

NodeMCU === > LED

Gnd === > Katoda (-ve)

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

Antarmuka tombol, LED dengan RPi

RPi === > ButtonGnd === > PIN1

GPIO 23 === > PIN2

RPi === > LED

Gnd == > Katoda (-ve)

GPIO 24 === > Anoda(+ve)

Langkah 7: Hasil

Image
Image
Hasil
Hasil

Pastikan skrip Anda berjalan jika tidak, skrip tidak akan dapat mengontrol led menggunakan tombol.

Direkomendasikan: