MQTT (Pesan Antrian Telemetri Transport) adalah protokol pesan ringan yang biasa digunakan dalam aplikasi IoT (Internet of Things) untuk komunikasi yang andal dan efisien antar perangkat. Hosting server MQTT di Raspberry Pi memungkinkan Anda membuat pusat pesan lokal untuk proyek IoT Anda. Panduan ini menuntun Anda melalui pengaturan dan menjalankan server MQTT di Raspberry Pi.
Apa yang Anda Butuhkan
- Raspberry Pi (Model apa pun dengan dukungan GPIO, mis., Pi 3, pi 4)
- Kartu microSD (setidaknya 8GB, Kelas 10 atau lebih baik)
- Catu daya (5V, 2.5a minimum untuk Pi 3; 5V, 3a untuk Pi 4)
- Raspberry Pi Os (Versi Lite atau Desktop)
- Koneksi Internet
- Klien MQTT (mis., ESP8266, ESP32, atau alat perangkat lunak MQTT)
Langkah 1: Perbarui Raspberry Pi
- Pastikan Raspberry Pi Anda terbaru:
sudo apt update && sudo apt upgrade -y
Langkah 2: Instal Mosquitto MQTT Broker
Mosquitto adalah broker MQTT yang ringan dan banyak digunakan.
-
Instal Mosquitto dan alat kliennya:
sudo apt install -y mosquitto mosquitto-clients
-
Aktifkan Mosquitto untuk memulai boot:
sudo systemctl enable mosquitto
-
Mulailah Layanan Mosquitto:
sudo systemctl start mosquitto
Langkah 3: Uji broker MQTT
-
Buka dua jendela terminal atau sesi SSH ke Raspberry Pi Anda.
-
Di terminal pertama, berlangganan topik pengujian:
mosquitto_sub -h localhost -t test/topic
-
Di terminal kedua, publikasikan pesan tes:
mosquitto_pub -h localhost -t test/topic -m "Hello, MQTT!"
-
Anda harus melihat pesan "Halo, MQTT!" di terminal pertama.
Langkah 4: Mengkonfigurasi Mosquitto untuk Koneksi Eksternal
-
Buka file konfigurasi Mosquitto:
sudo nano /etc/mosquitto/mosquitto.conf
-
Tambahkan baris berikut untuk memungkinkan koneksi eksternal:
listener 1883 allow_anonymous true
Catatan: Untuk lingkungan produksi, atur otentikasi pengguna alih -alih memungkinkan akses anonim.
-
Mulai ulang layanan Mosquitto untuk menerapkan perubahan:
sudo systemctl restart mosquitto
-
Uji koneksi dari perangkat lain pada jaringan yang sama menggunakan alat klien MQTT (mis., MQTT.FX atau MQTT Explorer).
Langkah 5: Amankan broker MQTT (opsional)
-
Aktifkan otentikasi kata sandi:
sudo mosquitto_passwd -c /etc/mosquitto/passwd <username>
- Masukkan dan konfirmasi kata sandi untuk pengguna.
-
Perbarui file konfigurasi mosquitto untuk menggunakan file kata sandi:
allow_anonymous false password_file /etc/mosquitto/passwd
-
Restart Layanan Mosquitto:
sudo systemctl restart mosquitto
-
Uji koneksi menggunakan nama pengguna dan kata sandi.
Langkah 6: Hubungkan perangkat IoT ke broker MQTT
-
Untuk ESP8266/ESP32: Gunakan Arduino IDE untuk memprogram perangkat IoT Anda untuk menerbitkan/berlangganan topik pada broker Raspberry Pi MQTT Anda.
#include <ESP8266WiFi.h> #include <PubSubClient.h> const char* ssid = "YourSSID"; const char* password = "YourPassword"; const char* mqtt_server = "<raspberry-pi-ip>"; WiFiClient espClient; PubSubClient client(espClient); void setup() { WiFi.begin(ssid, password); client.setServer(mqtt_server, 1883); } void loop() { if (!client.connected()) { client.connect("ESPClient"); } client.loop(); client.publish("test/topic", "Hello from ESP8266!"); delay(1000); }
-
Untuk klien perangkat lunak: Gunakan mqtt.fx, mqtt explorer, atau python dengan
paho-mqtt
perpustakaan.import paho.mqtt.client as mqtt def on_connect(client, userdata, flags, rc): print("Connected with result code "+str(rc)) client.subscribe("test/topic") def on_message(client, userdata, msg): print(msg.topic+" "+str(msg.payload)) client = mqtt.Client() client.on_connect = on_connect client.on_message = on_message client.connect("<raspberry-pi-ip>", 1883, 60) client.loop_forever()
Pemecahan masalah
-
Tidak dapat terhubung ke broker MQTT:
- Pastikan Mosquitto sedang berjalan:
sudo systemctl status mosquitto
- Periksa pengaturan firewall di raspberry pi Anda.
- Pastikan Mosquitto sedang berjalan:
-
Kesalahan otentikasi:
- Verifikasi nama pengguna dan kata sandi dalam konfigurasi mosquitto dan pengaturan klien.
-
Koneksi ditolak:
- Pastikan perangkat berada di jaringan yang sama dengan Raspberry Pi.
- Periksa bahwa port 1883 terbuka.
Aplikasi MQTT
- Komunikasi perangkat IoT
- Sistem Otomatisasi Rumah
- Streaming data real-time
- Pemantauan dan kontrol jarak jauh
Kesimpulan
Hosting server MQTT di Raspberry Pi adalah cara terbaik untuk memungkinkan komunikasi yang ringan dan andal untuk proyek IoT Anda. Dengan mengikuti panduan ini, Anda dapat mengatur dan mengamankan broker Mosquitto MQTT, menghubungkan perangkat IoT, dan mulai membangun aplikasi yang kuat. Eksperimen dengan konfigurasi yang berbeda untuk mengeksplorasi potensi penuh MQTT!