3.3 KiB
Steruj swoją lampką nocną przez Internet - Wirtualny sprzęt IoT i Raspberry Pi
W tej części lekcji wyślesz dane telemetryczne dotyczące poziomu światła z Raspberry Pi lub wirtualnego urządzenia IoT do brokera MQTT.
Wysyłanie danych telemetrycznych
Kolejnym krokiem jest utworzenie dokumentu JSON z danymi telemetrycznymi i wysłanie go do brokera MQTT.
Zadanie
Wyślij dane telemetryczne do brokera MQTT.
-
Otwórz projekt lampki nocnej w VS Code.
-
Jeśli korzystasz z wirtualnego urządzenia IoT, upewnij się, że terminal działa w środowisku wirtualnym. Jeśli używasz Raspberry Pi, nie będziesz korzystać ze środowiska wirtualnego.
-
Dodaj następujący import na początku pliku
app.py
:import json
Biblioteka
json
jest używana do kodowania danych telemetrycznych jako dokument JSON. -
Dodaj poniższy kod po deklaracji
client_name
:client_telemetry_topic = id + '/telemetry'
Zmienna
client_telemetry_topic
to temat MQTT, na który urządzenie będzie wysyłać poziomy światła. -
Zamień zawartość pętli
while True:
na końcu pliku na poniższą:while True: light = light_sensor.light telemetry = json.dumps({'light' : light}) print("Sending telemetry ", telemetry) mqtt_client.publish(client_telemetry_topic, telemetry) time.sleep(5)
Ten kod pakuje poziom światła w dokument JSON i publikuje go do brokera MQTT. Następnie wprowadza opóźnienie, aby zmniejszyć częstotliwość wysyłania wiadomości.
-
Uruchom kod w taki sam sposób, jak uruchamiałeś kod z poprzedniej części zadania. Jeśli korzystasz z wirtualnego urządzenia IoT, upewnij się, że aplikacja CounterFit jest uruchomiona, a czujnik światła i dioda LED zostały utworzone na odpowiednich pinach.
(.venv) ➜ nightlight python app.py MQTT connected! Sending telemetry {"light": 0} Sending telemetry {"light": 0}
💁 Ten kod znajdziesz w folderze code-telemetry/virtual-device lub code-telemetry/pi.
😀 Udało Ci się pomyślnie wysłać dane telemetryczne z Twojego urządzenia.
Zastrzeżenie:
Ten dokument został przetłumaczony za pomocą usługi tłumaczenia AI Co-op Translator. Chociaż dokładamy wszelkich starań, aby tłumaczenie było precyzyjne, prosimy pamiętać, że automatyczne tłumaczenia mogą zawierać błędy lub nieścisłości. Oryginalny dokument w jego rodzimym języku powinien być uznawany za wiarygodne źródło. W przypadku informacji o kluczowym znaczeniu zaleca się skorzystanie z profesjonalnego tłumaczenia przez człowieka. Nie ponosimy odpowiedzialności za jakiekolwiek nieporozumienia lub błędne interpretacje wynikające z użycia tego tłumaczenia.