Cuprins:
- Pasul 1: Crearea și conectarea la platforma THINGSIO
- Pasul 2: Crearea unui proiect nou
- Pasul 3: Crearea unui dispozitiv nou
- Pasul 4: Definirea parametrilor dispozitivului
- Pasul 5: Actualizarea dispozitivului
- Pasul 6: Codificare
- Pasul 7: Selectarea plăcii și a portului Com
- Pasul 8: Conexiuni de circuit
- Pasul 9: Compilați și încărcați
- Pasul 10: Monitor serial
- Pasul 11: Lecturi
- Pasul 12: Reprezentare grafică
- Pasul 13:
2025 Autor: John Day | [email protected]. Modificat ultima dată: 2025-01-13 06:58
HEI … astăzi vom învăța despre măsurarea intensității luminii și postarea valorilor pe platforma cloud THINGSAI IOT folosind ESP32.
Cerințele pentru a face acest proiect sunt
1. Placa de dezvoltare ESP32 (am folosit ESP32 DEVKIT V1)
2. Senzor LDR
3. Sârme jumper
4. Cont în THINGSAI IOT PLATFORM
Pasul 1: Crearea și conectarea la platforma THINGSIO
Conectați-vă la contul THINGS AI. Dacă sunteți nou, înregistrați-vă în cont apăsând butonul de înregistrare și completați toate acreditările. Contul dvs. va fi creat și de atunci veți putea lucra pe platforma cloud și vă puteți crea proiectul personalizat
Pasul 2: Crearea unui proiect nou
După ce v-ați conectat la cont, pentru a crea un proiect, faceți clic pe noul proiect și apoi dați numele proiectului.
Pasul 3: Crearea unui dispozitiv nou
după crearea proiectului, următorul lucru pe care trebuie să-l faceți este să creați un dispozitiv nou. Dați numele dispozitivului și introduceți ID-ul dispozitivului fie manual, fie generat de sistem.
Pasul 4: Definirea parametrilor dispozitivului
Dați parametrul dispozitivului și apoi selectați tipul de parametru
Pasul 5: Actualizarea dispozitivului
Selectați parametrul și apoi actualizați dispozitivul
Pasul 6: Codificare
Din exemplele de coduri selectați codul esp32 copiați-l și apoi lipiți-l în IDE-ul arduino și efectuați modificările necesare în funcție de cerință. Am dat codul de mai jos
#include #include
#include
int count = 0, i, m, j, k;
int t; int outputpin = A0; // ds18b20
int sensorvalue;
////////////////////////////////////////// TOATE DECLARAȚIILE pentru CLOUD ////// //////////////////////////
const char * host = "api.thingsai.io"; // SAU
gazdă = devapi2.thethingscloud.com
const char * post_url = "/ devices / deviceData"; // SAU / api / v2 / thingscloud2 / _table / data_ac
const char * time_server = "baas.thethingscloud.com"; // aceasta este pentru a converti marca de timp
const int httpPort = 80;
const int httpsPort = 443;
const char * server = "api.thingsai.io"; // Adresa URL a serverului
timestamp char [10];
WiFiMulti WiFiMulti;
// Utilizați clasa WiFiClient pentru a crea conexiuni TCP
Client WiFiClient;
///////////////////////////////////////// TIMESTAMP CALCULATION function //////// /////////////////////////////// int GiveMeTimestamp () {unsigned long timeout = millis (); // client WiFiClient;
while (client.available () == 0)
{
if (milis () - timeout> 50000)
{
client.stop (); retur 0;
}
}
while (client.available ())
{
String line = client.readStringUntil ('\ r'); // indexOf () este o funcție pentru a căuta smthng, returnează -1 dacă nu este găsit
int pos = line.indexOf ("\" timestamp / ""); // căutați "\" timestamp / "" de la începutul răspunsului și copiați toate datele după aceea, va fi marca dvs. de timp
if (pos> = 0)
{
int j = 0;
pentru (j = 0; j <10; j ++)
{
timestamp [j] = line [pos + 12 + j];
}
}
}
} ////////////////////////////////////////////////////////////////////////////////////////////////////////
configurare nulă ()
{
Serial.begin (115200);
întârziere (10);
// Începem prin conectarea la o rețea WiFi
WiFiMulti.addAP ("wifi", "pswrd");
Serial.println ();
Serial.println ();
Serial.print („Așteptați WiFi …”);
while (WiFiMulti.run ()! = WL_CONNECTED)
{
Serial.print (".");
întârziere (500);
}
Serial.println ("");
Serial.println ("WiFi conectat");
Serial.println ("adresa IP:"); Serial.println (WiFi.localIP ());
întârziere (500);
}
bucla nulă ()
{
int analogValue = analogRead (outputpin);
{///////////////////////////////////////// TRIMITE ÎNTREBAREA ȘI PRIMI RĂSPUNSUL /// //////////////////////
sensorvalue = analogRead (A0); // citiți pinul de intrare analogic 0
sensorvalue = sensorvalue / 100;
Serial.print (sensorvalue, DEC); // tipărește valoarea citită
Serial.print ("\ n"); // imprimă un spațiu între numere
întârziere (1000); // așteptați 100ms pentru următoarea lectură
Serial.print („conectarea la”); Serial.println (gazdă); // definită invers: - host = devapi2.thethingscloud.com sau 139.59.26.117
///////////////////////////////////// COD TIMESTAMP SNIPPET ////////// ///////////////
Serial.println ("inside get timestamp / n");
if (! client.connect (time_server, { întoarcere; // * - * - * - * - * - * - * - * - * - *}
client.println ("GET / api / timestamp HTTP / 1.1"); // Ce face această parte, nu am primit client.println („Gazdă: baas.thethingscloud.com”);
client.println ("Cache-Control: no-cache");
client.println ("Postman-Token: ea3c18c6-09ba-d049-ccf3-369a22a284b8");
client.println ();
GiveMeTimestamp (); // va apela funcția care va primi răspunsul timestamp de la serverul Serial.println ("timestamp recepționat");
Serial.println (timestamp);
Serial.println („în interiorul ThingsCloudPost”);
String PostValue = "{" device_id / ": 61121695844, \" slave_id / ": 2";
PostValue = PostValue + ", \" dts / ":" + timestamp;
PostValue = PostValue + ", \" data / ": {" INTENSITY / ":" + / sensorvalue + "}" + "}";
Serial.println (PostValue);
/ * creați o instanță a clientului WiFiClientSecure * / WiFiClientSecure;
Serial.println („Conectare la server prin portul 443”);
if (! client.connect (server, 443))
{
Serial.println ("Conexiunea a eșuat!");
}
altceva
{Serial.println ("Conectat la server!"); / * creați o solicitare HTTP * /
client.println ("POST / dispozitive / dispozitivDate HTTP / 1.1");
client.println ("Gazdă: api.thingsai.io"); //client.println("Connection: close "); cl
ient.println ("Content-Type: application / json");
client.println ("cache-control: no-cache");
client.println ("Autorizație: BearereyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqC2KT5XA7") client.print („Lungime conținut:”);
client.println (PostValue.length ());
client.println ();
client.println (PostValue); //////////////////////////////////// PUBLICAREA datelor pe cloud este gata și acum obțineți formularul de răspuns cloud Server//////////////////
Serial.print („Se așteaptă răspunsul”);
while (! client.available ()) {
întârziere (50); //
Serial.print (".");
} / * dacă datele sunt disponibile, atunci primiți și imprimați la Terminal * /
while (client.available ())
{
char c = client.read ();
Serial.write (c);
}
/ * dacă serverul s-a deconectat, opriți clientul * /
if (! client.connected ())
{
Serial.println ();
Serial.println („Server deconectat”);
client.stop ();
}
} Serial.println ("////////////////////// THE END //////////////////// / ");
întârziere (3000); }}
Pasul 7: Selectarea plăcii și a portului Com
Din instrumente selectați placa și apoi selectați portul de com
Pasul 8: Conexiuni de circuit
Codificarea se face apoi faceți următoarele conexiuni așa cum se menționează mai jos
CONEXIUNI:
GND de esp32 la GND al senzorului LDR
3V3 0f esp32 la Vcc-ul LDR
VP de esp32 la A0 al LDR
Pasul 9: Compilați și încărcați
compilați și încărcați codul în esp32 și apoi citiți citirile de pe monitorul serial. Asta ar arăta un rezultat de genul acesta
Pasul 10: Monitor serial
Valorile sunt obținute pe monitorul serial și apoi sunt trimise în platforma THINGSAI IOT Cloud.
Pasul 11: Lecturi
Aceasta arată valorile obținute de pe placa esp32.
Pasul 12: Reprezentare grafică
Aceasta este reprezentarea grafică a valorilor obținute. Acesta este sfârșitul tutorialului. Sper că ai înțeles. Mulțumesc