فهرست مطالب:

آشکارساز حرکت با استفاده از بستر ابری Thingsai.io Iot: 6 مرحله
آشکارساز حرکت با استفاده از بستر ابری Thingsai.io Iot: 6 مرحله

تصویری: آشکارساز حرکت با استفاده از بستر ابری Thingsai.io Iot: 6 مرحله

تصویری: آشکارساز حرکت با استفاده از بستر ابری Thingsai.io Iot: 6 مرحله
تصویری: پسر بچه ایرانی که با صداش داورای برنامه گات تلنت رو حیرت زده کرد 2024, نوامبر
Anonim
آشکارساز حرکت با استفاده از بستر ابری Thingsai.io Iot
آشکارساز حرکت با استفاده از بستر ابری Thingsai.io Iot

در این آموزش قصد دارم در مورد تشخیص حرکت با استفاده از سنسور PIR و Esp32 به همراه پلتفرم ابری IOT Thingai.io توضیح دهم

مرحله 1: اجزاء

اجزاء
اجزاء
اجزاء
اجزاء

اجزای سخت افزار ؛

1.esp32 هیئت توسعه

2. سنسور PIR

3. سیم جامپر

نرم افزار:

1. آردوینو IDE

2. حساب Thingsai.io

مرحله 2: اتصالات

اتصالات
اتصالات

اتصالات ساده و بی صدا هستند.

پین PIR ------------ پین ESP32

VCC ------------------- 3V3 در esp32

GND ------------------ GND در esp32

OUT ------------------- D22 در esp32

مرحله 3: کدگذاری

این کد را با کمی به روز رسانی در Arduino IDE خود بچسبانید ، سنسور حرکت شما خروجی را بی عیب و نقص می دهد.

#عبارتند از

#عبارتند از

#عبارتند از

int شمارش = 0 ، i ، m ، j ، k ؛

int t، t1، t2، t3؛

int pin = 22؛

///////////////////////////////////////// همه اعلامیه ها برای ابر ////// /////////////////////////

const char* host = "api.thingsai.io"؛ // OR میزبان = devapi2.thethingscloud.com

const char* post_url = "/devices/deviceData"؛ // OR/api/v2/thingscloud2/_table/data_ac

const char* time_server = "baas.thethingscloud.com"؛ // این برای تبدیل timestamp است

const int httpPort = 80؛

const int httpsPort = 443؛

const char* server = "api.thingsai.io"؛ // آدرس سرور

timestamp char [10]؛

WiFiMulti WiFiMulti؛

// برای ایجاد اتصالات TCP از کلاس WiFiClient استفاده کنید

مشتری WiFiClient ؛

//////////////////////////////////////// تابع محاسبه TIMESTAMP ///////// ///////////////////////////////

int GiveMeTimestamp ()

{

مدت زمان طولانی بدون علامت = millis ()؛

// مشتری WiFiClient ؛

while (client.available () == 0)

{

if (millis () - timeout> 50000)

{

client.stop ()؛

بازگشت 0 ؛

}

}

while (client.available ())

{

String line = client.readStringUntil ('\ r')؛ // indexOf () یک کار برای جستجوی smthng است ، اگر یافت نشد -1 را برمی گرداند

int pos = line.indexOf ("\" timestamp / "")؛ // "\" timestamp / "" را از ابتدای پاسخ جستجو کنید و پس از آن همه داده ها را کپی کنید ، این نشان زمان شما خواهد بود

if (pos> = 0)

{

int j = 0 ؛

برای (j = 0 ؛ j <10 ؛ j ++)

{

timestamp [j] = خط [pos + 12 + j] ؛

}

}

}

}

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

void setup ()

{

Serial.begin (115200) ؛

تأخیر (10) ؛

pinMode (پین ، ورودی) ؛

// ما با اتصال به یک شبکه WiFi شروع می کنیم

WiFiMulti.addAP ("wifi_name" ، "Wifi_password") ؛

Serial.println ()؛

Serial.println ()؛

Serial.print ("منتظر وای فای باشید …") ؛

در حالی که (WiFiMulti.run ()! = WL_CONNECTED) {

Serial.print (".") ؛

تأخیر (500) ؛

}

Serial.println ("")؛

Serial.println ("WiFi متصل است") ؛

Serial.println ("آدرس IP:") ؛

Serial.println (WiFi.localIP ()) ؛

تأخیر (500) ؛

}

حلقه خالی ()

{

int analogValue = analogRead (خروجی پین) ؛

{

/////////////////////////////////////// س Qال را ارسال کرده و پاسخ را دریافت کنید //// ////////////////////

{

bool isDetected = digitalRead (پین) ؛

if (isDetected) {

Serial.println ("حضور تشخیص داده شد")؛

}

تأخیر (500) ؛

}

Serial.print ("اتصال به") ؛

Serial.println (میزبان) ؛ // برعکس تعریف شده است:- host = devapi2.thethingscloud.com یا 139.59.26.117

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

Serial.println ("در داخل دریافت timestamp / n")؛

if (! client.connect (time_server،

{

برگشت؛ //*-*-*-*-*-*-*-*-*-*

}

client.println ("GET/api/timestamp HTTP/1.1") ؛ // این قسمت چه می کند ، متوجه نشدم

client.println ("میزبان: baas.thethingscloud.com")؛

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

client.println ("Postman-Token: ea3c18c6-09ba-d049-ccf3-369a22a284b8") ؛

client.println ()؛

GiveMeTimestamp ()؛ // تابع را فراخوانی می کند که زمان پاسخ سرور را دریافت می کند

Serial.println ("زمان دریافت شده") ؛

Serial.println (timestamp)؛

Serial.println ("داخل ThingsCloudPost") ؛

String PostValue = "{" device_id / ": 61121695839، \" slave_id / ": 2"؛

PostValue = PostValue + "، \" dts / ":" + timestamp؛

PostValue = PostValue +"، \" data / ": {" PIR / ":" +pin +"}" +"}"؛

Serial.println (PostValue) ؛

/ * ایجاد یک نمونه از WiFiClientSecure */

مشتری WiFiClientSecure ؛

Serial.println ("اتصال به سرور از طریق درگاه 443") ؛

if (! client.connect (سرور ، 443)) {

Serial.println ("اتصال انجام نشد!") ؛

} دیگری {

Serial.println ("به سرور متصل است!") ؛

/ * ایجاد درخواست HTTP */

client.println ("POST/devices/deviceData HTTP/1.1") ؛

client.println ("میزبان: api.thingsai.io") ؛

//client.println("Connect: close ")؛

client.println ("نوع محتوا: برنامه/json") ؛

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

client.println ("مجوز: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWnqmq9q2kYkYkYkYkYkYkVyq2k5k9k2ktYk2ktwt5g2k2tcd5dwtw2k"

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

client.println (PostValue.length ()) ؛

client.println ()؛

client.println (PostValue) ؛

////////////////////////////////// ارسال اطلاعات بر روی ابر انجام شده است و اکنون فرم پاسخ ابر را دریافت کنید سرور ///////////////////

Serial.print ("در انتظار پاسخ") ؛

در حالی که (! client.available ()) {

تأخیر (50) ؛ //

Serial.print (".") ؛

}

/ * در صورت موجود بودن اطلاعات ، دریافت و چاپ در ترمینال */

while (client.available ()) {

char c = client.read ()؛

Serial.write (c)؛

}

/ * در صورت قطع بودن سرور ، سرویس گیرنده را متوقف کنید */

if (! client.connected ()) {

Serial.println ()؛

Serial.println ("سرور قطع شده است") ؛ javascript:؛

client.stop ()؛

}

}

Serial.println ("///////////////////// END //////////////////// ")؛

تاخیر (3000) ؛

}

}

مرحله 4: خروجی

خروجی
خروجی

این نمودار نمودار میله ای از مقادیر خوانده شده از سنسور در پلت فرم ابر چیزهایی ، io ،

مرحله 5: نمودار

نمودار
نمودار

این نمایش گرافیکی مقادیر از سنسور است. از نمودار بالا می توانیم کاربرد سنسور را تجزیه و تحلیل کنیم. متشکرم

توصیه شده: