Sisukord:
- Samm: THINGSIO platvormi loomine ja sisse logimine
- 2. samm: uue projekti loomine
- Samm: uue seadme loomine
- 4. samm: seadme parameetri määramine
- Samm: seadme värskendamine
- 6. samm: kodeerimine
- 7. samm: juhatuse ja Com -pordi valik
- 8. samm: vooluahela ühendused
- 9. samm: kompileerimine ja üleslaadimine
- Samm 10: jadamonitor
- Samm 11: Näidud
- 12. samm: graafiline esitus
- 13. samm:
2025 Autor: John Day | [email protected]. Viimati modifitseeritud: 2025-01-13 06:57
HEI….. täna õpime valguse intensiivsuse mõõtmist ja väärtuste postitamist pilveplatvormile THINGSAI IOT ESP32 abil.
Nõuded selle projekti teostamiseks on
1. ESP32 arendusnõukogu (olen kasutanud ESP32 DEVKIT V1)
2. LDR -andur
3. Jumper Traadid
4. Konto THINGSAI IOT PLATFORMis
Samm: THINGSIO platvormi loomine ja sisse logimine
Logige sisse THINGS AI kontole. Kui olete uus, registreeruge kontole, vajutades registreerimisnuppu ja täitke kõik volikirjad. Teie konto luuakse ja seejärel saate pilveplatvormil töötada ning oma kohandatud projekti luua
2. samm: uue projekti loomine
Pärast kontole sisselogimist klõpsake projekti loomiseks lihtsalt uuel projektil ja andke seejärel projekti nimi.
Samm: uue seadme loomine
pärast projekti loomist peate järgmise seadme looma. Andke seadme nimi ja sisestage seadme ID kas käsitsi või loodud süsteemiga.
4. samm: seadme parameetri määramine
Andke seadme parameeter ja seejärel valige parameetri tüüp
Samm: seadme värskendamine
Valige parameeter ja seejärel värskendage seadet
6. samm: kodeerimine
Näidiskoodide hulgast valige esp32 kood, kopeerige see ja kleepige see seejärel arduino IDE -sse ning tehke vajalikud muudatused vastavalt nõuetele. Andsin allpool oleva koodi
#kaasama #kaasama
#kaasake
int arv = 0, i, m, j, k;
int t; int väljundpin = A0; // ds18b20
int sensorvalue;
/////////////////////////////////////////////////- /////////////////////////
const char* host = "api.thingsai.io"; // VÕI
host = devapi2.thethingscloud.com
const char* post_url = "/devices/deviceData"; // VÕI/api/v2/thingscloud2/_table/data_ac
const char* time_server = "baas.thethingscloud.com"; // see on ajatempli teisendamiseks
const int httpPort = 80;
const int httpsPort = 443;
const char* server = "api.thingsai.io"; // Serveri URL
sümboli ajatempel [10];
WiFiMulti WiFiMulti;
// Kasutage WiFi -kliendi klassi TCP -ühenduste loomiseks
WiFiClient klient;
///////////////////////////////////////////////////////////////////// AJATAMPI ARVUTAMISE funktsioon //////// /////////////////////////////// int GiveMeTimestamp () {unsigned long timeout = millis (); // WiFiClient klient;
samas (client.available () == 0)
{
kui (millis () - ajalõpp> 50000)
{
client.stop (); tagasitulek 0;
}
}
samas (client.available ())
{
Stringirida = client.readStringUntil ('\ r'); // indexOf () on funktsioon smthng otsimiseks, tagastab -1, kui seda ei leita
int pos = line.indexOf ("\" ajatempel / ""); // otsi vastuse algusest "\" ajatempel / "" ja kopeeri pärast seda kõik andmed, see on sinu ajatempel
kui (pos> = 0)
{
int j = 0;
jaoks (j = 0; j <10; j ++)
{
ajatempel [j] = rida [pos + 12 + j];
}
}
}
} ////////////////////////////////////////////////////////////////////////////////////////////////////////
tühine seadistus ()
{
Seriaalne algus (115200);
viivitus (10);
// Alustame WiFi -võrguga ühenduse loomisest
WiFiMulti.addAP ("wifi", "pswrd");
Serial.println ();
Serial.println ();
Serial.print ("Oota WiFi …");
samas (WiFiMulti.run ()! = WL_CONNECTED)
{
Seeria.print (".");
viivitus (500);
}
Serial.println ("");
Serial.println ("WiFi ühendatud");
Serial.println ("IP -aadress:"); Serial.println (WiFi.localIP ());
viivitus (500);
}
tühine tsükkel ()
{
int analogValue = analogRead (outputpin);
{///////////////////////////////////////////////////// SAADA KÜSIMUST JA VASTA VASTUS /// /////////////////////
sensorvalue = analogRead (A0); // loe analoogsisendi pin 0
sensorvalue = sensorvalue/100;
Serial.print (sensorvalue, DEC); // prindib loetud väärtuse
Serial.print ("\ n"); // prindib tühiku numbrite vahele
viivitus (1000); // oodake järgmist lugemist 100 ms
Serial.print ("ühenduse loomine"); Serial.println (host); // määratletud tagurpidi:- host = devapi2.thethingscloud.com või 139.59.26.117
///////////////////////////////////////////////////////////////// AJATAMPI KOODI SIPPET ////////// ///////////////
Serial.println ("inside get timestamp / n");
if (! client.connect (time_server, {tagasipöördumine; //*-*-*-*-*-*-*-*-*-*}
client.println ("GET/api/ajatempel HTTP/1.1"); // Mida see osa teeb, ma ei saanud klienti.println ("Host: baas.thethingscloud.com");
client.println ("Vahemälu kontroll: vahemälu puudub");
client.println ("Postimees-märk: ea3c18c6-09ba-d049-ccf3-369a22a284b8");
klient.println ();
GiveMeTimestamp (); // see kutsub funktsiooni, mis saab serverilt ajatempli vastuse Serial.println ("ajatempel saadud");
Serial.println (ajatempel);
Serial.println ("sees ThingsCloudPost");
String PostValue = "{" seadme_id / ": 61121695844, \" orja_id / ": 2";
PostValue = PostValue + ", \" dts / ":" + ajatempel;
PostValue = PostValue +", \" andmed / ": {" INTENTSUS / ":" +\ sensorvalue +"}" +"}";
Serial.println (PostValue);
/ * luua eksemplar WiFiClientSecure */ WiFiClientSecure klient;
Serial.println ("Ühenda serveriga pordi 443 kaudu");
if (! client.connect (server, 443))
{
Serial.println ("Ühendus ebaõnnestus!");
}
muidu
{Serial.println ("Ühendatud serveriga!"); / * loo HTTP päring */
client.println ( POST/seadmed/seadmeandmed
client.println ("Host: api.thingsai.io"); //client.println("Connection: close "); cl
ient.println ("Sisu tüüp: rakendus/json");
client.println ("cache-control: no-cache");
client.println ("Autoriseerimine: BearereyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqC2P2jkvk5kvk client.print ("Sisu-pikkus:");
klient.println (PostValue.length ());
klient.println ();
klient.println (PostValue); ///////////////////////////////////////////////// Andmete postitamine pilve on tehtud ja nüüd saate vastusvormi pilv server ////////////////////
Serial.print ("Vastust oodates");
while (! client.available ()) {
viivitus (50); //
Seeria.print (".");
} / * kui andmed on saadaval, siis võtke vastu ja printige terminali * /
samas (client.available ())
{
char c = klient.lugemine ();
Serial.write (c);
}
/ * kui server on lahti ühendatud, peata klient */
kui (! klient.ühendatud ())
{
Serial.println ();
Serial.println ("Server on lahti ühendatud");
client.stop ();
}
} Serial.println ("////////////////////// LÕPP /////////////////// /");
viivitus (3000); }}
7. samm: juhatuse ja Com -pordi valik
Tööriistadest valige tahvel ja seejärel com -port
8. samm: vooluahela ühendused
Kodeerimine toimub, seejärel tehke järgmised ühendused, nagu allpool mainitud
ÜHENDUSED:
GND esp32 kuni GND LDR andurilt
3V3 0f esp32 LDR -i Vcc -le
Esp32 VP LDR -i A0 -le
9. samm: kompileerimine ja üleslaadimine
kompileerige ja laadige kood esp32 -sse ning seejärel lugege jadamonitorilt näidud. See näitaks midagi sellist
Samm 10: jadamonitor
Väärtused saadakse jadamonitorilt ja seejärel saadetakse need THINGSAI IOT Cloud platvormile.
Samm 11: Näidud
See näitab esp32 plaadilt saadud väärtusi.
12. samm: graafiline esitus
See on saadud väärtuste graafiline esitus. See on õpetuse lõpp. Loodetavasti said aru. Aitäh