You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
IoT-For-Beginners/translations/pl/1-getting-started/lessons/4-connect-internet/single-board-computer-comma...

3.8 KiB

Steruj swoją lampką nocną przez Internet - Wirtualny sprzęt IoT i Raspberry Pi

W tej części lekcji zasubskrybujesz polecenia wysyłane z brokera MQTT do Twojego Raspberry Pi lub wirtualnego urządzenia IoT.

Subskrybuj polecenia

Kolejnym krokiem jest subskrybowanie poleceń wysyłanych z brokera MQTT i reagowanie na nie.

Zadanie

Zasubskrybuj polecenia.

  1. Otwórz projekt lampki nocnej w VS Code.

  2. Jeśli używasz wirtualnego urządzenia IoT, upewnij się, że terminal działa w środowisku wirtualnym. Jeśli korzystasz z Raspberry Pi, nie będziesz używać środowiska wirtualnego.

  3. Dodaj poniższy kod po definicjach client_telemetry_topic:

    server_command_topic = id + '/commands'
    

    server_command_topic to temat MQTT, który urządzenie zasubskrybuje, aby odbierać polecenia dotyczące LED.

  4. Dodaj poniższy kod tuż nad główną pętlą, po linii mqtt_client.loop_start():

    def handle_command(client, userdata, message):
        payload = json.loads(message.payload.decode())
        print("Message received:", payload)
    
        if payload['led_on']:
            led.on()
        else:
            led.off()
    
    mqtt_client.subscribe(server_command_topic)
    mqtt_client.on_message = handle_command
    

    Ten kod definiuje funkcję handle_command, która odczytuje wiadomość jako dokument JSON i sprawdza wartość właściwości led_on. Jeśli jest ustawiona na True, dioda LED zostaje włączona, w przeciwnym razie zostaje wyłączona.

    Klient MQTT subskrybuje temat, na który serwer będzie wysyłał wiadomości, i ustawia funkcję handle_command, aby była wywoływana, gdy wiadomość zostanie odebrana.

    💁 Handler on_message jest wywoływany dla wszystkich subskrybowanych tematów. Jeśli później napiszesz kod nasłuchujący wielu tematów, możesz uzyskać temat, na który wiadomość została wysłana, z obiektu message przekazanego do funkcji obsługującej.

  5. Uruchom kod w taki sam sposób, jak uruchamiałeś kod z poprzedniej części zadania. Jeśli używasz wirtualnego urządzenia IoT, upewnij się, że aplikacja CounterFit jest uruchomiona, a czujnik światła i dioda LED zostały utworzone na odpowiednich pinach.

  6. Dostosuj poziomy światła wykrywane przez swoje fizyczne lub wirtualne urządzenie. Wiadomości odbierane i polecenia wysyłane będą zapisywane w terminalu. Dioda LED będzie również włączana i wyłączana w zależności od poziomu światła.

💁 Ten kod znajdziesz w folderze code-commands/virtual-device lub code-commands/pi.

😀 Udało Ci się zaprogramować swoje urządzenie tak, aby reagowało na polecenia z brokera MQTT.

Zastrzeżenie:
Ten dokument został przetłumaczony za pomocą usługi tłumaczeniowej AI Co-op Translator. Chociaż dokładamy wszelkich starań, aby zapewnić dokładność, 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 krytycznych zaleca się skorzystanie z profesjonalnego tłumaczenia wykonanego przez człowieka. Nie ponosimy odpowiedzialności za jakiekolwiek nieporozumienia lub błędne interpretacje wynikające z korzystania z tego tłumaczenia.