INHOUDSOPGAWE:

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

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

Video: Bewegingsdetektor met behulp van Thingsai.io Iot Cloud Platform: 6 stappe
Video: Will #chatgpt replace programming jobs? 2024, November
Anonim
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: