Tartalomjegyzék:

Mozgásérzékelő a Thingsai.io Iot Cloud platform használatával: 6 lépés
Mozgásérzékelő a Thingsai.io Iot Cloud platform használatával: 6 lépés

Videó: Mozgásérzékelő a Thingsai.io Iot Cloud platform használatával: 6 lépés

Videó: Mozgásérzékelő a Thingsai.io Iot Cloud platform használatával: 6 lépés
Videó: Создание приложений для мобильных устройств, игр, Интернета вещей и многого другого с помощью AWS DynamoDB, Рик Хулихан 2024, December
Anonim
Mozgásérzékelő a Thingsai.io Iot Cloud platform használatával
Mozgásérzékelő a Thingsai.io Iot Cloud platform használatával

Ebben az oktatóanyagban elmagyarázom a mozgásérzékelést a PIR érzékelő és az Esp32 használatával, valamint a Thingai.io IOT felhőplatform segítségével

1. lépés: Alkatrészek

Alkatrészek
Alkatrészek
Alkatrészek
Alkatrészek

HARDVER ALKATRÉSZEK;

1. esp32 Fejlesztési Tanács

2. PIR érzékelő

3. Jumper vezetékek

SZOFTVER:

1. Arduino IDE

2. Thingsai.io fiók

2. lépés: KAPCSOLATOK

CSATLAKOZÁSOK
CSATLAKOZÁSOK

Csatlakozások egyszerűek.

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

VCC ------------------- 3V3 az esp32-en

GND ------------------ GND az esp32-en

OUT ------------------- D22 az esp32-en

3. lépés: KÓDOLÁS

Illessze be ezt a kódot az Arduino IDE -be némi frissítéssel, a mozgásérzékelő hibátlanul adja a kimenetet.

#befoglalni

#befoglalni

#befoglalni

int szám = 0, i, m, j, k;

int t, t1, t2, t3;

int pin = 22;

////////////////////////////////////////////////////- /////////////////////////

const char* host = "api.thingsai.io"; // VAGY házigazda = devapi2.thethingscloud.com

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

const char* time_server = "baas.thethingscloud.com"; // ez az időbélyeg konvertálása

const int httpPort = 80;

const int httpsPort = 443;

const char* szerver = "api.thingsai.io"; // Szerver URL -címe

char időbélyeg [10];

WiFiMulti WiFiMulti;

// A WiFiClient osztály használata TCP kapcsolatok létrehozásához

WiFiClient kliens;

////////////////////////////////////////////////- ////////////////////////////////

int GiveMeTimestamp ()

{

unsigned long timeout = millis ();

// WiFiClient kliens;

míg (client.available () == 0)

{

if (millis () - timeout> 50000)

{

client.stop ();

visszatérés 0;

}

}

míg (client.available ())

{

Karakterlánc = ügyfél.readStringUntil ('\ r'); // Az indexOf () az smthng keresésére szolgáló funkció, -1 -et ad vissza, ha nem találja

int pos = line.indexOf ("\" időbélyeg / ""); // keresse a "\" időbélyeg / "" kifejezést a válasz elejétől, majd másolja le az összes adatot, ez lesz az Ön időbélyege

ha (pos> = 0)

{

int j = 0;

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

{

időbélyeg [j] = sor [pos + 12 + j];

}

}

}

}

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

üres beállítás ()

{

Sorozat.kezdet (115200);

késleltetés (10);

pinMode (pin, INPUT);

// Kezdjük azzal, hogy csatlakozunk egy WiFi hálózathoz

WiFiMulti.addAP ("wifi_név", "Wifi_jelszó");

Sorozat.println ();

Sorozat.println ();

Serial.print ("Wait for WiFi …");

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

Soros.nyomtatás (".");

késleltetés (500);

}

Serial.println ("");

Serial.println ("WiFi csatlakoztatva");

Serial.println ("IP -cím:");

Serial.println (WiFi.localIP ());

késleltetés (500);

}

üres hurok ()

{

int analogValue = analogRead (outputpin);

{

////////////////////////////////////////////////////////////////////////- ////////////////////

{

bool isDetected = digitalRead (pin);

if (isDetected) {

Serial.println ("Jelenlét észlelve");

}

késleltetés (500);

}

Serial.print ("csatlakozás");

Serial.println (gazdagép); // definiált fejjel:- host = devapi2.thethingscloud.com vagy 139.59.26.117

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

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

if (! client.connect (time_server, {

Visszatérés; //*-*-*-*-*-*-*-*-*-*

}

client.println ("GET/api/időbélyeg HTTP/1.1"); // Mit csinál ez a rész, nem értettem

client.println ("Gazdagép: baas.thethingscloud.com");

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

client.println ("Postás-jelző: ea3c18c6-09ba-d049-ccf3-369a22a284b8");

client.println ();

GiveMeTimestamp (); // meghívja a függvényt, amely megkapja az időbélyeg -választ a szervertől

Serial.println ("időbélyeg érkezett");

Serial.println (időbélyeg);

Serial.println ("belül ThingsCloudPost");

Karakterlánc PostValue = "{" device_id / ": 61121695839, \" slave_id / ": 2";

PostValue = PostValue + ", \" dts / ":" + időbélyeg;

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

Serial.println (PostValue);

/ * hozzon létre egy WiFiClientSecure példányt */

WiFiClientSecure kliens;

Serial.println ("Csatlakozás a szerverhez a 443 -as porton keresztül");

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

Serial.println ("A kapcsolat nem sikerült!");

} más {

Serial.println ("Csatlakoztatva a szerverhez!");

/ * HTTP kérés létrehozása */

client.println ( POST/devices/deviceData

client.println ("Gazdagép: api.thingsai.io");

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

client.println ("Tartalom-típus: application/json");

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

client.println ( Jogosultság: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqs22kvt5kvk

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

client.println (PostValue.length ());

client.println ();

client.println (PostValue);

//////////////////////////////////////////////// Az adatok közzététele a felhőbe megtörtént, és most megkapja a válaszfelvételi űrlapot szerver//////////////////

Serial.print ("Válaszra vár");

while (! client.available ()) {

késleltetés (50); //

Soros.nyomtatás (".");

}

/ * ha rendelkezésre állnak adatok, akkor fogadja és nyomtassa ki a terminálra */

while (client.available ()) {

char c = kliens.olvasás ();

Soros.írás (c);

}

/ * ha a szerver megszakadt, állítsa le az ügyfelet */

if (! client.connected ()) {

Sorozat.println ();

Serial.println ("A szerver leválasztva"); javascript:;

client.stop ();

}

}

Serial.println ("////////////////////// A VÉG //////////////////// ");

késleltetés (3000);

}

}

4. lépés: KIMENET

KIMENET
KIMENET

Ez a sávdiagramon ábrázolja az érzékelő által leolvasott értékeket a Thingsai, io felhő platformon,

5. lépés: Grafikon

Grafikon
Grafikon

Ez az érzékelőből származó értékek grafikus ábrázolása. A fenti grafikonból elemezhetjük az érzékelő alkalmazását. Köszönöm

Ajánlott: