فهرست مطالب:
- مرحله 1: اجزاء
- مرحله 2: اتصالات
- مرحله 3: کدگذاری
- مرحله 4: خروجی
- مرحله 5: نمودار
- مرحله 6: در اینجا ویدئویی از توضیحات Breif آمده است
تصویری: آشکارساز حرکت با استفاده از بستر ابری Thingsai.io Iot: 6 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:55
در این آموزش قصد دارم در مورد تشخیص حرکت با استفاده از سنسور 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: نمودار
این نمایش گرافیکی مقادیر از سنسور است. از نمودار بالا می توانیم کاربرد سنسور را تجزیه و تحلیل کنیم. متشکرم
توصیه شده:
نظارت بر دما و رطوبت DHT با استفاده از ESP8266 و بستر اینترنت اشیا AskSensors: 8 مرحله
نظارت بر دما و رطوبت DHT با استفاده از ESP8266 و بستر اینترنت اشیا AskSensors: در یک دستورالعمل قبلی ، من یک راهنمای گام به گام برای شروع کار با ESP8266 nodeMCU و پلت فرم IoT AskSensors ارائه دادم. در این آموزش ، من یک سنسور DHT11 را متصل می کنم به گره MCU. DHT11 یک دما و رطوبت رایج است
آشکارساز حرکت با استفاده از NodeMCU: 5 مرحله
آشکارساز حرکت با استفاده از NodeMCU: در این پروژه ، به سادگی با استفاده از سنسور حرکت می توانید حضور هر انسان یا حیوان را تشخیص دهید. و توسط پلتفرمی به نام thingsio می توانید تاریخ و زمان تشخیص حضور را کنترل کنید
اندازه گیری رطوبت خاک با استفاده از Esp32 و بستر Thingsio.ai: 6 مرحله
اندازه گیری محتوای رطوبت خاک با استفاده از Esp32 و بستر Thingsio.ai: در این آموزش قصد دارم در مورد خواندن میزان رطوبت خاک با استفاده از esp32 و سپس ارسال مقادیر به سکوی ابر thingsio.ai IoT توضیح دهم
نحوه ایجاد سیستم اتوماسیون خانگی Firebase با استفاده از NodeMCU - در بستر IOT: 14 مرحله
نحوه ایجاد سیستم اتوماسیون خانگی Firebase با استفاده از NodeMCU | در بستر IOT: هدف از این پروژه این پروژه با هدف ایجاد یک سیستم اتوماسیون خانگی انجام می شود که به کاربر اجازه می دهد با استفاده از برنامه IOT Android کنترل کامل تمام دستگاه های کنترل از راه دور خانه خود را داشته باشد. بسیاری از سرورهای آنلاین شخص ثالث و سیستم عامل های
آشکارساز دود IOT: آشکارساز دود موجود را با IOT به روز کنید: 6 مرحله (همراه با تصاویر)
آشکارساز دود IOT: آشکارساز دود موجود را با IOT به روز کنید: فهرست مشارکت کنندگان ، مخترع: Tan Siew Chin ، Tan Yit Peng ، Tan Wee Heng ناظر: دکتر Chia Kim Seng گروه مهندسی مکاترونیک و رباتیک ، دانشکده مهندسی برق و الکترونیک ، Universiti Tun حسین اونن مالزی. توزیع