Cuprins:

LDR folosind Thingsai Cloud: 13 pași
LDR folosind Thingsai Cloud: 13 pași

Video: LDR folosind Thingsai Cloud: 13 pași

Video: LDR folosind Thingsai Cloud: 13 pași
Video: Things You Do Wrong Every Day 2024, Iulie
Anonim
LDR folosind Thingsai Cloud
LDR folosind Thingsai Cloud

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

Crearea și conectarea la platforma THINGSIO
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

Crearea unui proiect nou
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

Crearea unui dispozitiv nou
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

Definirea parametrilor dispozitivului
Definirea parametrilor dispozitivului

Dați parametrul dispozitivului și apoi selectați tipul de parametru

Pasul 5: Actualizarea dispozitivului

Actualizarea dispozitivului
Actualizarea dispozitivului

Selectați parametrul și apoi actualizați dispozitivul

Pasul 6: Codificare

Codificare
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

Selecția consiliului și a portului de comunicații
Selecția consiliului și a portului de comunicații

Din instrumente selectați placa și apoi selectați portul de com

Pasul 8: Conexiuni de circuit

Conexiuni de circuit
Conexiuni de circuit
Conexiuni de circuit
Conexiuni de circuit
Conexiuni de circuit
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
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

Monitor serial
Monitor serial

Valorile sunt obținute pe monitorul serial și apoi sunt trimise în platforma THINGSAI IOT Cloud.

Pasul 11: Lecturi

Lecturi
Lecturi

Aceasta arată valorile obținute de pe placa esp32.

Pasul 12: Reprezentare grafică

Reprezentare grafică
Reprezentare grafică

Aceasta este reprezentarea grafică a valorilor obținute. Acesta este sfârșitul tutorialului. Sper că ai înțeles. Mulțumesc

Recomandat: