Sisukord:
Video: Liikumisandur, kasutades Thingsai.io Iot pilvplatvormi: 6 sammu
2025 Autor: John Day | [email protected]. Viimati modifitseeritud: 2025-01-13 06:57
Selles õpetuses selgitan liikumistuvastust, kasutades PIR -andurit ja Esp32 koos IOT pilvplatvormiga Thingai.io
Samm: komponendid
RIISTVARA KOMPONENDID;
1. esp32 Arendusamet
2. PIR -andur
3. Jumper Traadid
TARKVARA:
1. Arduino IDE
2. Thingsai.io konto
2. samm: ÜHENDUSED
Ühendused on vaikselt lihtsad.
PIR PINS ------------ ESP32 PINS
VCC ------------------- 3V3 esp32-l
GND ------------------ GND esp32-s
OUT ------------------- D22 esp32-l
3. samm: KOODIMINE
Kleepige see kood mõne ajakohastamisega oma Arduino IDE -sse, teie liikumisandur annab väljundi veatult.
#kaasake
#kaasake
#kaasake
int arv = 0, i, m, j, k;
int t, t1, t2, t3;
int pin = 22;
/////////////////////////////////////////////////- /////////////////////////
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 ()
{
allkirjastamata pikk ajalõpp = 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);
pinMode (pin, INPUT);
// Alustame WiFi -võrguga ühenduse loomisest
WiFiMulti.addAP ("wifi_nimi", "Wifi_parool");
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);
{
////////////////////// ////////////////////
{
bool isDetected = digitalRead (pin);
if (isDetected) {
Serial.println ("Kohalolek tuvastatud");
}
viivitus (500);
}
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 aru
client.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 / ": 61121695839, \" orja_id / ": 2";
PostValue = PostValue + ", \" dts / ":" + ajatempel;
PostValue = PostValue +", \" andmed / ": {" PIR / ":" +pin +"}" +"}";
Serial.println (PostValue);
/ * looge WiFiClientSecure'i eksemplar */
WiFiClientSecure klient;
Serial.println ("Ühenda serveriga pordi 443 kaudu");
if (! client.connect (server, 443)) {
Serial.println ("Ühendus ebaõnnestus!");
} muud {
Serial.println ("Ühendatud serveriga!");
/ * loo HTTP päring */
client.println ( POST/seadmed/seadmeandmed
client.println ("Host: api.thingsai.io");
//client.println("Connection: close ");
client.println ("Sisu tüüp: rakendus/json");
client.println ("cache-control: no-cache");
client.println ( Autoriseerimine: kandja eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqs22k2k2kvk
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 */
while (client.available ()) {
char c = klient.lugemine ();
Serial.write (c);
}
/ * kui server on lahti ühendatud, peata klient */
if (! client.connected ()) {
Serial.println ();
Serial.println ("Server on lahti ühendatud"); javascript:;
client.stop ();
}
}
Serial.println ("////////////////////// LÕPP //////////////////// ");
viivitus (3000);
}
}
4. samm: VÄLJUND
See on tulpdiagramm asjade, io pilvplatvormi andurilt loetud väärtuste kohta,
Samm: graafik
See on anduri väärtuste graafiline esitus. Ülaltoodud graafiku põhjal saame analüüsida anduri rakendust. Aitäh