5.1 KiB
Ελέγξτε το νυχτερινό σας φως μέσω του Διαδικτύου - Wio Terminal
Σε αυτό το μέρος του μαθήματος, θα στείλετε τηλεμετρία με επίπεδα φωτός από το Wio Terminal σας στον MQTT broker.
Εγκατάσταση των βιβλιοθηκών JSON για Arduino
Ένας δημοφιλής τρόπος για να στέλνετε μηνύματα μέσω MQTT είναι χρησιμοποιώντας JSON. Υπάρχει μια βιβλιοθήκη για Arduino που κάνει την ανάγνωση και τη συγγραφή εγγράφων JSON πιο εύκολη.
Εργασία
Εγκαταστήστε τη βιβλιοθήκη Arduino JSON.
-
Ανοίξτε το έργο του νυχτερινού φωτός στο VS Code.
-
Προσθέστε την παρακάτω γραμμή στη λίστα
lib_deps
στο αρχείοplatformio.ini
:bblanchon/ArduinoJson @ 6.17.3
Αυτό εισάγει το ArduinoJson, μια βιβλιοθήκη JSON για Arduino.
Δημοσίευση τηλεμετρίας
Το επόμενο βήμα είναι να δημιουργήσετε ένα έγγραφο JSON με τηλεμετρία και να το στείλετε στον MQTT broker.
Εργασία - δημοσίευση τηλεμετρίας
Δημοσιεύστε τηλεμετρία στον MQTT broker.
-
Προσθέστε τον παρακάτω κώδικα στο τέλος του αρχείου
config.h
για να ορίσετε το όνομα του θέματος τηλεμετρίας για τον MQTT broker:const string CLIENT_TELEMETRY_TOPIC = ID + "/telemetry";
Το
CLIENT_TELEMETRY_TOPIC
είναι το θέμα στο οποίο η συσκευή θα δημοσιεύει τα επίπεδα φωτός. -
Ανοίξτε το αρχείο
main.cpp
. -
Προσθέστε την παρακάτω οδηγία
#include
στην κορυφή του αρχείου:#include <ArduinoJSON.h>
-
Προσθέστε τον παρακάτω κώδικα μέσα στη συνάρτηση
loop
, ακριβώς πριν από τοdelay
:int light = analogRead(WIO_LIGHT); DynamicJsonDocument doc(1024); doc["light"] = light; string telemetry; serializeJson(doc, telemetry); Serial.print("Sending telemetry "); Serial.println(telemetry.c_str()); client.publish(CLIENT_TELEMETRY_TOPIC.c_str(), telemetry.c_str());
Αυτός ο κώδικας διαβάζει το επίπεδο φωτός και δημιουργεί ένα έγγραφο JSON χρησιμοποιώντας το ArduinoJson που περιέχει αυτό το επίπεδο. Στη συνέχεια, αυτό μετατρέπεται σε συμβολοσειρά και δημοσιεύεται στο θέμα τηλεμετρίας MQTT από τον MQTT client.
-
Μεταφορτώστε τον κώδικα στο Wio Terminal σας και χρησιμοποιήστε το Serial Monitor για να δείτε τα επίπεδα φωτός που αποστέλλονται στον MQTT broker.
Connecting to WiFi.. Connected! Attempting MQTT connection...connected Sending telemetry {"light":652} Sending telemetry {"light":612} Sending telemetry {"light":583}
💁 Μπορείτε να βρείτε αυτόν τον κώδικα στον φάκελο code-telemetry/wio-terminal.
😀 Έχετε στείλει επιτυχώς τηλεμετρία από τη συσκευή σας.
Αποποίηση ευθύνης:
Αυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία αυτόματης μετάφρασης Co-op Translator. Παρόλο που καταβάλλουμε προσπάθειες για ακρίβεια, παρακαλούμε να έχετε υπόψη ότι οι αυτοματοποιημένες μεταφράσεις ενδέχεται να περιέχουν σφάλματα ή ανακρίβειες. Το πρωτότυπο έγγραφο στη μητρική του γλώσσα θα πρέπει να θεωρείται η αυθεντική πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική ανθρώπινη μετάφραση. Δεν φέρουμε ευθύνη για τυχόν παρεξηγήσεις ή εσφαλμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης.