Sadržaj:
- Korak 1: Kreiranje i prijava na THINGSIO platformu
- Korak 2: Kreiranje novog projekta
- Korak 3: Kreiranje novog uređaja
- Korak 4: Definiranje parametra uređaja
- Korak 5: Ažuriranje uređaja
- Korak 6: Kodiranje
- Korak 7: Odabir ploče i Com porta
- Korak 8: Povezivanje kruga
- Korak 9: Sastavite i otpremite
- Korak 10: Serijski monitor
- Korak 11: Čitanje
- Korak 12: Grafičko predstavljanje
- Korak 13:
2025 Autor: John Day | [email protected]. Zadnja izmjena: 2025-01-13 06:57
HEJ….. danas ćemo naučiti o mjerenju intenziteta svjetlosti i postavljanju vrijednosti na THINGSAI IOT cloud platformu pomoću ESP32.
Uslovi za realizaciju ovog projekta su
1. Razvojna ploča ESP32 (koristio sam ESP32 DEVKIT V1)
2. LDR senzor
3. Žice za kratkospojnike
4. Račun u THINGSAI IOT PLATFORMI
Korak 1: Kreiranje i prijava na THINGSIO platformu
Prijavite se na THINGS AI račun. Ako ste novi, registrirajte se na račun pritiskom na gumb za registraciju i popunite sve vjerodajnice. Vaš račun će biti kreiran i od tada ćete moći raditi na cloud platformi i kreirati svoj prilagođeni projekt
Korak 2: Kreiranje novog projekta
Nakon prijavljivanja na račun, za kreiranje projekta samo kliknite na novi projekt, a zatim dajte naziv projektu.
Korak 3: Kreiranje novog uređaja
nakon kreiranja projekta, sljedeće što trebate učiniti je stvoriti novi uređaj. Dajte naziv uređaja i unesite ID uređaja ili ručno ili putem sistema.
Korak 4: Definiranje parametra uređaja
Dajte parametar uređaja, a zatim odaberite vrstu parametra
Korak 5: Ažuriranje uređaja
Odaberite parametar, a zatim ažurirajte uređaj
Korak 6: Kodiranje
Iz uzoraka kodova odaberite kod esp32, kopirajte ga, a zatim ga zalijepite u arduino IDE i unesite potrebne promjene prema zahtjevu. Dolje sam dao kôd
#include #include
#include
int broj = 0, i, m, j, k;
int t; int outputpin = A0; // ds18b20
int sensorvalue;
//////////////////////////////////////////// SVE IZJAVE za CLOUD ////// //////////////////////////
const char* host = "api.thingsai.io"; // ILI
host = devapi2.thethingscloud.com
const char* post_url = "/devices/deviceData"; // ILI/api/v2/thingscloud2/_table/data_ac
const char* time_server = "baas.thethingscloud.com"; // ovo služi za pretvaranje vremenske oznake
const int httpPort = 80;
const int httpsPort = 443;
const char* server = "api.thingsai.io"; // URL servera
char vremenska oznaka [10];
WiFiMulti WiFiMulti;
// Koristite klasu WiFiClient za kreiranje TCP veza
WiFiClient klijent;
/////////////////////////////////////////// TIMESTAMP CALCULATION funkcija //////// /////////////////////////////////// int GiveMeTimestamp () {unsigned long timeout = millis (); // WiFiClient klijent;
while (client.available () == 0)
{
if (millis () - timeout> 50000)
{
client.stop (); return 0;
}
}
while (client.available ())
{
Linija niza = client.readStringUntil ('\ r'); // indexOf () je funkcija za traženje smthng -a, vraća -1 ako nije pronađeno
int pos = line.indexOf ("\" vremenska oznaka / ""); // potražite "\" vremensku oznaku / "" od početka odgovora i kopirajte sve podatke nakon toga, to će biti vaša vremenska oznaka
ako (pos> = 0)
{
int j = 0;
za (j = 0; j <10; j ++)
{
vremenska oznaka [j] = linija [pos + 12 + j];
}
}
}
} ////////////////////////////////////////////////////////////////////////////////////////////////////////
void setup ()
{
Serial.begin (115200);
kašnjenje (10);
// Počinjemo povezivanjem na WiFi mrežu
WiFiMulti.addAP ("wifi", "pswrd");
Serial.println ();
Serial.println ();
Serial.print ("Sačekajte WiFi …");
while (WiFiMulti.run ()! = WL_CONNECTED)
{
Serial.print (".");
kašnjenje (500);
}
Serial.println ("");
Serial.println ("WiFi povezan");
Serial.println ("IP adresa:"); Serial.println (WiFi.localIP ());
kašnjenje (500);
}
void loop ()
{
int analogValue = analogRead (outputpin);
{///////////////////////////////////////// POŠALJITE UPIT I PRIMITE ODGOVOR /// //////////////////////
sensorvalue = analogRead (A0); // očitavanje analognog ulaznog pina 0
senzorska vrijednost = osjetljiva vrijednost/100;
Serial.print (vrijednost senzora, DEC); // ispisuje pročitanu vrijednost
Serial.print ("\ n"); // ispisuje razmak između brojeva
kašnjenje (1000); // čekajte 100 ms na sljedeće čitanje
Serial.print ("povezivanje sa"); Serial.println (host); // gore definirano:- host = devapi2.thethingscloud.com ili 139.59.26.117
//////////////////////////////////////// TIMESTAMP KOD SNIPPET //////////// /////////////////
Serial.println ("unutra get timestamp / n");
if (! client.connect (time_server, {return; //*-*-*-*-*-*-*-*-*-*}
client.println ("GET/api/vremenska oznaka HTTP/1.1"); // Šta radi ovaj dio, nisam dobio client.println ("Domaćin: baas.thethingscloud.com");
client.println ("Cache-Control: no-cache");
client.println ("Token poštara: ea3c18c6-09ba-d049-ccf3-369a22a284b8");
client.println ();
GiveMeTimestamp (); // pozvat će funkciju koja će od servera dobiti odgovor vremenske oznake Serial.println ("vremenska oznaka primljena");
Serial.println (vremenska oznaka);
Serial.println ("unutar ThingsCloudPosta");
String PostValue = "{" device_id / ": 61121695844, \" slave_id / ": 2";
PostValue = PostValue + ", \" dts / ":" + vremenska oznaka;
PostValue = PostValue +", \" data / ": {" INTENSITY / ":" +\ sensorvalue +"}" +"}";
Serial.println (PostValue);
/ * kreirajte instancu WiFiClientSecure */ WiFiClientSecure klijenta;
Serial.println ("Povežite se sa serverom preko porta 443");
if (! client.connect (server, 443))
{
Serial.println ("Veza nije uspjela!");
}
else
{Serial.println ("Povezano sa serverom!"); / * kreiraj HTTP zahtjev */
client.println ( POST/devices/deviceData
client.println ("Domaćin: api.thingsai.io"); //client.println("Connection: close "); cl
ient.println ("Vrsta sadržaja: aplikacija/json");
client.println ("cache-control: no-cache");
client.println ("Autorizacija: BearereyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqC22j2c7c6c7c7c7c7c7c7c7c7c6c6c6c6c8c8cb8c2c2c2c2r2C8C2C1C1 client.print ("Content-Length:");
client.println (PostValue.length ());
client.println ();
client.println (PostValue); ////////////////////////////////////// POSTAVLJANJE podataka u oblak je završeno i sada preuzmite oblak za odgovor server ////////////////////
Serial.print ("Čekanje na odgovor");
while (! client.available ()) {{100} {101}
kašnjenje (50); //
Serial.print (".");
} / * ako su podaci dostupni, primite i ispišite na terminal * /
while (client.available ())
{
char c = client.read ();
Serial.write (c);
}
/ * ako je server isključen, zaustavite klijenta */
if (! client.connected ())
{
Serial.println ();
Serial.println ("Server je isključen");
client.stop ();
}
} Serial.println ("////////////////////////// KRAJ ////////////////////// /");
kašnjenje (3000); }}
Korak 7: Odabir ploče i Com porta
Od alata odaberite ploču, a zatim odaberite com port
Korak 8: Povezivanje kruga
Kodiranje se vrši, a zatim uspostavite sljedeće veze kao što je dolje navedeno
VEZE:
GND od esp32 do GND senzora LDR
3V3 0f esp32 na Vcc LDR -a
VP esp32 prema A0 LDR -a
Korak 9: Sastavite i otpremite
kompajlirajte i otpremite kôd u esp32, a zatim pročitajte očitanja sa serijskog monitora. To bi pokazalo rezultat poput ovoga
Korak 10: Serijski monitor
Vrijednosti se dobivaju na serijskom monitoru i zatim šalju na THINGSAI IOT Cloud platformu.
Korak 11: Čitanje
Ovo prikazuje vrijednosti dobivene s ploče esp32.
Korak 12: Grafičko predstavljanje
Ovo je grafički prikaz dobivenih vrijednosti. To je kraj vodiča. Nadam se da ste razumeli. Hvala ti