Kazalo:

Detektor gibanja z uporabo oblačne platforme Thingsai.io Iot: 6 korakov
Detektor gibanja z uporabo oblačne platforme Thingsai.io Iot: 6 korakov

Video: Detektor gibanja z uporabo oblačne platforme Thingsai.io Iot: 6 korakov

Video: Detektor gibanja z uporabo oblačne platforme Thingsai.io Iot: 6 korakov
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, November
Anonim
Detektor gibanja z uporabo platforme Thingsai.io Iot v oblaku
Detektor gibanja z uporabo platforme Thingsai.io Iot v oblaku

V tej vadnici bom razložil zaznavanje gibanja s senzorjem PIR in Esp32 skupaj z oblačno platformo IOT Thingai.io

1. korak: Komponente

Sestavni deli
Sestavni deli
Sestavni deli
Sestavni deli

KOMPONENTE HARDVERA;

1. razvojni odbor esp32

2. Senzor PIR

3. Mostične žice

PROGRAMSKA OPREMA:

1. Arduino IDE

2. Račun Thingsai.io

2. korak: POVEZAVE

POVEZAVE
POVEZAVE

Povezave so mirne in preproste.

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

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

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

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

3. korak: KODIRANJE

To kodo prilepite v svoj Arduino IDE z nekaj posodobitvami, vaš senzor gibanja bo brezhibno dal izhod.

#vključi

#vključi

#vključi

int štetje = 0, i, m, j, k;

int t, t1, t2, t3;

int pin = 22;

////////////////////////////////////////// VSE IZJAVE za OBLAK ////// //////////////////////////

const char* host = "api.thingsai.io"; // ALI gostitelj = devapi2.thethingscloud.com

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

const char* time_server = "baas.thethingscloud.com"; // to je za pretvorbo časovnega žiga

const int httpPort = 80;

const int httpsPort = 443;

const char* server = "api.thingsai.io"; // URL strežnika

časovni žig char [10];

WiFiMulti WiFiMulti;

// Uporabite razred WiFiClient za ustvarjanje povezav TCP

Odjemalec WiFiClient;

////////////////////////////////////////// IZRAČUN TIMESTAMP funkcije //////// /////////////////////////////////

int GiveMeTimestamp ()

{

dolga časovna omejitev brez podpisa = millis ();

// odjemalec WiFiClient;

medtem ko (client.available () == 0)

{

if (millis () - časovna omejitev> 50000)

{

client.stop ();

vrnitev 0;

}

}

medtem ko (client.available ())

{

Vrstna vrstica = client.readStringUntil ('\ r'); // indexOf () je funkcija za iskanje smthng, vrne -1, če ni najdena

int pos = line.indexOf ("\" časovni žig / ""); // poiščite "\" časovni žig / "" od začetka odgovora in kopirajte vse podatke po tem, to bo vaš časovni žig

če (pos> = 0)

{

int j = 0;

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

{

časovni žig [j] = vrstica [pos + 12 + j];

}

}

}

}

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

void setup ()

{

Serial.begin (115200);

zamuda (10);

pinMode (pin, INPUT);

// Začnemo s povezavo v omrežje WiFi

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

Serial.println ();

Serial.println ();

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

medtem ko (WiFiMulti.run ()! = WL_CONNECTED) {

Serial.print (".");

zamuda (500);

}

Serial.println ("");

Serial.println ("WiFi povezan");

Serial.println ("naslov IP:");

Serial.println (WiFi.localIP ());

zamuda (500);

}

void loop ()

{

int analogValue = analogRead (outputpin);

{

///////////////////////////////////////// POŠLJI VPRAŠANJE IN PREJMI ODGOVOR //// /////////////////////

{

bool isDetected = digitalRead (pin);

if (isDetected) {

Serial.println ("Zaznana prisotnost");

}

zamuda (500);

}

Serial.print ("povezovanje z");

Serial.println (gostitelj); // definirano navzgor:- host = devapi2.thethingscloud.com ali 139.59.26.117

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

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

if (! client.connect (časovni strežnik, {

vrnitev; //*-*-*-*-*-*-*-*-*-*

}

client.println ("GET/api/časovni žig HTTP/1.1"); // Kaj počne ta del, nisem dojel

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

client.println ("Nadzor predpomnilnika: brez predpomnilnika");

client.println ("Žeton poštarja: ea3c18c6-09ba-d049-ccf3-369a22a284b8");

client.println ();

GiveMeTimestamp (); // poklical bo funkcijo, ki bo od strežnika prejela odziv časovnega žiga

Serial.println ("prejet časovni žig");

Serial.println (časovni žig);

Serial.println ("znotraj ThingsCloudPost");

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

PostValue = PostValue + ", \" dts / ":" + časovni žig;

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

Serial.println (PostValue);

/ * ustvarite primerek WiFiClientSecure */

Odjemalec WiFiClientSecure;

Serial.println ("Poveži se s strežnikom prek vrat 443");

if (! client.connect (strežnik, 443)) {

Serial.println ("Povezava ni uspela!");

} drugo {

Serial.println ("Povezano s strežnikom!");

/ * ustvari zahtevo HTTP */

client.println ( POST/devices/deviceData

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

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

client.println ("Vrsta vsebine: aplikacija/json");

client.println ("nadzor predpomnilnika: brez predpomnilnika");

client.println ( Pooblastilo: prinašalec eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqC22x2x7x2c7x2c7x2c7x2x7x7x7x7x7x7x7x7x7xxxxxxxxxx)

client.print ("Content-Length:");

client.println (PostValue.length ());

client.println ();

client.println (PostValue);

////////////////////////////////////// Objavljanje podatkov v oblak je končano in zdaj dobite oblak obrazca za odziv strežnik ////////////////////

Serial.print ("Čakanje na odgovor");

medtem ko (! client.available ()) {

zamuda (50); //

Serial.print (".");

}

/ * če so na voljo podatki, potem prenesite in natisnite na terminal */

medtem ko (client.available ()) {

char c = client.read ();

Serial.write (c);

}

/ * če je strežnik odklopljen, ustavite odjemalca */

if (! client.connected ()) {

Serial.println ();

Serial.println ("Strežnik odklopljen"); javascript:;

client.stop ();

}

}

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

zamuda (3000);

}

}

4. korak: IZHOD

IZHOD
IZHOD

To je stolpčni prikaz vrednosti, prebranih s senzorja v razdelku thingsai, io v oblaku,

5. korak: Graf

Graf
Graf

To je grafični prikaz vrednosti iz senzorja. Iz zgornjega grafa lahko analiziramo uporabo senzorja. Hvala vam

Priporočena: