Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-13 06:58
MQTT to standardowy protokół przesyłania wiadomości OASIS dla Internetu rzeczy (IoT). Został zaprojektowany jako niezwykle lekki transport komunikatów publikowania/subskrybowania, który jest idealny do łączenia zdalnych urządzeń o niewielkiej ilości kodu i minimalnej przepustowości sieci. MQTT jest dziś używany w wielu gałęziach przemysłu, takich jak motoryzacja, produkcja, telekomunikacja, ropa i gaz itp.
Dlaczego MQTT: Klienci MQTT są bardzo małe, wymagają minimalnych zasobów, więc mogą być używane na małych mikrokontrolerach. Nagłówki wiadomości MQTT są małe, aby zoptymalizować przepustowość sieci.
Komunikacja dwukierunkowa: MQTT umożliwia przesyłanie wiadomości między urządzeniem a chmurą i chmurą do urządzenia. Ułatwia to rozgłaszanie wiadomości do grup rzeczy.
Skaluj do milionów rzeczy: MQTT można skalować, aby łączyć się z milionami urządzeń IoT.
Niezawodność dostarczania wiadomości: Jest to ważne w wielu przypadkach użycia Internetu Rzeczy. Dlatego MQTT ma 3 zdefiniowane poziomy jakości usług:
- 0 - najwyżej raz,
- 1- przynajmniej raz,
- 2 - dokładnie raz
Obsługa zawodnych sieci: Wiele urządzeń IoT łączy się przez zawodne sieci komórkowe. Obsługa przez MQTT trwałych sesji skraca czas ponownego połączenia klienta z brokerem.
Włączone zabezpieczenia: MQTT ułatwia szyfrowanie wiadomości przy użyciu TLS i uwierzytelnianie klientów przy użyciu nowoczesnych protokołów uwierzytelniania, takich jak OAuth.
Kieszonkowe dzieci
- NodeMCU ESP8266 (lub) dowolna inna ogólna płyta ESP8266
- Rejestracja Ubidot
- Biblioteka wspierająca z GitHub.
- Arduino IDE do wgrania kodu.
Krok 1: Wstępna konfiguracja Arduino IDE
- Pobierz bibliotekę UbidotsMQTTESP8266 z repozytorium GIT
- Otwórz Arduino IDE, przejdź do „preferencji” z menu „plik”.
- W polu tekstowym „Additional Boards Manager URLs” wklej następujący wpis: https://arduino.esp8266.com/stable/package_esp8266… i naciśnij OK, aby kontynuować.
- Przejdź do „Dodaj bibliotekę ZIP” z menu „Szkic > Dołącz bibliotekę” i wskaż ścieżkę do pobranego pliku zip.
- Poczekaj, aż IDE otrzyma komunikat: Biblioteka dodana do twoich bibliotek. Sprawdź menu „Dołącz bibliotekę”.
- Przejdź do „Dołącz bibliotekę” z „Szkic” i sprawdź „Ubidots MQTT dla ESP8266”
Krok 2: Poświadczenia API Ubidots
Zaloguj się do Ubidots i zanotuj poświadczenia API. Pamiętaj, że będziemy potrzebować tylko wartości „Domyślnego tokena”.
Krok 3: Kodeks.
#include "UbidotsESPMQTT.h"
#define TOKEN "************************************************** ***" // Twoje Ubidots TOKEN
#define NAZWA WIFI "**********" //Twój identyfikator SSID
#define WIFIPASS „******************” // Twoja karta Wi-Fi
Klient Ubidots (TOKEN);
void callback(char* temat, bajt* ładunku, unsigned int length)
{
Serial.print("Wiadomość dotarła [");
Serial.print(temat);
Serial.print("]");
for (int i=0; i<długość; i++)
{
Serial.print((char)payload);
}
pusta konfiguracja()
{
klient.setDebug(prawda);
Serial.początek(115200);
client.wifiConnection(WIFINAME, WIFIPASS);
klient.początek(odwołanie zwrotne);
}
pusta pętla()
{
if(!klient.podłączony())
{
klient.reconnect();
}
wartość zmiennoprzecinkowa1 = odczyt analogowy(A0);
client.add("temperatura", wartość1);
client.ubidotsPublish("moje-nowe-urządzenie");
klient.pętla();
}
Uwaga: zapoznaj się ze zrzutami ekranu, aby uzyskać lepsze wcięcia linii.
Krok 4: Połącz, skompiluj i prześlij kod.
Nie czas na podłączenie NodeMCU ESP8266 do komputera/laptopa, zidentyfikowanie jego portu, skompilowanie i przesłanie kodu.
Proszę wziąć niezbędną pomoc z załączonych zrzutów ekranu, aby lepiej zrozumieć proces, jeśli jesteś nowy w Arduino IDE.
Krok 5: Końcowa kontrola.
Jeśli wszystko pójdzie dobrze, powinieneś być w stanie zaobserwować podobnie jak na zrzucie ekranu.
Ten wiersz w kodzie "client.ubidotsPublish("moje-nowe-urządzenie");" zostanie opublikowany.
Uwaga: Jeśli nic nie jest wyświetlane na pulpicie nawigacyjnym Ubodots, zaleca się odłączenie i ponowne połączenie NodeMCU.
Bądźcie na bieżąco. Próbuję opublikować jeszcze kilka z Ubidots & NodeMCU ESP8266.