Mündəricat:
Video: Thingsai.io Iot Bulud Platformasından istifadə edərək Hərəkət Detektoru: 6 addım
2025 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2025-01-13 06:56
Bu dərslikdə Thirai.io IOT bulud platforması ilə birlikdə PIR sensoru və Esp32 istifadə edərək hərəkətin aşkarlanmasını izah edəcəyəm.
Addım 1: Komponentlər
DONANIM BİLEŞENLERİ;
1.esp32 İnkişaf Şurası
2. PIR Sensoru
3. Jumper Telləri
PROQRAM TƏMİNATI:
1. Arduino IDE
2. Thingsai.io hesabı
Addım 2: BAĞLANTILAR
Bağlantılar sadədir.
PIR PINS ------------ ESP32 PINS
Esp32-də VCC ------------------- 3V3
Esp32-də GND ------------------ GND
ÇIXIŞ ------------------- D22 esp32-də
Addım 3: KODLAMA
Bu kodu bir yeniləmə ilə Arduino IDE -yə yapışdırın, Motion sensorunuz çıxışı qüsursuz verəcək.
#daxil edin
#daxil edin
#daxil edin
int sayı = 0, i, m, j, k;
int t, t1, t2, t3;
int pin = 22;
///////////////////////////////////////// BÜTÜN BÜTÜN Bəyannamələr ////// ///////////////////////////
const char* host = "api.thingsai.io"; // YA ana host = devapi2.thethingscloud.com
const char* post_url = "/devices/deviceData"; // OR/api/v2/thingscloud2/_table/data_ac
const char* time_server = "baas.thethingscloud.com"; // bu zaman damgasını çevirməkdir
const int httpPort = 80;
const int httpsPort = 443;
const char* server = "api.thingsai.io"; // Server URL
simvol işarəsi [10];
WiFiMulti WiFiMulti;
// TCP əlaqələri yaratmaq üçün WiFiClient sinifindən istifadə edin
WiFi müştəri;
////////////////////////////////////////////////////// TIMESTAMP CALCULATION funksiyası //////// /////////////////////////////////
int GiveMeTimestamp ()
{
imzasız uzun zaman aşımı = millis ();
// WiFiClient müştəri;
while (client.available () == 0)
{
if (millis () - zaman aşımı> 50000)
{
client.stop ();
qaytarma 0;
}
}
while (client.available ())
{
String xətti = client.readStringUntil ('\ r'); // indexOf () smthng axtaran bir funksiyadır, tapılmazsa -1 qaytarır
int pos = line.indexOf ("\" zaman damgası / ""); // "\" zaman damgası / "" nı axtarın və sonra bütün məlumatları kopyalayın, bu sizin zaman damganız olacaq
əgər (pos> = 0)
{
int j = 0;
üçün (j = 0; j <10; j ++)
{
vaxt damgası [j] = sətir [pos + 12 + j];
}
}
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////
boş quraşdırma ()
{
Serial.begin (115200);
gecikmə (10);
pinMode (pin, GİRİŞ);
// WiFi şəbəkəsinə qoşulmaqla başlayırıq
WiFiMulti.addAP ("wifi_name", "Wifi_password");
Serial.println ();
Serial.println ();
Serial.print ("WiFi gözləyin …");
isə (WiFiMulti.run ()! = WL_CONNECTED) {
Serial.print (".");
gecikmə (500);
}
Serial.println ("");
Serial.println ("WiFi bağlıdır");
Serial.println ("IP ünvanı:");
Serial.println (WiFi.localIP ());
gecikmə (500);
}
boşluq döngəsi ()
{
int analogValue = analogRead (çıxış pin);
{
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // /////////////////////
{
bool isDetected = digitalRead (pin);
if (isDetected) {
Serial.println ("Varlıq aşkarlandı");
}
gecikmə (500);
}
Serial.print ("qoşulur");
Serial.println (ev sahibi); // tərs olaraq təyin olunur:- host = devapi2.thethingscloud.com və ya 139.59.26.117
//////////////////////////////////////////////////////////////// TIMESTAMP KOD SNIPPET /////////// ////////////////
Serial.println ("daxilində zaman damgası alın / n");
əgər (! client.connect (time_server, {
qayıtmaq; //*-*-*-*-*-*-*-*-*-*-*
}
client.println ("GET/api/zaman damgası HTTP/1.1"); // Bu hissə nə edir, başa düşmədim
client.println ("Host: baas.thethingscloud.com");
client.println ("Önbelleğe Nəzarət: önbelleği yoxdur");
client.println ("Poçtalyon-Token: ea3c18c6-09ba-d049-ccf3-369a22a284b8");
müştəri.println ();
GiveMeTimestamp (); // serverdən zaman damgası cavabını alacaq funksiyanı çağıracaq
Serial.println ("vaxt damgası alındı");
Serial.println (vaxt damgası);
Serial.println ("ThingsCloudPost daxilində");
String PostValue = "{" device_id / ": 61121695839, \" slave_id / ": 2";
PostValue = PostValue + ", \" dts / ":" + zaman damgası;
PostValue = PostValue +", \" data / ": {" PIR / ":" +pin +"}" +"}";
Serial.println (PostValue);
/ * WiFiClientSecure nümunəsi yaradın */
WiFiClientSecure müştəri;
Serial.println ("Serverə 443 portu ilə qoşulun");
if (! client.connect (server, 443)) {
Serial.println ("Bağlantı uğursuz oldu!");
} başqa {
Serial.println ("Serverə qoşuldu!");
/ * HTTP sorğusu yaradın */
client.println ( POST/cihazlar/cihazData
client.println ("Host: api.thingsai.io");
//client.println("Bağlantı: yaxın ");
client.println ("Məzmun Növü: application/json");
client.println ("cache-control: no-cache");
client.println ("Yetkilendirme: daşıyıcı eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqC2PNT"
client.print ("Məzmun-Uzunluq:");
müştəri.println (PostValue.length ());
müştəri.println ();
client.println (PostValue);
/////////////////////////////////////////////// Buluddakı məlumatların yerləşdirilməsi tamamlandı və indi cavab formasını buluddan əldə edin server ////////////////////
Serial.print ("Cavab gözləyir");
while (! client.available ()) {
gecikmə (50); //
Serial.print (".");
}
/ * məlumatlar varsa, terminaldan alın və çap edin */
while (client.available ()) {
char c = client.read ();
Serial.write (c);
}
/ * server bağlantısı kəsilərsə, müştərini dayandırın */
if (! client.connected ()) {
Serial.println ();
Serial.println ("Server bağlantısı kəsildi"); javascript:;
client.stop ();
}
}
Serial.println ("/////////////////////// SON SON ///////////////////// ");
gecikmə (3000);
}
}
Addım 4: Çıxış
Bu, şeysai, io bulud platformasındakı sensordan oxunan dəyərlərin bar qrafikidir.
Addım 5: Qrafik
Bu sensordan alınan dəyərlərin qrafik təsviridir. Yuxarıdakı qrafikdən sensorun tətbiqini təhlil edə bilərik. Çox sağ ol