Arduino & IoT Academy · Lekcja

Publikowanie tematów czujników

Wysyłać odczyty do nazwanych tematów.

Lekcja 3 z 413 kroki

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/moisture

Wywoł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. 🎉

Bezpłatny start

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

  1. Dlaczego MQTT pasuje do IoT
  2. Łączenie z brokerem
  3. Publikowanie tematów czujników
  4. Subskrybowanie poleceń i reagowanie na nie
← Powrót do Arduino & IoT Academy