Obsah:

Detektor pohybu využívající cloudovou platformu Thingsai.io Iot: 6 kroků
Detektor pohybu využívající cloudovou platformu Thingsai.io Iot: 6 kroků

Video: Detektor pohybu využívající cloudovou platformu Thingsai.io Iot: 6 kroků

Video: Detektor pohybu využívající cloudovou platformu Thingsai.io Iot: 6 kroků
Video: REIMAGINE - A Canon Product Launch 2024, Listopad
Anonim
Detektor pohybu využívající cloudovou platformu Thingsai.io Iot
Detektor pohybu využívající cloudovou platformu Thingsai.io Iot

V tomto tutoriálu vysvětlím detekci pohybu pomocí PIR senzoru a Esp32 spolu s cloudovou platformou IOT Thingai.io

Krok 1: Součásti

Komponenty
Komponenty
Komponenty
Komponenty

HARDWAROVÉ KOMPONENTY;

1. Vývojová rada esp32

2. Čidlo PIR

3. Propojovací vodiče

SOFTWARE:

1. Arduino IDE

2. Účet Thingsai.io

Krok 2: PŘIPOJENÍ

PŘIPOJENÍ
PŘIPOJENÍ

Spojení jsou tichá jednoduchá.

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

VCC ------------------- 3V3 na esp32

GND ------------------ GND na esp32

OUT ------------------- D22 na esp32

Krok 3: KÓDOVÁNÍ

Vložte tento kód do svého Arduino IDE s nějakou aktualizací, váš pohybový senzor poskytne výstup bezchybně.

#zahrnout

#zahrnout

#zahrnout

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

int t, t1, t2, t3;

int pin = 22;

//////////////////////////////////////////// VŠE PROHLÁŠENÍ PRO CLOUD ////// //////////////////////////

const char* host = "api.thingsai.io"; // NEBO hostitel = devapi2.thethingscloud.com

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

const char* time_server = "baas.thethingscloud.com"; // toto má převést časové razítko

const int httpPort = 80;

const int httpsPort = 443;

const char* server = "api.thingsai.io"; // URL serveru

časové razítko char [10];

WiFiMulti WiFiMulti;

// Pomocí třídy WiFiClient vytvořte připojení TCP

Klient WiFiClient;

///////////////////////////////////////////// VÝPOČET ČASOVÉHO RÁMCE //////// ///////////////////////////////////

int GiveMeTimestamp ()

{

nepodepsaný dlouhý časový limit = milis ();

// klient WiFiClient;

while (client.available () == 0)

{

if (millis () - timeout> 50 000)

{

client.stop ();

návrat 0;

}

}

while (client.available ())

{

Řetězec řetězce = client.readStringUntil ('\ r'); // indexOf () je funkce pro hledání něčeho, vrací -1, pokud není nalezena

int pos = line.indexOf ("\" časové razítko / ""); // vyhledejte "\" časové razítko / "" od začátku odpovědi a poté zkopírujte všechna data, bude to vaše časové razítko

if (poz> = 0)

{

int j = 0;

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

{

časové razítko [j] = řádek [pos + 12 + j];

}

}

}

}

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

neplatné nastavení ()

{

Serial.begin (115200);

zpoždění (10);

pinMode (pin, INPUT);

// Začneme připojením k WiFi síti

WiFiMulti.addAP („název_wifi“, „heslo_Wifi“);

Serial.println ();

Serial.println ();

Serial.print ("Počkejte na WiFi …");

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

Serial.print (".");

zpoždění (500);

}

Serial.println ("");

Serial.println ("WiFi připojeno");

Serial.println ("IP adresa:");

Serial.println (WiFi.localIP ());

zpoždění (500);

}

prázdná smyčka ()

{

int analogValue = analogRead (outputpin);

{

///////////////////////////////////////////// ODESLAT DOTAZ A ZÍSKAT ODPOVĚĎ //// /////////////////////

{

bool isDetected = digitalRead (pin);

if (isDetected) {

Serial.println ("Přítomnost detekována");

}

zpoždění (500);

}

Serial.print („připojení k“);

Serial.println (hostitel); // definováno vzhůru nohama:- host = devapi2.thethingscloud.com nebo 139.59.26.117

/////////////////////////////////////////// TIMESTAMP CODE SNIPPET //////////// /////////////////

Serial.println ("uvnitř získat časové razítko / n");

if (! client.connect (time_server, {

vrátit se; //*-*-*-*-*-*-*-*-*-*

}

client.println ("GET/api/timestamp HTTP/1.1"); // Co tato část dělá, jsem nepochopil

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

client.println ("Řízení mezipaměti: bez mezipaměti");

client.println ("Pošťák-Token: ea3c18c6-09ba-d049-ccf3-369a22a284b8");

client.println ();

GiveMeTimestamp (); // zavolá funkci, která získá odpověď časového razítka ze serveru

Serial.println ("časové razítko přijato");

Serial.println (časové razítko);

Serial.println („uvnitř ThingsCloudPost“);

Řetězec PostValue = "{" device_id / ": 61121695839, \" slave_id / ": 2";

PostValue = PostValue + ", \" dts / ":" + časové razítko;

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

Serial.println (PostValue);

/ * vytvořit instanci WiFiClientSecure */

WiFiClientSecure klient;

Serial.println ("Připojit k serveru přes port 443");

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

Serial.println ("Připojení se nezdařilo!");

} else {

Serial.println („Připojeno k serveru!“);

/ * vytvořit požadavek HTTP */

client.println ( POST/zařízení/data zařízení

client.println ("Host: api.thingsai.io");

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

client.println ("Typ obsahu: aplikace/json");

client.println ("ovládání mezipaměti: bez mezipaměti");

client.println ("Autorizace: Nositel eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqC2PNTkxs"

client.print ("Délka obsahu:");

client.println (PostValue.length ());

client.println ();

client.println (PostValue);

////////////////////////////////////// VYDÁVÁNÍ dat do cloudu je hotové a nyní získejte odpověď v cloudu server ////////////////////

Serial.print ("Čekání na odpověď");

while (! client.available ()) {

zpoždění (50); //

Serial.print (".");

}

/ * pokud jsou data k dispozici, přijměte je a vytiskněte na terminálu */

while (client.available ()) {

char c = client.read ();

Serial.write (c);

}

/ * pokud se server odpojí, zastavte klienta */

if (! client.connected ()) {

Serial.println ();

Serial.println ("Server odpojen"); javascript:;

client.stop ();

}

}

Serial.println ("////////////////////////// KONEC /////////////////////////// ");

zpoždění (3000);

}

}

Krok 4: VÝSTUP

VÝSTUP
VÝSTUP

Toto je sloupcový graf znázornění hodnot načtených ze senzoru v cloudové platformě thingsai, io,

Krok 5: Graf

Graf
Graf

Toto je grafické znázornění hodnot ze snímače. Z výše uvedeného grafu můžeme analyzovat aplikaci senzoru. Děkuji

Doporučuje: