Bewegingsdetektor met behulp van Thingsai.io Iot Cloud Platform: 6 stappe
Bewegingsdetektor met behulp van Thingsai.io Iot Cloud Platform: 6 stappe
Bewegingsdetektor met behulp van Thingsai.io Iot Cloud Platform
Bewegingsdetektor met behulp van Thingsai.io Iot Cloud Platform

In hierdie tutoriaal gaan ek verduidelik oor bewegingsopsporing met behulp van 'n PIR -sensor en Esp32 saam met 'n IOT -wolkplatform Thingai.io

Stap 1: Komponente

Komponente
Komponente
Komponente
Komponente

HARDWARE KOMPONENTE;

1.esp32 Ontwikkelingsraad

2. PIR -sensor

3. Jumper Wires

SAGTEWARE:

1. Arduino IDE

2. Thingsai.io -rekening

Stap 2: VERBINDINGS

VERBINDINGS
VERBINDINGS

Die verbindings is stil eenvoudig.

PIR PINS ------------ ESP32 PINS

VCC ------------------- 3V3 op esp32

GND ------------------ GND op esp32

UIT ------------------- D22 op esp32

Stap 3: KODERING

Plak hierdie kode met 'n bietjie opdatering in u Arduino IDE; u bewegingsensor gee die uitvoer foutloos.

#insluit

#insluit

#insluit

int telling = 0, i, m, j, k;

int t, t1, t2, t3;

int pin = 22;

////////////////////////////////////// ////////////////////////////

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 ()

{

langtermyn ongetekend = 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);

pinMode (pen, INVOER);

// Ons begin deur aan te sluit op 'n WiFi -netwerk

WiFiMulti.addAP ("wifi_name", "Wifi_password");

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 //// //////////////////////

{

bool isDetected = digitalRead (pin);

as (isDetected) {

Serial.println ("Aanwesigheid opgespoor");

}

vertraging (500);

}

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, het ek nie gekry nie

client.println ("Gasheer: baas.thethingscloud.com");

client.println ("Cache-beheer: geen cache");

client.println ("Postman-Token: ea3c18c6-09ba-d049-ccf3-369a22a284b8");

client.println ();

GiveMeTimestamp (); // dit bel die funksie wat die tydstempelreaksie van die bediener af kry

Serial.println ("tydstempel ontvang");

Serial.println (tydstempel);

Serial.println ("binne ThingsCloudPost");

String PostValue = "{" device_id / ": 61121695839, \" slave_id / ": 2";

PostValue = PostValue + ", \" dts / ":" + tydstempel;

PostValue = PostValue +", \" data / ": {" PIR / ":" +pin +"}" +"}";

Serial.println (PostValue);

/ * skep 'n instansie 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 ");

client.println ("Inhoudstipe: toepassing/json");

client.println ("cache-control: no-cache");

client.println ("Magtiging: draer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. 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 ("bediener ontkoppel"); javascript:;

client.stop ();

}

}

Serial.println ("////////////////////// THE END ///////////////////// ");

vertraging (3000);

}

}

Stap 4: UITSET

UITSET
UITSET

Dit is die staafgrafiek voorstelling van die waardes wat deur die sensor gelees word in die thingsai, io wolkplatform,

Stap 5: Grafiek

Grafiek
Grafiek

Dit is die grafiese voorstelling van die waardes van die sensor. Uit die grafiek hierbo kan ons die toepassing van die sensor ontleed. Dankie

Aanbeveel: