Turinys:

Judesio detektorius naudojant „Thingsai.io Iot“debesies platformą: 6 žingsniai
Judesio detektorius naudojant „Thingsai.io Iot“debesies platformą: 6 žingsniai

Video: Judesio detektorius naudojant „Thingsai.io Iot“debesies platformą: 6 žingsniai

Video: Judesio detektorius naudojant „Thingsai.io Iot“debesies platformą: 6 žingsniai
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Lapkritis
Anonim
Judesio detektorius naudojant „Thingsai.io Iot Cloud Platform“
Judesio detektorius naudojant „Thingsai.io Iot Cloud Platform“

Šioje pamokoje aš paaiškinsiu apie judesio aptikimą naudojant PIR jutiklį ir Esp32 kartu su IOT debesų platforma Thingai.io

1 žingsnis: komponentai

Komponentai
Komponentai
Komponentai
Komponentai

Aparatūros komponentai;

1. esp32 plėtros valdyba

2. PIR jutiklis

3. Trumpieji laidai

PROGRAMINĖ ĮRANGA:

1. „Arduino IDE“

2. „Thingsai.io“paskyra

2 žingsnis: JUNGTYS

JUNGTYS
JUNGTYS

Ryšiai yra tylūs, paprasti.

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

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

GND ------------------ GND esp32

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

3 žingsnis: KODAVIMAS

Įklijuokite šį kodą į „Arduino IDE“, šiek tiek atnaujindami, jūsų judesio jutiklis nepriekaištingai duos išvestį.

#įtraukti

#įtraukti

#įtraukti

int skaičius = 0, i, m, j, k;

int t, t1, t2, t3;

int pin = 22;

//////////////////////////////////////////////////////////////////// VISI DEKLARACIJOS DĖMESIAMS ////// /////////////////////////

const char* host = "api.thingsai.io"; // ARBA šeimininkas = devapi2.thethingscloud.com

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

const char* time_server = "baas.thethingscloud.com"; // tai yra laiko žymos konvertavimas

const int httpPort = 80;

const int httpsPort = 443;

const char* serveris = "api.thingsai.io"; // Serverio URL

char laiko žyma [10];

WiFiMulti WiFiMulti;

// Naudokite „WiFiClient“klasę, kad sukurtumėte TCP ryšius

„WiFiClient“klientas;

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

int GiveMeTimestamp ()

{

unsigned long timeout = milis ();

// „WiFiClient“klientas;

tuo tarpu (client.available () == 0)

{

jei (milis () - skirtasis laikas> 50000)

{

client.stop ();

grįžti 0;

}

}

o (client.available ())

{

Eilutės eilutė = client.readStringUntil ('\ r'); // indexOf () yra funkcija ieškoti smthng, ji grąžina -1, jei nerasta

int pos = line.indexOf ("\" laiko žyma / ""); // ieškokite "\" laiko žymos / "" nuo atsakymo pradžios ir nukopijuokite visus duomenis po to, tai bus jūsų laiko žyma

jei (poz> = 0)

{

int j = 0;

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

{

laiko žyma [j] = eilutė [pos + 12 + j];

}

}

}

}

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

negaliojanti sąranka ()

{

Serial.begin (115200);

vėlavimas (10);

pinMode (kaištis, Įvestis);

// Pradedame prisijungdami prie „WiFi“tinklo

„WiFiMulti.addAP“(„wifi_pavadinimas“, „Wifi_password“);

Serial.println ();

Serial.println ();

Serial.print („Palaukite„ WiFi “…“);

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

Serijinis atspaudas (".");

vėlavimas (500);

}

Serial.println ("");

Serial.println („WiFi prijungtas“);

Serial.println ("IP adresas:");

Serial.println (WiFi.localIP ());

vėlavimas (500);

}

tuštumos kilpa ()

{

int analogValue = analogRead (outputpin);

{

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

{

bool isDetected = digitalRead (kaištis);

if (isDetected) {

Serial.println („Aptikta buvimas“);

}

vėlavimas (500);

}

Serial.print ("prisijungimas prie");

Serial.println (priegloba); // apibrėžta aukštyn kojomis:- šeimininkas = devapi2.thethingscloud.com arba 139.59.26.117

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

Serial.println ("viduje gauti laiko žymę / n");

if (! client.connect (time_server, {

grįžti; //*-*-*-*-*-*-*-*-*-*

}

client.println ("GET/api/laiko žymė HTTP/1.1"); // Ką daro ši dalis, aš nesupratau

client.println ("Priimančioji: baas.thethingscloud.com");

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

client.println („Paštininkas-žetonas: ea3c18c6-09ba-d049-ccf3-369a22a284b8“);

klientas.println ();

GiveMeTimestamp (); // jis iškvies funkciją, kuri iš serverio gaus laiko žymės atsakymą

Serial.println ("gauta laiko žyma");

Serial.println (laiko žyma);

Serial.println ("viduje ThingsCloudPost");

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

PostValue = PostValue + ", \" dts / ":" + laiko žymė;

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

Serial.println (PostValue);

/ * sukurti „WiFiClientSecure“egzempliorių */

„WiFiClientSecure“klientas;

Serial.println („Prisijunkite prie serverio per 443 prievadą“);

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

Serial.println ("Nepavyko prisijungti!");

} Kitas {

Serial.println ("Prisijungta prie serverio!");

/ * sukurti HTTP užklausą */

client.println ( POST/devices/deviceData

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

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

client.println ("Turinio tipas: programa/json");

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

client.println ( Autorizacija: nešėjas eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqs22k2kvk

client.print ("Turinio ilgis:");

client.println (PostValue.length ());

klientas.println ();

client.println („PostValue“);

//////////////////////////////////////////////// Duomenų SKELBIMAS į debesį baigtas ir dabar gaukite atsakymo formos debesį serveris ///////////////////

Serial.print („Laukiama atsakymo“);

while (! client.available ()) {

vėlavimas (50); //

Serijinis atspaudas (".");

}

/ * jei yra duomenų, gaukite ir atsispausdinkite į terminalą */

while (client.available ()) {

char c = client.read ();

Serial.write (c);

}

/ * jei serveris atjungtas, sustabdykite klientą */

if (! client.connected ()) {

Serial.println ();

Serial.println („Serveris atjungtas“); javascript:;

client.stop ();

}

}

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

vėlavimas (3000);

}

}

4 žingsnis: IŠVESTIS

IŠVESTIS
IŠVESTIS

Tai juostų diagrama, rodanti reikšmes, nuskaitytas iš jutiklio daiktų, debesų platformoje,

5 žingsnis: grafikas

Grafikas
Grafikas

Tai grafinis jutiklio reikšmių atvaizdavimas. Iš aukščiau pateiktos diagramos galime analizuoti jutiklio taikymą. Ačiū

Rekomenduojamas: