Ang MQTT (Message Queuing Telemetry Transport) ay isang magaan na protocol ng pagmemensahe na karaniwang ginagamit sa mga aplikasyon ng IoT (Internet of Things) para sa maaasahan at mahusay na komunikasyon sa pagitan ng mga aparato. Ang pagho -host ng isang MQTT server sa isang Raspberry Pi ay nagbibigay -daan sa iyo upang lumikha ng isang lokal na hub messaging para sa iyong mga proyekto sa IoT. Ang gabay na ito ay naglalakad sa iyo sa pamamagitan ng pag -set up at pagpapatakbo ng isang MQTT server sa isang Raspberry Pi.
Ano ang kakailanganin mo
- Raspberry Pi (Anumang modelo na may suporta sa GPIO, hal., PI 3, PI 4)
- MicroSD card (hindi bababa sa 8GB, klase 10 o mas mahusay)
- Power Supply (5V, 2.5A na minimum para sa PI 3; 5V, 3A para sa PI 4)
- Raspberry Pi Os (Bersyon ng lite o desktop)
- Koneksyon sa Internet
- Mga kliyente ng MQTT (hal., ESP8266, ESP32, o MQTT Software Tools)
Hakbang 1: I -update ang Raspberry Pi
- Tiyaking napapanahon ang iyong Raspberry Pi:
sudo apt update && sudo apt upgrade -y
Hakbang 2: I -install ang Mosquitto MQTT Broker
Ang Mosquitto ay isang magaan at malawak na ginagamit na MQTT broker.
-
I -install ang Mosquitto at ang mga tool sa kliyente nito:
sudo apt install -y mosquitto mosquitto-clients
-
Paganahin ang Mosquitto na magsimula sa boot:
sudo systemctl enable mosquitto
-
Simulan ang serbisyo ng Mosquitto:
sudo systemctl start mosquitto
Hakbang 3: Subukan ang MQTT Broker
-
Magbukas ng dalawang windows windows o SSH session sa iyong Raspberry Pi.
-
Sa unang terminal, mag -subscribe sa isang paksa ng pagsubok:
mosquitto_sub -h localhost -t test/topic
-
Sa pangalawang terminal, mag -publish ng isang mensahe ng pagsubok:
mosquitto_pub -h localhost -t test/topic -m "Hello, MQTT!"
-
Dapat mong makita ang mensahe na "Kumusta, MQTT!" Sa unang terminal.
Hakbang 4: I -configure ang Mosquitto para sa mga panlabas na koneksyon
-
Buksan ang file ng pagsasaayos ng Mosquitto:
sudo nano /etc/mosquitto/mosquitto.conf
-
Idagdag ang mga sumusunod na linya upang payagan ang mga panlabas na koneksyon:
listener 1883 allow_anonymous true
Tandaan: Para sa mga kapaligiran ng produksiyon, i -set up ang pagpapatunay ng gumagamit sa halip na payagan ang hindi nagpapakilalang pag -access.
-
I -restart ang serbisyo ng Mosquitto upang mag -apply ng mga pagbabago:
sudo systemctl restart mosquitto
-
Subukan ang koneksyon mula sa isa pang aparato sa parehong network gamit ang isang tool ng kliyente ng MQTT (hal., MQTT.FX o MQTT Explorer).
Hakbang 5: I -secure ang MQTT Broker (Opsyonal)
-
Paganahin ang pagpapatunay ng password:
sudo mosquitto_passwd -c /etc/mosquitto/passwd <username>
- Ipasok at kumpirmahin ang isang password para sa gumagamit.
-
I -update ang file ng pagsasaayos ng Mosquitto upang magamit ang file ng password:
allow_anonymous false password_file /etc/mosquitto/passwd
-
I -restart ang serbisyo ng Mosquitto:
sudo systemctl restart mosquitto
-
Subukan ang koneksyon gamit ang username at password.
Hakbang 6: Ikonekta ang mga aparato ng IoT sa MQTT broker
-
Para sa ESP8266/ESP32: Gamitin ang Arduino IDE upang i -program ang iyong mga aparato ng IoT upang mai -publish/mag -subscribe sa mga paksa sa iyong Raspberry Pi MQTT Broker.
#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); }
-
Para sa mga kliyente ng software: Gumamit ng MQTT.FX, MQTT Explorer, o Python kasama ang
paho-mqtt
Library.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()
Pag -aayos
-
Hindi makakonekta sa MQTT Broker:
- Tiyaking tumatakbo ang Mosquitto:
sudo systemctl status mosquitto
- Suriin ang mga setting ng firewall sa iyong Raspberry Pi.
- Tiyaking tumatakbo ang Mosquitto:
-
Mga error sa pagpapatunay:
- Patunayan ang username at password sa pagsasaayos ng Mosquitto at pag -setup ng kliyente.
-
Tumanggi ang koneksyon:
- Tiyakin na ang aparato ay nasa parehong network tulad ng Raspberry Pi.
- Suriin na bukas ang port 1883.
Mga aplikasyon ng MQTT
- Komunikasyon ng aparato ng IoT
- Home Automation Systems
- Real-time na streaming ng data
- Remote monitoring at control
Konklusyon
Ang pagho -host ng isang MQTT server sa isang Raspberry Pi ay isang mahusay na paraan upang paganahin ang magaan at maaasahang komunikasyon para sa iyong mga proyekto sa IoT. Sa pamamagitan ng pagsunod sa gabay na ito, maaari kang mag -set up at ma -secure ang isang Mosquitto MQTT broker, ikonekta ang mga aparato ng IoT, at simulan ang pagbuo ng mga makapangyarihang aplikasyon. Eksperimento na may iba't ibang mga pagsasaayos upang galugarin ang buong potensyal ng MQTT!