Innholdsfortegnelse:

LDR som bruker Thingsai Cloud: 13 trinn
LDR som bruker Thingsai Cloud: 13 trinn

Video: LDR som bruker Thingsai Cloud: 13 trinn

Video: LDR som bruker Thingsai Cloud: 13 trinn
Video: Hubble - 15 years of discovery 2024, Juli
Anonim
LDR bruker Thingsai Cloud
LDR bruker Thingsai Cloud

HEY … i dag skal vi lære å måle lysintensiteten og legge verdiene inn i THINGSAI IOT -skyplattformen ved å bruke ESP32.

Kravene for å gjøre dette prosjektet er

1. ESP32 Development Board (jeg har brukt ESP32 DEVKIT V1)

2. LDR -sensor

3. Jumper Wires

4. Konto i THINGSAI IOT PLATFORM

Trinn 1: Opprette og logge på THINGSIO -plattformen

Opprette og logge på THINGSIO -plattformen
Opprette og logge på THINGSIO -plattformen

Logg deg på THINGS AI -kontoen. Hvis du er ny, må du registrere deg på kontoen ved å trykke på registerknappen og fylle ut alle legitimasjonene. Kontoen din blir opprettet, og fra da vil du kunne jobbe på nettskyplattformen og lage ditt tilpassede prosjekt

Trinn 2: Opprette nytt prosjekt

Oppretter nytt prosjekt
Oppretter nytt prosjekt

Etter å ha logget deg på kontoen, for å opprette et prosjekt, klikker du bare på det nye prosjektet og gir deretter prosjektnavnet.

Trinn 3: Opprette en ny enhet

Opprette en ny enhet
Opprette en ny enhet

etter at du har opprettet prosjektet, er det neste du må gjøre å opprette en ny enhet. Gi enhetsnavnet og skriv inn enhets -ID -en enten manuelt eller systemgenerert.

Trinn 4: Definere enhetsparameter

Definere enhetsparameter
Definere enhetsparameter

Gi enhetsparameteren og velg deretter parametertypen

Trinn 5: Oppdatering av enheten

Oppdaterer enheten
Oppdaterer enheten

Velg parameteren og oppdater deretter enheten

Trinn 6: Koding

Koding
Koding

Velg koden til esp32 fra prøvekodene, kopier den og lim den inn i arduino IDE og gjør de nødvendige endringene i henhold til kravet. Jeg har gitt koden nedenfor

#include #include

#inkludere

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

int t; int outputpin = A0; // ds18b20

int sensorverdi;

/////////////////////////////////////////////////////////' ////////////////////////////

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

vert = devapi2.thethingscloud.com

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

const char* time_server = "baas.thethingscloud.com"; // dette er å konvertere tidsstempel

const int httpPort = 80;

const int httpsPort = 443;

const char* server = "api.thingsai.io"; // Server -URL

røye tidsstempel [10];

WiFiMulti WiFiMulti;

// Bruk WiFiClient -klassen til å opprette TCP -tilkoblinger

WiFiClient -klient;

///////////////////////////// ////////////////////////////////////////// int GiveMeTimestamp () {unsigned long timeout = millis (); // WiFiClient -klient;

mens (client.available () == 0)

{

hvis (millis () - timeout> 50000)

{

client.stop (); retur 0;

}

}

mens (client.available ())

{

String line = client.readStringUntil ('\ r'); // indexOf () er en funksjon for å søke etter smthng, den returnerer -1 hvis den ikke blir funnet

int pos = line.indexOf ("\" tidsstempel / ""); // søk etter "\" tidsstempel / "" fra begynnelsen av svaret, og kopier alle dataene etter det, det vil være ditt tidsstempel

hvis (pos> = 0)

{

int j = 0;

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

{

tidsstempel [j] = linje [pos + 12 + j];

}

}

}

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

ugyldig oppsett ()

{

Serial.begin (115200);

forsinkelse (10);

// Vi starter med å koble til et WiFi -nettverk

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

Serial.println ();

Serial.println ();

Serial.print ("Vent på WiFi …");

mens (WiFiMulti.run ()! = WL_CONNECTED)

{

Serial.print (".");

forsinkelse (500);

}

Serial.println ("");

Serial.println ("WiFi tilkoblet");

Serial.println ("IP -adresse:"); Serial.println (WiFi.localIP ());

forsinkelse (500);

}

hulrom ()

{

int analogValue = analogRead (outputpin);

{///////////////// ////////////////////////

sensorverdi = analogRead (A0); // les analog inngangspinne 0

sensorverdi = sensorverdi/100;

Serial.print (sensorverdi, DEC); // skriver ut verdien som er lest

Serial.print ("\ n"); // skriver ut et mellomrom mellom tallene

forsinkelse (1000); // vent 100 ms til neste lesning

Serial.print ("koble til"); Serial.println (vert); // definert oppside:- host = devapi2.thethingscloud.com eller 139.59.26.117

/////////////////////////////////////// /////////////////

Serial.println ("inne få tidsstempel / n");

hvis (! client.connect (time_server, { komme tilbake; //*-*-*-*-*-*-*-*-*-*}

client.println ("GET/api/tidsstempel HTTP/1.1"); // Hva denne delen gjør, jeg fikk ikke client.println ("Host: baas.thethingscloud.com");

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

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

client.println ();

GiveMeTimestamp (); // den vil kalle funksjonen som vil få tidsstempelresponsen fra serveren Serial.println ("tidsstempel mottatt");

Serial.println (tidsstempel);

Serial.println ("inside ThingsCloudPost");

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

PostValue = PostValue + ", \" dts / ":" + tidsstempel;

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

Serial.println (PostValue);

/ * opprett en forekomst av WiFiClientSecure */ WiFiClientSecure -klient;

Serial.println ("Koble til server via port 443");

hvis (! client.connect (server, 443))

{

Serial.println ("Tilkoblingen mislyktes!");

}

ellers

{Serial.println ("Koblet til server!"); / * opprett HTTP -forespørsel */

client.println ( POST/devices/deviceData

client.println ("Vert: api.thingsai.io"); //client.println("Connection: close "); kl

ient.println ("Innholdstype: applikasjon/json");

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

client.println ("Autorisasjon: BearereyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqC9PN5" client.print ("Content-Length:");

client.println (PostValue.length ());

client.println ();

client.println (PostValue); /////////////////////////////////// server ////////////////////

Serial.print ("Venter på svar");

mens (! client.available ()) {

forsinkelse (50); //

Serial.print (".");

} / * hvis data er tilgjengelig, motta og skriv ut til Terminal * /

mens (client.available ())

{

char c = client.read ();

Serial.write (c);

}

/ * hvis serveren koblet fra, stopp klienten */

hvis (! client.connected ())

{

Serial.println ();

Serial.println ("Server frakoblet");

client.stop ();

}

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

forsinkelse (3000); }}

Trinn 7: Valg av brett og komport

Valg av styre og komport
Valg av styre og komport

Velg brettet fra verktøy, og velg deretter com -porten

Trinn 8: Kretsforbindelser

Kretsforbindelser
Kretsforbindelser
Kretsforbindelser
Kretsforbindelser
Kretsforbindelser
Kretsforbindelser

Kodingen er utført, og gjør deretter følgende tilkoblinger som nevnt nedenfor

TILKOBLINGER:

GND på esp32 til GND for LDR -sensoren

3V3 0f esp32 til Vcc for LDR

VP for esp32 til A0 i LDR

Trinn 9: Kompiler og last opp

Kompiler og last opp
Kompiler og last opp

kompiler og last opp koden til esp32 og les deretter avlesningene fra den serielle skjermen. Det ville vise et slikt resultat

Trinn 10: Seriell skjerm

Seriell skjerm
Seriell skjerm

Verdiene hentes på den serielle skjermen, og deretter sendes de til THINGSAI IOT Cloud -plattformen.

Trinn 11: Avlesninger

Opplesninger
Opplesninger

Dette viser verdiene hentet fra esp32 -kortet.

Trinn 12: Grafisk representasjon

Grafisk representasjon
Grafisk representasjon

Dette er den grafiske fremstillingen av de oppnådde verdiene. Det er slutten på opplæringen. Håper du har forstått. Takk skal du ha

Anbefalt: