Kazalo:
- 1. korak: Ustvarjanje in prijava v platformo THINGSIO
- 2. korak: Ustvarjanje novega projekta
- 3. korak: Ustvarjanje nove naprave
- 4. korak: Določanje parametra naprave
- 5. korak: Posodobitev naprave
- 6. korak: Kodiranje
- Korak 7: Izbira vmesnika in vmesnika Com
- 8. korak: Povezave s tokokrogom
- 9. korak: Prenesite in naložite
- 10. korak: Serijski monitor
- 11. korak: Odčitki
- 12. korak: grafični prikaz
- 13. korak:
2025 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2025-01-13 06:58
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
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
Ko se prijavite v račun, če želite ustvariti projekt, kliknite nov projekt in nato ime projekta.
3. korak: 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
Podajte parameter naprave in nato izberite vrsto parametra
5. korak: Posodobitev naprave
Izberite parameter in nato posodobite napravo
6. korak: 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
Med orodji izberite ploščo in nato izberite vrata com
8. korak: Povezave s tokokrogom
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 kodo v esp32 in nato preberite odčitke iz serijskega monitorja. To bi pokazalo nekaj takega
10. korak: Serijski monitor
Vrednosti se pridobijo na serijskem monitorju in nato pošljejo v platformo THINGSAI IOT Cloud.
11. korak: Odčitki
To prikazuje vrednosti, pridobljene s plošče esp32.
12. korak: grafični prikaz
To je grafični prikaz pridobljenih vrednosti. To je konec vadnice. Upam, da ste razumeli. Hvala vam