Kazalo:
- 1. korak: Komponente
- 2. korak: POVEZAVE
- 3. korak: KODIRANJE
- 4. korak: IZHOD
- 5. korak: Graf
- 6. korak: Tukaj je videoposnetek Breifove razlage
Video: Detektor gibanja z uporabo oblačne platforme Thingsai.io Iot: 6 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:05
V tej vadnici bom razložil zaznavanje gibanja s senzorjem PIR in Esp32 skupaj z oblačno platformo IOT Thingai.io
1. korak: Komponente
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 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
To je stolpčni prikaz vrednosti, prebranih s senzorja v razdelku thingsai, io v oblaku,
5. korak: Graf
To je grafični prikaz vrednosti iz senzorja. Iz zgornjega grafa lahko analiziramo uporabo senzorja. Hvala vam
Priporočena:
Nadzor temperature in vlažnosti DHT z uporabo ESP8266 in platforme IoT AskSensors: 8 korakov
Nadzor temperature in vlažnosti DHT z uporabo ESP8266 in platforme IoT AskSensors: V prejšnjem navodilu sem predstavil navodila po korakih za začetek z vozliščem ESP8266 in platformo AskSensors IoT. V tej vadnici povezujem senzor DHT11 do vozlišča MCU. DHT11 je pogosto uporabljena temperatura in vlažnost
Spremljanje kuščarskega terarija z uporabo krmilnika WiFi Adosia IoT + zaznavanje gibanja: 17 korakov (s slikami)
Spremljanje kuščarskega terarija z uporabo Adosia IoT WiFi krmilnika + zaznavanje gibanja: V tej vadnici vam bomo pokazali, kako zgraditi preprost kuščarski terarij za peščico jajc, ki smo jih pomotoma našli in jih motili med vrtnarjenjem zunaj. Želimo, da se jajca varno izležejo, zato bomo le ustvarili varen prostor z uporabo plastike
Detektor gibanja z uporabo NodeMCU: 5 korakov
Detektor gibanja z uporabo NodeMCU: V tem projektu lahko preprosto s senzorjem gibanja zaznate prisotnost katerega koli človeka ali živali. S platformo, imenovano thingsio, lahko spremljate datum in čas, ko je bila prisotnost zaznana
Namizni stroj za fliper z uporabo vdelane platforme na osnovi Evive-Arduino: 18 korakov (s slikami)
Namizni stroj za fliper z uporabo vdelane platforme na osnovi Evive- Arduino: Še en vikend, še ena vznemirljiva igra! In tokrat to ni nič drugega kot najljubša arkadna igra vseh - Pinball! Ta projekt vam bo pokazal, kako enostavno narediti lasten stroj za fliper doma. Vse, kar potrebujete, so komponente iz programa Evive
Izhod z nadzorom gibanja - iz luči zaznavanja gibanja: 6 korakov
Izhod z nadzorom gibanja - iz svetlobe zaznavanja gibanja: Predstavljajte si, da ste prevaranti in se odpravite v najbolj strašno hišo v bloku. Ko greste mimo vseh duhov, duhov in pokopališč, končno pridete na zadnjo pot. Pred vami je sladica v posodi! A potem nenadoma gho