Kazalo:

LDR z uporabo oblaka Thingsai: 13 korakov
LDR z uporabo oblaka Thingsai: 13 korakov

Video: LDR z uporabo oblaka Thingsai: 13 korakov

Video: LDR z uporabo oblaka Thingsai: 13 korakov
Video: ESP32 Tutorial 22 - Feeling The light using LED Arduino | SunFounder's ESP32 IoT Learnig kit 2024, Julij
Anonim
LDR z uporabo oblaka Thingsai
LDR z uporabo oblaka Thingsai

HEJ….. danes se bomo naučili o merjenju jakosti svetlobe in objavljanju vrednosti v oblačni platformi THINGSAI IOT z uporabo ESP32.

Zahteve za izvedbo tega projekta so

1. Razvojna plošča ESP32 (uporabljal sem ESP32 DEVKIT V1)

2. Senzor LDR

3. Mostične žice

4. Račun v THINGSAI IOT PLATFORMI

1. korak: Ustvarjanje in prijava v platformo THINGSIO

Ustvarjanje in prijava na platformo THINGSIO
Ustvarjanje in prijava na platformo THINGSIO

Prijavite se v račun THINGS AI. Če ste novi, se prijavite v račun s pritiskom na gumb za registracijo in izpolnite vse poverilnice. Vaš račun bo ustvarjen in od takrat boste lahko delali na platformi v oblaku in ustvarili svoj projekt po meri

2. korak: Ustvarjanje novega projekta

Ustvarjanje novega projekta
Ustvarjanje novega projekta

Ko se prijavite v račun, če želite ustvariti projekt, kliknite nov projekt in nato ime projekta.

3. korak: Ustvarjanje nove naprave

Ustvarjanje nove naprave
Ustvarjanje nove naprave

Ko ustvarite projekt, morate naslednjo stvar ustvariti: Navedite ime naprave in vnesite ID naprave ročno ali v sistemu.

4. korak: Določanje parametra naprave

Določanje parametra naprave
Določanje parametra naprave

Podajte parameter naprave in nato izberite vrsto parametra

5. korak: Posodobitev naprave

Posodabljanje naprave
Posodabljanje naprave

Izberite parameter in nato posodobite napravo

6. korak: Kodiranje

Kodiranje
Kodiranje

Med vzorčnimi kodami izberite kodo esp32, kopirajte jo in jo nato prilepite v arduino IDE in naredite potrebne spremembe glede na zahtevo. Spodaj sem dal kodo

#include #include

#vključi

int štetje = 0, i, m, j, k;

int t; int outputpin = A0; // ds18b20

vrednost int senzorja;

////////////////////////////////////////// VSE IZJAVE za OBLAK ////// //////////////////////////

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

gostitelj = devapi2.thethingscloud.com

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

const char* time_server = "baas.thethingscloud.com"; // to je za pretvorbo časovnega žiga

const int httpPort = 80;

const int httpsPort = 443;

const char* server = "api.thingsai.io"; // URL strežnika

časovni žig char [10];

WiFiMulti WiFiMulti;

// Uporabite razred WiFiClient za ustvarjanje povezav TCP

Odjemalec WiFiClient;

////////////////////////////////////////// IZRAČUN TIMESTAMP funkcije //////// ///////////////////////////////// int GiveMeTimestamp () {dolga časovna omejitev brez podpisa = millis (); // odjemalec WiFiClient;

medtem ko (client.available () == 0)

{

if (millis () - časovna omejitev> 50000)

{

client.stop (); vrnitev 0;

}

}

medtem ko (client.available ())

