Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-13 06:58
Ta lekcja pokaże podstawowe użycie protokołu MQTT na płycie NodeMCU. Używamy tutaj MQTTBox jako klienta MQTT i użyjemy NodeMCU do wykonania następujących operacji:
Publikuj „hello world” w temacie „outTopic” co dwie sekundy. Zasubskrybuj temat „inTopic”, wydrukuj wszystkie odebrane wiadomości. Zakłada się, że odebrane ładunki są ciągami, a nie plikami binarnymi. Jeśli subskrybowana wiadomość ma wartość „1”, podświetl Onboards LED. Wyłącz zintegrowaną diodę LED, jeśli wiadomość do zasubskrybowania ma wartość „0”.
Przygotowanie:Osoyoo NodeMCU x1
Kabel USB x1
Komputer x1
Arduino IDE (wersja 1.6.4+)
Podłącz NodeMCU do komputera za pomocą kabla USB.
Krok 1: Instalacja biblioteki
Zainstaluj PubSubClientlibrary
Musimy zainstalować bibliotekę punktów końcowych MQTT (PubSubClient) do komunikacji z brokerem MQTT, pobierz bibliotekę z następującego linku:
Rozpakuj powyższy plik, przenieś rozpakowany folder do folderu biblioteki Arduino IDE.
Otwórz Arduino IED, możesz znaleźć „pubsubclient” w kolumnie „Przykłady”.
Zainstaluj klienta MQTT:
użyjemy MQTTBox jako klienta MQTT. proszę pobrać z:
Krok 2: Kod
otwórz Arduino IDE–>Plik–>Przykład–>pubsubclient–>mqtt esp8266, otrzymasz przykładowy kod.
Edytuj kod, aby dopasować go do własnych ustawień Wi-Fi i MQTT, wykonując następujące operacje: 1) Konfiguracja Hotspot: Znajdź poniżej linię kodu, umieść tam swój własny identyfikator SSID i hasło.
const char* ssid = “your_hotspot_ssid”;const char* password = “your_hotspot_password”;
2) Ustawienie adresu serwera MQTT, tutaj używamy bezpłatnego brokera MQTT "broker.mqtt-dashboard.com". Możesz użyć własnego adresu URL brokera MQTT lub adresu IP, aby ustawić powyżej wartość mqtt_server. Możesz także użyć jakiegoś słynnego darmowego serwera MQTT do przetestowania projektu, takiego jak „broker.mqtt-dashboard.com”, „iot.eclipse.org” itp.
const char* mqtt_server = “broker.mqtt-dashboard.com”;
3) Ustawienia klienta MQTTJeśli Twój broker MQTT wymaga uwierzytelnienia identyfikatora klienta, nazwy użytkownika i hasła, musisz:
reszta
if (client.connect(clientId.c_str()))
Do
if (client.connect(clientId, userName, passWord)) //wstaw tutaj swój ClientId/userName/passWord
Jeśli nie, po prostu zachowaj je jako domyślne. Następnie wybierz odpowiedni typ płyty i typ portu, jak poniżej, a następnie prześlij szkic do NodeMCU.
- Płytka:”NodeMCU 0.9 (moduł ESP-12)”
- Częstotliwość procesora:”80MHz”Rozmiar lampy błyskowej:”4M (3M SPIFFS)”
- Szybkość przesyłania: „115200”
- Port: wybierz własny port szeregowy dla swojego NodeMCU
Krok 3: Skonfiguruj klienta MQTT (MQTTBOX)
W tym kroku pokażemy, jak utworzyć klienta MQTT na MQTTBox.
Otwórz swój MQTTBox i kliknij niebieski przycisk, aby dodać nowego klienta MQTT.
Skonfiguruj USTAWIENIA KLIENTA MQTT jak poniżej:
- Nazwa klienta MQTT - wybierz dowolną nazwę
- Protokół - wybierz „mqtt/tcp”
- Host - Wpisz swój „mqtt_server” w tej kolumnie, upewnij się, że jest taki sam jak twój szkic. (Używamy tutaj „broker.mqtt-dashboard.com”)
- Zachowaj inne ustawienia jako domyślne
- Kliknij, aby zapisać zmiany.
Następnie automatycznie wejdziesz na nową stronę. Jeśli wszystkie powyższe konfiguracje są poprawne, „Nie połączono” zmieni się na „Połączono”, a nazwa klienta MQTT i nazwa hosta zostaną wyświetlone na górze tej strony.
Ustawienie tematu:Upewnij się, że temat publikowania klienta MQTT jest taki sam, jak temat subskrybowanego szkicu Arduino(inTopic here). Upewnij się, że temat subskrypcji klienta MQTT jest taki sam, jak temat publikacji szkicu Arduino (outTopic here).
Krok 4: Wynik działania programu
Po zakończeniu przesyłania, jeśli nazwa hotspotu Wi-Fi i ustawienie hasła są w porządku, a broker MQTT jest podłączony, otwórz Monitor szeregowy, na monitorze szeregowym zobaczysz komunikat „hello world”.
Następnie otwórz klienta MQTT i opublikuj ładunek „1” w temacie, to NodeMCU odbierze te wiadomości, subskrybując „inTopic”, a dioda LED zaświeci się.
Opublikuj ładunek „0” w tym temacie, dioda NodeMCU zostanie wyłączona.