INHOUDSOPGAWE:

LDR Gebruik Thingsai Cloud: 13 stappe
LDR Gebruik Thingsai Cloud: 13 stappe

Video: LDR Gebruik Thingsai Cloud: 13 stappe

Video: LDR Gebruik Thingsai Cloud: 13 stappe
Video: ESP32 Tutorial 22 - Feeling The light using LED Arduino | SunFounder's ESP32 IoT Learnig kit 2024, November
Anonim
LDR Gebruik Thingsai Cloud
LDR Gebruik Thingsai Cloud

HEY …. vandag leer ons hoe ons die intensiteit van lig meet en die waardes op die THINGSAI IOT -wolkplatform plaas deur ESP32 te gebruik.

Die vereistes om hierdie projek te doen is

1. ESP32 Development Board (ek het ESP32 DEVKIT V1 gebruik)

2. LDR -sensor

3. Jumper Wires

4. Rekening in THINGSAI IOT PLATFORM

Stap 1: Skep en meld aan by die THINGSIO -platform

Skep en meld aan by die THINGSIO -platform
Skep en meld aan by die THINGSIO -platform

Meld aan by die THINGS AI -rekening. As u nuut is, registreer u dan op die rekening deur op die registrasie -knoppie te druk en vul al die inskrywings in. U rekening sal geskep word en vanaf dan kan u op die wolkplatform werk en u persoonlike projek skep

Stap 2: Skep nuwe projek

Skep nuwe projek
Skep nuwe projek

Nadat u by die rekening aangemeld het, klik op die nuwe projek om 'n projek te skep en gee die projeknaam.

Stap 3: Skep 'n nuwe toestel

Skep 'n nuwe toestel
Skep 'n nuwe toestel

Nadat u die projek geskep het, is die volgende ding wat u moet doen om 'n nuwe toestel te skep. Gee die toestelnaam en voer die toestel -ID handmatig in, óf deur die stelsel gegenereer.

Stap 4: Definieer toestelparameter

Definieer toestelparameter
Definieer toestelparameter

Gee die apparaatparameter en kies dan die tipe parameter

Stap 5: Werk die toestel op

Opdatering van die toestel
Opdatering van die toestel

Kies die parameter en werk dan die toestel op

Stap 6: Kodering

Kodering
Kodering

Kies die kode van esp32 uit die voorbeeldkodes en plak dit dan in die arduino IDE en maak die nodige veranderinge volgens die vereiste. Ek het die kode hieronder gegee

#include #include

#insluit

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

int t; int outputpin = A0; // ds18b20

int sensorwaarde;

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

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

gasheer = devapi2.thethingscloud.com

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

const char* time_server = "baas.thethingscloud.com"; // dit is om die tydstempel om te skakel

const int httpPort = 80;

const int httpsPort = 443;

const char* bediener = "api.thingsai.io"; // Bediener -URL

char tydstempel [10];

WiFiMulti WiFiMulti;

// Gebruik WiFiClient -klas om TCP -verbindings te skep

WiFiClient -kliënt;

////////////////////////////////////////////// TIMESTAMP BEREKENING funksie //////////////////////////////////////// int GiveMeTimestamp () {unsigned long timeout = millis (); // WiFiClient -kliënt;

terwyl (client.available () == 0)

{

as (millis () - time -out> 50000)

{

client.stop (); terugkeer 0;

}

}

terwyl (client.available ())

{

String line = client.readStringUntil ('\ r'); // indexOf () is 'n funksie om na smthng te soek, dit gee -1 as dit nie gevind word nie

int pos = line.indexOf ("\" tydstempel / ""); // soek na "\" tydstempel / "" vanaf die begin van die antwoord, en kopieer daarna alle data, dit is u tydstempel

as (pos> = 0)

{

int j = 0;

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

{

tydstempel [j] = reël [pos + 12 + j];

}

}

}

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

leemte opstelling ()

{

Serial.begin (115200);

vertraging (10);

// Ons begin deur aan te sluit op 'n WiFi -netwerk

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

Serial.println ();

Serial.println ();

Serial.print ("Wag vir WiFi …");

terwyl (WiFiMulti.run ()! = WL_CONNECTED)

{

Serial.print (".");

vertraging (500);

}

Serial.println ("");

Serial.println ("WiFi gekoppel");

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

vertraging (500);

}

leemte lus ()

{

int analogValue = analogRead (uitvoerpen);

{////////////////////////////////////////// STUUR DIE VRAAG EN ONTVANG DIE ANTWOORD /// ////////////////////////

sensorwaarde = analogRead (A0); // lees analoog invoerpen 0

sensorwaarde = sensorwaarde/100;

Serial.print (sensorwaarde, DEC); // druk die geleesde waarde af

Serial.print ("\ n"); // druk 'n spasie tussen die getalle

vertraging (1000); // wag 100 ms vir die volgende lesing

Serial.print ("verbind met"); Serial.println (gasheer); // gedefinieerde onderstebo:- gasheer = devapi2.thethingscloud.com of 139.59.26.117

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

Serial.println ("binne kry tydstempel / n");

as (! client.connect (time_server, {terugkeer; //*-*-*-*-*-*-*-*-*-*}

client.println ("GET/api/tydstempel HTTP/1.1"); // Wat hierdie deel doen, ek het nie client.println gekry nie ("Host: baas.thethingscloud.com");

client.println ("Cache-beheer: geen cache");

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

client.println ();

GiveMeTimestamp (); // dit sal die funksie noem wat die reaksie van die tydstempel van die bediener kry Serial.println ("tydstempel ontvang");

Serial.println (tydstempel);

Serial.println ("binne ThingsCloudPost");

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

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

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

Serial.println (PostValue);

/ * skep 'n voorbeeld van WiFiClientSecure */ WiFiClientSecure -kliënt;

Serial.println ("Koppel aan bediener via poort 443");

as (! client.connect (bediener, 443))

{

Serial.println ("Verbinding misluk!");

}

anders

{Serial.println ("gekoppel aan bediener!"); / * skep HTTP -versoek */

client.println ( POST/toestelle/deviceData

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

ient.println ("Inhoudstipe: toepassing/json");

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

client.println ("Magtiging: BearereyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqC9PN5" client.print ("Inhoudlengte:");

client.println (PostValue.length ());

client.println ();

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

Serial.print ("Wag vir reaksie");

terwyl (! client.available ()) {

vertraging (50); //

Serial.print (".");

} / * indien data beskikbaar is, ontvang en druk dit dan na Terminal * /

terwyl (client.available ())

{

char c = client.read ();

Reeks.skryf (c);

}

/ * as die bediener ontkoppel het, stop die kliënt */

as (! client.connected ())

{

Serial.println ();

Serial.println ("Server ontkoppel");

client.stop ();

}

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

vertraging (3000); }}

Stap 7: Keuse van bord en kompoort

Keuring van raad en com -poort
Keuring van raad en com -poort

Kies die bord uit die gereedskap en kies dan die com -poort

Stap 8: Kringaansluitings

Kringaansluitings
Kringaansluitings
Kringaansluitings
Kringaansluitings
Kringaansluitings
Kringaansluitings

Kodering word gedoen, en maak dan die volgende verbindings soos hieronder genoem

VERBINDINGS:

GND van esp32 tot GND van die LDR -sensor

3V3 0f esp32 na die Vcc van die LDR

VP van esp32 na die A0 van die LDR

Stap 9: Stel op en laai op

Stel op en laai op
Stel op en laai op

stel die kode saam en laai dit op in die esp32 en lees dan die lesings van die seriële monitor. Dit sou so 'n resultaat toon

Stap 10: Serial Monitor

Seriële monitor
Seriële monitor

Die waardes word op die seriële monitor verkry en dan na die THINGSAI IOT Cloud -platform gestuur.

Stap 11: Lesings

Lesings
Lesings

Dit toon die waardes verkry uit die esp32 -bord.

Stap 12: Grafiese voorstelling

Grafiese voorstelling
Grafiese voorstelling

Dit is die grafiese voorstelling van die verkryde waardes. Dit is die einde van die tutoriaal. Hoop jy het verstaan. Dankie

Aanbeveel: