Cuprins:
- Pasul 1: Componente
- Pasul 2: CONEXIUNI
- Pasul 3: CODIFICARE
- Pasul 4: IEȘIRE
- Pasul 5: Grafic
- Pasul 6: Iată un videoclip cu explicația Breif
Video: Detector de mișcare folosind Thingsai.io Iot Cloud Platform: 6 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:44
În acest tutorial voi explica despre detectarea mișcării folosind un senzor PIR și Esp32 împreună cu o platformă cloud IOT Thingai.io
Pasul 1: Componente
COMPONENTE HARDWARE;
1. Comitetul de dezvoltare esp32
2. Senzor PIR
3. Sârme jumper
SOFTWARE:
1. IDE Arduino
2. Contul Thingsai.io
Pasul 2: CONEXIUNI
Conexiunile sunt liniștite simple.
PINI PIR ------------ PINI ESP32
VCC ------------------- 3V3 pe esp32
GND ------------------ GND pe esp32
OUT ------------------- D22 pe esp32
Pasul 3: CODIFICARE
Inserați acest cod în ID-ul dvs. Arduino cu o actualizare, senzorul de mișcare va oferi ieșirea fără cusur.
#include
#include
#include
int count = 0, i, m, j, k;
int t, t1, t2, t3;
pin int = 22;
////////////////////////////////////////// TOATE DECLARAȚIILE pentru CLOUD ////// //////////////////////////
const char * host = "api.thingsai.io"; // SAU gazdă = devapi2.thethingscloud.com
const char * post_url = "/ devices / deviceData"; // SAU / api / v2 / thingscloud2 / _table / data_ac
const char * time_server = "baas.thethingscloud.com"; // aceasta este pentru a converti marca de timp
const int httpPort = 80;
const int httpsPort = 443;
const char * server = "api.thingsai.io"; // Adresa URL a serverului
timestamp char [10];
WiFiMulti WiFiMulti;
// Utilizați clasa WiFiClient pentru a crea conexiuni TCP
Client WiFiClient;
///////////////////////////////////////// TIMESTAMP CALCULATION function //////// /////////////////////////////////
int GiveMeTimestamp ()
{
timeout long unsigned = millis ();
// client WiFiClient;
while (client.available () == 0)
{
if (milis () - timeout> 50000)
{
client.stop ();
retur 0;
}
}
while (client.available ())
{
String line = client.readStringUntil ('\ r'); // indexOf () este o funcție pentru a căuta smthng, returnează -1 dacă nu este găsit
int pos = line.indexOf ("\" timestamp / ""); // căutați "\" timestamp / "" de la începutul răspunsului și copiați toate datele după aceea, va fi marca dvs. de timp
if (pos> = 0)
{
int j = 0;
pentru (j = 0; j <10; j ++)
{
timestamp [j] = line [pos + 12 + j];
}
}
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////
configurare nulă ()
{
Serial.begin (115200);
întârziere (10);
pinMode (pin, INPUT);
// Începem prin conectarea la o rețea WiFi
WiFiMulti.addAP ("wifi_name", "Wifi_password");
Serial.println ();
Serial.println ();
Serial.print („Așteptați WiFi …”);
while (WiFiMulti.run ()! = WL_CONNECTED) {
Serial.print (".");
întârziere (500);
}
Serial.println ("");
Serial.println ("WiFi conectat");
Serial.println ("adresa IP:");
Serial.println (WiFi.localIP ());
întârziere (500);
}
bucla nulă ()
{
int analogValue = analogRead (outputpin);
{
///////////////////////////////////////// TRIMITE CERERE ȘI PRIMI RĂSPUNSUL //// ////////////////////
{
bool isDetected = digitalRead (pin);
if (isDetected) {
Serial.println („Prezență detectată”);
}
întârziere (500);
}
Serial.print („conectarea la”);
Serial.println (gazdă); // definită invers: - host = devapi2.thethingscloud.com sau 139.59.26.117
///////////////////////////////////// COD TIMESTAMP SNIPPET ////////// ///////////////
Serial.println ("inside get timestamp / n");
if (! client.connect (time_server, {
întoarcere; // * - * - * - * - * - * - * - * - * - *
}
client.println ("GET / api / timestamp HTTP / 1.1"); // Ce face această parte, nu am primit
client.println („Gazdă: baas.thethingscloud.com”);
client.println ("Cache-Control: no-cache");
client.println ("Postman-Token: ea3c18c6-09ba-d049-ccf3-369a22a284b8");
client.println ();
GiveMeTimestamp (); // va apela funcția care va primi răspunsul de timestamp de la server
Serial.println ("timestamp primit");
Serial.println (timestamp);
Serial.println („în interiorul ThingsCloudPost”);
String PostValue = "{" device_id / ": 61121695839, \" slave_id / ": 2";
PostValue = PostValue + ", \" dts / ":" + timestamp;
PostValue = PostValue + ", \" data / ": {" PIR / ":" + pin + "}" + "}";
Serial.println (PostValue);
/ * creați o instanță WiFiClientSecure * /
Client WiFiClientSecure;
Serial.println („Conectare la server prin portul 443”);
if (! client.connect (server, 443)) {
Serial.println ("Conexiunea a eșuat!");
} altceva {
Serial.println ("Conectat la server!");
/ * creați o solicitare HTTP * /
client.println ("POST / dispozitive / dispozitivDate HTTP / 1.1");
client.println ("Gazdă: api.thingsai.io");
//client.println("Connection: close ");
client.println ("Content-Type: application / json");
client.println ("cache-control: no-cache");
client.println („Autorizație: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqC2KT5XA7_K6_7)
client.print („Lungime conținut:”);
client.println (PostValue.length ());
client.println ();
client.println (PostValue);
//////////////////////////////////// PUBLICAREA datelor pe cloud este gata și acum obțineți formularul de răspuns cloud Server//////////////////
Serial.print („Se așteaptă răspunsul”);
while (! client.available ()) {
întârziere (50); //
Serial.print (".");
}
/ * dacă datele sunt disponibile, atunci primiți și imprimați la Terminal * /
while (client.available ()) {
char c = client.read ();
Serial.write (c);
}
/ * dacă serverul s-a deconectat, opriți clientul * /
if (! client.connected ()) {
Serial.println ();
Serial.println („Server deconectat”); javascript:;
client.stop ();
}
}
Serial.println ("////////////////////// THE END ///////////////////// ");
întârziere (3000);
}
}
Pasul 4: IEȘIRE
Aceasta este reprezentarea grafică cu bare a valorilor citite de la senzor în platforma Things, io cloud,
Pasul 5: Grafic
Aceasta este reprezentarea grafică a valorilor de la senzor. Din graficul de mai sus putem analiza aplicația senzorului. Mulțumesc
Recomandat:
Aripi Cosplay activate de mișcare folosind Circuit Playground Express - Partea 1: 7 pași (cu imagini)
Motion Activated Cosplay Wings folosind Circuit Playground Express - Partea 1: Aceasta face parte dintr-un proiect în două părți, în care vă voi arăta procesul meu de realizare a unei perechi de aripi de zână automatizate. Prima parte a proiectului este mecanica aripilor, iar a doua parte o face purtabilă și adaugă aripile
Robinet de apă al senzorului de mișcare folosind arduino și electrovalvă - DIY: 6 pași
Robinet de apă cu senzor de mișcare folosind Arduino și electrovalvă - DIY: În acest proiect, vă voi arăta cum să construiți un robinet de apă cu senzor de mișcare folosind o electrovalvă. Acest proiect vă poate ajuta să vă convertiți robinetul manual de apă existent într-un robinet care poate fi controlat pe baza detectării mișcării. Utilizarea interfeței senzorului IR
Robot de mișcare automată simplă folosind IC Arduino și L293d: 6 pași
Robot de mișcare automată simplă folosind IC Arduino și L293d: Acesta este un robot de bază operat de un arduino și ceea ce face este că doar rotește în jur și urmează o cale circulară prin cod implicit, dar puteți modifica codul pentru a schimba calea cu ușurință. Este un proiect simplu pe care oricine îl poate construi … Deci, dacă Ev
LDR folosind Thingsai Cloud: 13 pași
LDR folosind Thingsai Cloud: HEY ….. astăzi vom învăța despre măsurarea intensității luminii și postarea valorilor în platforma cloud THINGSAI IOT folosind ESP32. Cerințele pentru realizarea acestui proiect sunt1. Placa de dezvoltare ESP32 (am folosit ESP32 DEVKIT V1) 2. LD
Cameră controlată de mișcare folosind MESH SDK: 6 pași (cu imagini)
Cameră controlată de mișcare utilizând MESH SDK: Doriți să vă automatizați camera pentru a surprinde cele mai bune momente ale animalului dvs. de companie în timp ce nu sunteți acasă? Senzorul de mișcare MESH face posibilă camerele care acceptă SDK. De exemplu, am amplasat un senzor de mișcare MESH lângă mâncare pentru pisici și jucării pentru pisici pentru a