Cuprins:

Detector de mișcare folosind Thingsai.io Iot Cloud Platform: 6 pași
Detector de mișcare folosind Thingsai.io Iot Cloud Platform: 6 pași

Video: Detector de mișcare folosind Thingsai.io Iot Cloud Platform: 6 pași

Video: Detector de mișcare folosind Thingsai.io Iot Cloud Platform: 6 pași
Video: Cum să monitorizați și să controlați ESP32 de oriunde în lume cu RemoteXY IoT Cloud 2024, Noiembrie
Anonim
Detector de mișcare folosind Thingsai.io Iot Cloud Platform
Detector de mișcare folosind Thingsai.io Iot Cloud Platform

În acest tutorial voi explica despre detectarea mișcării folosind un senzor PIR și Esp32 împreună cu o platformă cloud IOT Thingai.io

Pasul 1: Componente

Componente
Componente
Componente
Componente

COMPONENTE HARDWARE;

1. Comitetul de dezvoltare esp32

2. Senzor PIR

3. Sârme jumper

SOFTWARE:

1. IDE Arduino

2. Contul Thingsai.io

Pasul 2: CONEXIUNI

CONEXIUNI
CONEXIUNI

Conexiunile sunt liniștite simple.

PINI PIR ------------ PINI ESP32

VCC ------------------- 3V3 pe esp32

GND ------------------ GND pe esp32

OUT ------------------- D22 pe esp32

Pasul 3: CODIFICARE

Inserați acest cod în ID-ul dvs. Arduino cu o actualizare, senzorul de mișcare va oferi ieșirea fără cusur.

#include

#include

#include

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

int t, t1, t2, t3;

pin int = 22;

////////////////////////////////////////// TOATE DECLARAȚIILE pentru CLOUD ////// //////////////////////////

const char * host = "api.thingsai.io"; // SAU gazdă = devapi2.thethingscloud.com

const char * post_url = "/ devices / deviceData"; // SAU / api / v2 / thingscloud2 / _table / data_ac

const char * time_server = "baas.thethingscloud.com"; // aceasta este pentru a converti marca de timp

const int httpPort = 80;

const int httpsPort = 443;

const char * server = "api.thingsai.io"; // Adresa URL a serverului

timestamp char [10];

WiFiMulti WiFiMulti;

// Utilizați clasa WiFiClient pentru a crea conexiuni TCP

Client WiFiClient;

///////////////////////////////////////// TIMESTAMP CALCULATION function //////// /////////////////////////////////

int GiveMeTimestamp ()

{

timeout long unsigned = millis ();

// client WiFiClient;

while (client.available () == 0)

{

if (milis () - timeout> 50000)

{

client.stop ();

retur 0;

}

}

while (client.available ())

{

String line = client.readStringUntil ('\ r'); // indexOf () este o funcție pentru a căuta smthng, returnează -1 dacă nu este găsit

int pos = line.indexOf ("\" timestamp / ""); // căutați "\" timestamp / "" de la începutul răspunsului și copiați toate datele după aceea, va fi marca dvs. de timp

if (pos> = 0)

{

int j = 0;

pentru (j = 0; j <10; j ++)

{

timestamp [j] = line [pos + 12 + j];

}

}

}

}

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

configurare nulă ()

{

Serial.begin (115200);

întârziere (10);

pinMode (pin, INPUT);

// Începem prin conectarea la o rețea WiFi

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

Serial.println ();

Serial.println ();

Serial.print („Așteptați WiFi …”);

while (WiFiMulti.run ()! = WL_CONNECTED) {

Serial.print (".");

întârziere (500);

}

Serial.println ("");

Serial.println ("WiFi conectat");

Serial.println ("adresa IP:");

Serial.println (WiFi.localIP ());

întârziere (500);

}

bucla nulă ()

{

int analogValue = analogRead (outputpin);

{

///////////////////////////////////////// TRIMITE CERERE ȘI PRIMI RĂSPUNSUL //// ////////////////////

{

bool isDetected = digitalRead (pin);

if (isDetected) {

Serial.println („Prezență detectată”);

}

întârziere (500);

}

Serial.print („conectarea la”);

Serial.println (gazdă); // definită invers: - host = devapi2.thethingscloud.com sau 139.59.26.117

///////////////////////////////////// COD TIMESTAMP SNIPPET ////////// ///////////////

Serial.println ("inside get timestamp / n");

if (! client.connect (time_server, {

întoarcere; // * - * - * - * - * - * - * - * - * - *

}

client.println ("GET / api / timestamp HTTP / 1.1"); // Ce face această parte, nu am primit

client.println („Gazdă: baas.thethingscloud.com”);

client.println ("Cache-Control: no-cache");

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

client.println ();

GiveMeTimestamp (); // va apela funcția care va primi răspunsul de timestamp de la server

Serial.println ("timestamp primit");

Serial.println (timestamp);

Serial.println („în interiorul ThingsCloudPost”);

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

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

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

Serial.println (PostValue);

/ * creați o instanță WiFiClientSecure * /

Client WiFiClientSecure;

Serial.println („Conectare la server prin portul 443”);

if (! client.connect (server, 443)) {

Serial.println ("Conexiunea a eșuat!");

} altceva {

Serial.println ("Conectat la server!");

/ * creați o solicitare HTTP * /

client.println ("POST / dispozitive / dispozitivDate HTTP / 1.1");

client.println ("Gazdă: api.thingsai.io");

//client.println("Connection: close ");

client.println ("Content-Type: application / json");

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

client.println („Autorizație: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqC2KT5XA7_K6_7)

client.print („Lungime conținut:”);

client.println (PostValue.length ());

client.println ();

client.println (PostValue);

//////////////////////////////////// PUBLICAREA datelor pe cloud este gata și acum obțineți formularul de răspuns cloud Server//////////////////

Serial.print („Se așteaptă răspunsul”);

while (! client.available ()) {

întârziere (50); //

Serial.print (".");

}

/ * dacă datele sunt disponibile, atunci primiți și imprimați la Terminal * /

while (client.available ()) {

char c = client.read ();

Serial.write (c);

}

/ * dacă serverul s-a deconectat, opriți clientul * /

if (! client.connected ()) {

Serial.println ();

Serial.println („Server deconectat”); javascript:;

client.stop ();

}

}

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

întârziere (3000);

}

}

Pasul 4: IEȘIRE

IEȘIRE
IEȘIRE

Aceasta este reprezentarea grafică cu bare a valorilor citite de la senzor în platforma Things, io cloud,

Pasul 5: Grafic

Grafic
Grafic

Aceasta este reprezentarea grafică a valorilor de la senzor. Din graficul de mai sus putem analiza aplicația senzorului. Mulțumesc

Recomandat: