Πίνακας περιεχομένων:

LDR χρησιμοποιώντας Thingsai Cloud: 13 βήματα
LDR χρησιμοποιώντας Thingsai Cloud: 13 βήματα

Βίντεο: LDR χρησιμοποιώντας Thingsai Cloud: 13 βήματα

Βίντεο: LDR χρησιμοποιώντας Thingsai Cloud: 13 βήματα
Βίντεο: Κυριακή 31/05 11:00-12:00 Εξ' αποστάσεως διδασκαλία και εργαστηριακή εκπαίδευση - ΕΑΠ 2024, Ιούλιος
Anonim
LDR χρησιμοποιώντας Thingsai Cloud
LDR χρησιμοποιώντας Thingsai Cloud

HEY….. σήμερα θα μάθουμε για τη μέτρηση της έντασης του φωτός και τη δημοσίευση των τιμών στην πλατφόρμα cloud THINGSAI IOT χρησιμοποιώντας το ESP32.

Οι απαιτήσεις για την πραγματοποίηση αυτού του έργου είναι

1. ESP32 Development Board (έχω χρησιμοποιήσει ESP32 DEVKIT V1)

2. Αισθητήρας LDR

3. Jumper Wires

4. Λογαριασμός σε THINGSAI IOT PLATFORM

Βήμα 1: Δημιουργία και σύνδεση στην πλατφόρμα THINGSIO

Δημιουργία και είσοδος στην πλατφόρμα THINGSIO
Δημιουργία και είσοδος στην πλατφόρμα THINGSIO

Συνδεθείτε στον λογαριασμό THINGS AI. Εάν είστε νέος, εγγραφείτε στο λογαριασμό πατώντας το κουμπί εγγραφής και συμπληρώστε όλα τα διαπιστευτήρια. Ο λογαριασμός σας θα δημιουργηθεί και από τότε θα μπορείτε να εργαστείτε στην πλατφόρμα cloud και να δημιουργήσετε το προσαρμοσμένο έργο σας

Βήμα 2: Δημιουργία νέου έργου

Δημιουργία νέου έργου
Δημιουργία νέου έργου

Αφού συνδεθείτε στο λογαριασμό, για να δημιουργήσετε ένα έργο, απλά κάντε κλικ στο νέο έργο και, στη συνέχεια, δώστε το όνομα του έργου.

Βήμα 3: Δημιουργία νέας συσκευής

Δημιουργία νέας συσκευής
Δημιουργία νέας συσκευής

μετά τη δημιουργία του έργου, το επόμενο πράγμα που πρέπει να κάνετε είναι να δημιουργήσετε μια νέα συσκευή. Δώστε το όνομα της συσκευής και εισαγάγετε το αναγνωριστικό συσκευής είτε χειροκίνητα είτε από σύστημα.

Βήμα 4: Ορισμός παραμέτρου συσκευής

Καθορισμός παραμέτρου συσκευής
Καθορισμός παραμέτρου συσκευής

Δώστε την παράμετρο της συσκευής και, στη συνέχεια, επιλέξτε τον τύπο της παραμέτρου

Βήμα 5: Ενημέρωση της συσκευής

Ενημέρωση της Συσκευής
Ενημέρωση της Συσκευής

Επιλέξτε την παράμετρο και, στη συνέχεια, ενημερώστε τη συσκευή

Βήμα 6: Κωδικοποίηση

Κωδικοποίηση
Κωδικοποίηση

Από τους δείκτες κωδικών επιλέξτε τον κωδικό του esp32 αντιγράψτε τον και στη συνέχεια επικολλήστε τον στο arduino IDE και κάντε τις απαραίτητες αλλαγές σύμφωνα με τις απαιτήσεις. Έδωσα τον παρακάτω κωδικό

#συμπεριλάβω #συμπεριλάβω

#περιλαμβάνω

int count = 0, i, m, j, k;

int t? int outputpin = A0; // ds18b20

int sensorvalue;

///////////////////////////////////////// Όλες οι δηλώσεις για το σύννεφο ////// //////////////////////////

const char* host = "api.thingsai.io"; // Ή

host = devapi2.thethingscloud.com

const char* post_url = "/devices/deviceData"; // OR/api/v2/thingscloud2/_table/data_ac

const char* time_server = "baas.thethingscloud.com"; // αυτό είναι για τη μετατροπή χρονικής σήμανσης

const int httpPort = 80;

const int httpsPort = 443;

const char* server = "api.thingsai.io"; // URL διακομιστή

timestamp char [10]?

WiFiMulti WiFiMulti;

// Χρησιμοποιήστε την κλάση WiFiClient για να δημιουργήσετε συνδέσεις TCP

Πελάτης WiFiClient.

//////////////////////////////////////// Λειτουργία TIMESTAMP CALCULATION ///////// /////////////////////////////// int GiveMeTimestamp () {unsigned long timeout = millis (); // πελάτης WiFiClient.

while (client.available () == 0)

{

εάν (millis () - χρονικό όριο> 50000)

{

client.stop (); επιστροφή 0?

}

}

while (client.available ())

{

String line = client.readStringUntil ('\ r'); // indexOf () είναι μια λειτουργία αναζήτησης για smthng, επιστρέφει -1 αν δεν βρεθεί

int pos = line.indexOf ("\" timestamp / ""); // αναζήτηση για "\" timestamp / "" από την αρχή της απόκρισης και αντιγράψτε όλα τα δεδομένα μετά από αυτό, θα είναι η χρονική σήμανση σας

αν (pos> = 0)

{

int j = 0;

για (j = 0; j <10; j ++)

{

χρονική σήμανση [j] = γραμμή [pos + 12 + j];

}

}

}

} ////////////////////////////////////////////////////////////////////////////////////////////////////////

void setup ()

{

Serial.begin (115200);

καθυστέρηση (10)?

// Ξεκινάμε συνδέοντας ένα δίκτυο WiFi

WiFiMulti.addAP ("wifi", "pswrd");

Serial.println ();

Serial.println ();

Serial.print ("Περιμένετε για WiFi …");

ενώ (WiFiMulti.run ()! = WL_CONNECTED)

{

Serial.print (".");

καθυστέρηση (500)?

}

Serial.println ("");

Serial.println ("WiFi συνδεδεμένο");

Serial.println ("Διεύθυνση IP:"); Serial.println (WiFi.localIP ());

καθυστέρηση (500)?

}

κενός βρόχος ()

{

int analogValue = analogRead (έξοδος εξόδου);

{/////////////////////////////////////// ΣΤΕΙΛΤΕ ΤΟ ΕΡΩΤΗΜΑ ΚΑΙ ΛΑΒΕΤΕ ΤΗΝ ΑΠΑΝΤΗΣΗ /// //////////////////////

sensorvalue = analogRead (A0); // διαβάστε την αναλογική είσοδο 0

sensorvalue = sensorvalue/100;

Serial.print (τιμή αισθητήρα, DEC); // εκτυπώνει την τιμή που έχει διαβαστεί

Serial.print ("\ n"); // εκτυπώνει ένα διάστημα μεταξύ των αριθμών

καθυστέρηση (1000)? // περιμένετε 100ms για την επόμενη ανάγνωση

Serial.print ("σύνδεση με"); Serial.println (οικοδεσπότης); // καθορισμένο ανάποδα:- host = devapi2.thethingscloud.com ή 139.59.26.117

/////////////////////////////////////// TIMESTAMP CODE SNIPPET /////////// /////////////////

Serial.println ("εντός λήψης χρονικής σήμανσης / n");

εάν (! client.connect (time_server, { ΕΠΙΣΤΡΟΦΗ; //*-*-*-*-*-*-*-*-*-*}

client.println ("GET/api/timestamp HTTP/1.1"); // Τι κάνει αυτό το μέρος, δεν κατάλαβα το client.println ("Host: baas.thethingscloud.com");

client.println ("Cache-Control: no-cache");

client.println ("Postman-Token: ea3c18c6-09ba-d049-ccf3-369a22a284b8");

client.println ();

GiveMeTimestamp (); // θα καλέσει τη συνάρτηση που θα λάβει την απόκριση χρονικής σήμανσης από τον διακομιστή Serial.println ("χρονική σήμανση λαμβάνεται").

Serial.println (χρονική σήμανση);

Serial.println ("μέσα στο ThingsCloudPost");

String PostValue = "{" device_id / ": 61121695844, \" slave_id / ": 2";

PostValue = PostValue + ", \" dts / ":" + χρονική σήμανση;

PostValue = PostValue +", \" data / ": {" INTENSITY / ":" +\ sensorvalue +"}" +"}";

Serial.println (PostValue);

/ * δημιουργήστε ένα παράδειγμα προγράμματος -πελάτη WiFiClientSecure */ WiFiClientSecure.

Serial.println ("Σύνδεση με διακομιστή μέσω θύρας 443");

εάν (! client.connect (διακομιστής, 443))

{

Serial.println ("Η σύνδεση απέτυχε!");

}

αλλού

{Serial.println ("Συνδέθηκε με διακομιστή!"); / * δημιουργία αιτήματος HTTP */

client.println ( POST/devices/deviceData

client.println ("Host: api.thingsai.io"); //client.println("Σύνδεση: κλείσιμο "); κλ

ient.println ("Τύπος περιεχομένου: εφαρμογή/json");

client.println ("cache-control: no-cache");

client.println ("Άδεια: BearereyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqC2PNTkXs9PKy6_m9tdW5AG7ajfVlY")? client.print ("Περιεχόμενο-Μήκος:");

client.println (PostValue.length ());

client.println ();

client.println (PostValue); /////////////////////////////////// ΑΠΟΣΤΟΛΗ των δεδομένων στο cloud έχει γίνει και τώρα λάβετε τη φόρμα απόκρισης cloud υπηρέτης//////////////////

Serial.print ("Αναμονή για απάντηση");

ενώ (! client.available ()) {

καθυστέρηση (50)? //

Serial.print (".");

} / * εάν τα δεδομένα είναι διαθέσιμα, λάβετε και εκτυπώστε στο τερματικό * /

while (client.available ())

{

char c = client.read ();

Serial.write (c);

}

/ * εάν ο διακομιστής είναι αποσυνδεδεμένος, διακόψτε τον πελάτη */

εάν (! client.connected ())

{

Serial.println ();

Serial.println ("Ο διακομιστής αποσυνδέθηκε");

client.stop ();

}

} Serial.println ("///////////////////// ΤΕΛΟΣ /////////////////// /");

καθυστέρηση (3000)? }}

Βήμα 7: Επιλογή Διοικητικού Συμβουλίου και Com Port

Επιλογή Διοικητικού Συμβουλίου και Com Port
Επιλογή Διοικητικού Συμβουλίου και Com Port

Από τα εργαλεία επιλέξτε τον πίνακα και, στη συνέχεια, επιλέξτε τη θύρα com

Βήμα 8: Συνδέσεις κυκλωμάτων

Συνδέσεις κυκλωμάτων
Συνδέσεις κυκλωμάτων
Συνδέσεις κυκλωμάτων
Συνδέσεις κυκλωμάτων
Συνδέσεις κυκλωμάτων
Συνδέσεις κυκλωμάτων

Η κωδικοποίηση γίνεται και στη συνέχεια πραγματοποιήστε τις ακόλουθες συνδέσεις όπως αναφέρεται παρακάτω

ΣΥΝΔΕΣΕΙΣ:

GND του esp32 έως GND του αισθητήρα LDR

3V3 0f esp32 στο Vcc του LDR

VP του esp32 στο A0 του LDR

Βήμα 9: Μεταγλώττιση και μεταφόρτωση

Μεταγλώττιση και μεταφόρτωση
Μεταγλώττιση και μεταφόρτωση

μεταγλωττίστε και ανεβάστε τον κώδικα στο esp32 και, στη συνέχεια, διαβάστε τις ενδείξεις από τη σειριακή οθόνη. Αυτό θα έδειχνε ένα αποτέλεσμα σαν αυτό

Βήμα 10: Σειριακή παρακολούθηση

Σειριακή οθόνη
Σειριακή οθόνη

Οι τιμές λαμβάνονται στη σειριακή οθόνη και στη συνέχεια αποστέλλονται στην πλατφόρμα THINGSAI IOT Cloud.

Βήμα 11: Αναγνώσεις

Αναγνώσεις
Αναγνώσεις

Αυτό δείχνει τις τιμές που λαμβάνονται από τον πίνακα esp32.

Βήμα 12: Γραφική αναπαράσταση

ΓΡΑΦΙΚΗ ΑΝΑΠΑΡΑΣΤΑΣΗ
ΓΡΑΦΙΚΗ ΑΝΑΠΑΡΑΣΤΑΣΗ

Αυτή είναι η γραφική αναπαράσταση των τιμών που λαμβάνονται. Αυτό είναι το τέλος του σεμιναρίου. Ελπίζω να κατάλαβες. Σας ευχαριστώ

Συνιστάται: