INHOUDSOPGAWE:
- Stap 1: Skep en meld aan by die THINGSIO -platform
- Stap 2: Skep nuwe projek
- Stap 3: Skep 'n nuwe toestel
- Stap 4: Definieer toestelparameter
- Stap 5: Werk die toestel op
- Stap 6: Kodering
- Stap 7: Keuse van bord en kompoort
- Stap 8: Kringaansluitings
- Stap 9: Stel op en laai op
- Stap 10: Serial Monitor
- Stap 11: Lesings
- Stap 12: Grafiese voorstelling
- Stap 13:
2025 Outeur: John Day | [email protected]. Laas verander: 2025-01-13 06:56
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
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
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
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
Gee die apparaatparameter en kies dan die tipe parameter
Stap 5: Werk die toestel op
Kies die parameter en werk dan die toestel op
Stap 6: 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
Kies die bord uit die gereedskap en kies dan die com -poort
Stap 8: 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 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
Die waardes word op die seriële monitor verkry en dan na die THINGSAI IOT Cloud -platform gestuur.
Stap 11: Lesings
Dit toon die waardes verkry uit die esp32 -bord.
Stap 12: Grafiese voorstelling
Dit is die grafiese voorstelling van die verkryde waardes. Dit is die einde van die tutoriaal. Hoop jy het verstaan. Dankie