Publikowanie tematów czujników
Wysyłać odczyty do nazwanych tematów.
Publikowanie tematów czujników to bezpłatna lekcja Arduino & IoT Academy na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Arduino & IoT Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Arduino & IoT Academy zawiera 4 lekcji w sumie.
Wysyłanie danych to publikowanie
Po nawiązaniu połączenia udostępnienie odczytu wymaga jednego wywołania. Publikujesz wartość w temacie, a broker dostarcza ją subskrybentom.
Wybierz czytelny temat
Wybierz opisową ścieżkę tematu, na przykład home/garden/soil. Dobre nazwy ułatwiają odczytywanie i przekazywanie danych w rozrastającym się systemie.
home/garden/soil/moistureWywołanie publish
Podstawowa postać przyjmuje temat i wiadomość. Oba elementy są zwykłymi ciągami znaków, więc MQTT nie narzuca zawartości ładunku.
client.publish("home/garden/temp", "23.5");Ładunki to tylko tekst
Ładunek to zwykły ciąg bajtów. To Ty decydujesz o jego znaczeniu — może zawierać liczbę, słowo albo dane strukturalne.
Liczby trzeba konwertować
Odczyty z czujników często mają typ float. Przed publikacją zamień je na ciąg znaków za pomocą dtostrf lub String().
char buf[8];
dtostrf(temp, 4, 1, buf);
client.publish("home/temp", buf);Wysyłaj dane strukturalne jako JSON
Aby połączyć kilka wartości, sformatuj ładunek jako JSON. Jedna wiadomość może zawierać jednocześnie temperaturę i wilgotność.
client.publish("home/dht", "{\"t\":23.5,\"h\":55}");Nie zalewaj brokera
Publikowanie tysięcy razy na sekundę marnuje energię i przepustowość. Dodaj rozsądny interwał, aby wiadomości pozostały użyteczne.
Odmierzaj czas za pomocą millis
Użyj millis() zamiast delay, aby publikować co kilka sekund. Podczas oczekiwania urządzenie pozostanie responsywne.
if (millis() - last > 5000) {
last = millis();
publishReading();
}Zachowaj najnowszy odczyt
Dodaj flagę retain, aby broker przechowywał najnowszą wartość. Nowe panele od razu pokażą dane po połączeniu.
client.publish("home/temp", buf, true);Jeden temat na każdą wielkość
Przypisz każdemu pomiarowi własny temat, na przykład .../temp i .../humidity. Czytelny podział upraszcza pracę subskrybentów.
Potwierdź poprawne działanie
Wywołanie publish zwraca true po pomyślnym wykonaniu. Zapisz wynik w logu albo obserwuj dane za pomocą komputerowego klienta MQTT, aby upewnić się, że opuściły płytkę.
Szybkie sprawdzenie
Chcesz, aby nowy panel od razu pokazał ostatnią temperaturę, zanim czujnik opublikuje kolejny odczyt. Co w tym pomoże?
Podsumowanie
Dowiedziałeś się, jak publikować dane z czujników: konwertować wartości na ciągi znaków, wybierać czytelne tematy, odmierzać czas za pomocą millis i zachowywać najnowszy odczyt. 🎉
Ucz się C++ dzięki korepetycjom AI — za darmo
Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.
- Kursy
- 30
- Lekcje
- 120
Często zadawane pytania
Czy lekcja „Publikowanie tematów czujników” jest bezpłatna?
Tak — pełny tekst „Publikowanie tematów czujników” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Arduino & IoT Academy, przejdź na CoddyKit PRO. Kurs Arduino & IoT Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Publikowanie tematów czujników”?
Wysyłać odczyty do nazwanych tematów. Ćwiczysz Arduino & IoT Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Arduino & IoT Academy?
Nie wymagamy żadnego doświadczenia. Arduino & IoT Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.
Ile czasu zajmuje lekcja „Publikowanie tematów czujników”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Arduino & IoT Academy?
Tak. Każda lekcja Arduino & IoT Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Dlaczego MQTT pasuje do IoT
- Łączenie z brokerem
- Publikowanie tematów czujników
- Subskrybowanie poleceń i reagowanie na nie