{

Vrstna vrstica = client.readStringUntil ('\ r'); // indexOf () je funkcija za iskanje smthng, vrne -1, če ni najdena

int pos = line.indexOf ("\" časovni žig / ""); // poiščite "\" časovni žig / "" od začetka odgovora in kopirajte vse podatke po tem, to bo vaš časovni žig

če (pos> = 0)

{

int j = 0;

za (j = 0; j <10; j ++)

{

časovni žig [j] = vrstica [pos + 12 + j];

}

}

}

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

void setup ()

{

Serial.begin (115200);

zamuda (10);

// Začnemo s povezavo v omrežje WiFi

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

Serial.println ();

Serial.println ();

Serial.print ("Počakaj na WiFi …");

medtem ko (WiFiMulti.run ()! = WL_CONNECTED)

{

Serial.print (".");

zamuda (500);

}

Serial.println ("");

Serial.println ("WiFi povezan");

Serial.println ("naslov IP:"); Serial.println (WiFi.localIP ());

zamuda (500);

}

void loop ()

{

int analogValue = analogRead (outputpin);

{///////////////////////////////////////// POŠLJI VPRAŠANJE IN PREJMI ODGOVOR /// //////////////////////

sensorvalue = analogRead (A0); // preberemo analogni vhodni pin 0

senzorska vrednost = senzorska vrednost/100;

Serijski.tisk (vrednost senzorja, DEC); // natisne prebrano vrednost

Serial.print ("\ n"); // natisne presledek med številkami

zamuda (1000); // počakajte 100 ms na naslednje branje

Serial.print ("povezovanje z"); Serial.println (gostitelj); // definirano navzgor:- host = devapi2.thethingscloud.com ali 139.59.26.117

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

Serial.println ("not get timestamp / n");

if (! client.connect (časovni strežnik, {return; //*-*-*-*-*-*-*-*-*-*}

client.println ("GET/api/časovni žig HTTP/1.1"); // Kaj počne ta del, nisem dobil client.println ("Gostitelj: baas.thethingscloud.com");

client.println ("Nadzor predpomnilnika: brez predpomnilnika");

client.println ("Žeton poštarja: ea3c18c6-09ba-d049-ccf3-369a22a284b8");

client.println ();

GiveMeTimestamp (); // poklical bo funkcijo, ki bo prejela odziv časovnega žiga s strežnika Serial.println ("časovni žig prejeto");

Serial.println (časovni žig);

Serial.println ("znotraj ThingsCloudPost");

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

PostValue = PostValue + ", \" dts / ":" + časovni žig;

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

Serial.println (PostValue);

/ * ustvarite primerek odjemalca WiFiClientSecure */ WiFiClientSecure;

Serial.println ("Poveži se s strežnikom prek vrat 443");

if (! client.connect (strežnik, 443))

{

Serial.println ("Povezava ni uspela!");

}

drugače

{Serial.println ("Povezano s strežnikom!"); / * ustvari zahtevo HTTP */

client.println ( POST/devices/deviceData

client.println ("Gostitelj: api.thingsai.io"); //client.println("Connection: close "); cl

ient.println ("Vrsta vsebine: aplikacija/json");

client.println ("nadzor predpomnilnika: brez predpomnilnika");

client.println ("zdravilom: BearereyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqC2PNTkXs9PKy6_m9tdW5AG7ajfVlY"); client.print ("Content-Length:");

client.println (PostValue.length ());

client.println ();

client.println (PostValue); ////////////////////////////////////// Objavljanje podatkov v oblak je končano in zdaj dobite oblak obrazca za odziv strežnik ////////////////////

Serial.print ("Čakanje na odgovor");

medtem ko (! client.available ()) {

zamuda (50); //

Serial.print (".");

} / * če so podatki na voljo, jih sprejmite in natisnite na terminal * /

medtem ko (client.available ())

{

char c = client.read ();

Serial.write (c);

}

/ * če je strežnik odklopljen, ustavite odjemalca */

if (! client.connected ())

{

Serial.println ();

Serial.println ("Strežnik odklopljen");

client.stop ();

}

} Serial.println ("//////////////////////// KONEC ////////////////////// /");

zamuda (3000); }}

Korak 7: Izbira vmesnika in vmesnika Com

Izbira Board in Com Port
Izbira Board in Com Port

Med orodji izberite ploščo in nato izberite vrata com

8. korak: Povezave s tokokrogom

Povezave vezja
Povezave vezja
Povezave vezja
Povezave vezja
Povezave vezja
Povezave vezja

Kodiranje se izvede, nato vzpostavite naslednje povezave, kot je navedeno spodaj

POVEZAVE:

GND od esp32 do GND senzorja LDR

3V3 0f esp32 do Vcc LDR

VP esp32 do A0 LDR

9. korak: Prenesite in naložite

Sestavite in naložite
Sestavite in naložite

sestavite in naložite kodo v esp32 in nato preberite odčitke iz serijskega monitorja. To bi pokazalo nekaj takega

10. korak: Serijski monitor

Serijski monitor
Serijski monitor

Vrednosti se pridobijo na serijskem monitorju in nato pošljejo v platformo THINGSAI IOT Cloud.

11. korak: Odčitki

Branje
Branje

To prikazuje vrednosti, pridobljene s plošče esp32.

12. korak: grafični prikaz

Grafična predstavitev
Grafična predstavitev

To je grafični prikaz pridobljenih vrednosti. To je konec vadnice. Upam, da ste razumeli. Hvala vam

Priporočena: