فهرست مطالب:

اندازه گیری دما با استفاده از نرم افزار Esp32 و Thingsio.ai: 6 مرحله
اندازه گیری دما با استفاده از نرم افزار Esp32 و Thingsio.ai: 6 مرحله

تصویری: اندازه گیری دما با استفاده از نرم افزار Esp32 و Thingsio.ai: 6 مرحله

تصویری: اندازه گیری دما با استفاده از نرم افزار Esp32 و Thingsio.ai: 6 مرحله
تصویری: How to use ESP32 WiFi and Bluetooth with Arduino IDE full details with examples and code 2024, جولای
Anonim
اندازه گیری دما با استفاده از Esp32 و Thingsio.ai Platform
اندازه گیری دما با استفاده از Esp32 و Thingsio.ai Platform

در این آموزش قصد دارم در مورد اندازه گیری دمای محیط با استفاده از سنسور دمای داخلی موجود در صفحه توسعه esp32 توضیح دهم. esp32 دارای بسیاری از سنسورهای داخلی است مانند سنسور سالن که به عنوان سنسور مجاورت ، سنسور لمسی ، سنسور دما استفاده می شود. در این آموزش ما قصد داریم در مورد سنسور دما بحث کنیم.

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

اجزاء
اجزاء

سخت افزار:

1.esp32 هیئت مدیره توسعه

نرم افزار:

1. آردوینو IDE

2. Thingsio.ai

مرحله 2: نمایندگی نمودار بلوک Esp32 را مسدود کنید

نمایندگی نمودار بلوک Esp32
نمایندگی نمودار بلوک Esp32

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

#عبارتند از

#عبارتند از

#عبارتند از

#عبارتند از

#عبارتند از

#ifdef _plusplus

خارجی "C" {

#اندیف

uint8_t temprature_sens_read ()؛

// uint8_t g_phyFuns ؛

#ifdef _plusplus

}

#اندیف

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

int t، t1، t2، t3؛

int outputpin = A0؛ // ds18b20

//////////////////////////////////////// همه اعلامیه ها

برای CLOUD /////////////////////////////

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

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* سرور =

"api.thingsai.io" ؛ // آدرس سرور

timestamp char [10]؛

WiFiMulti WiFiMulti؛

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

مشتری WiFiClient ؛

/////////////////////////////////////// TIMESTAMP

عملکرد محاسبه /////////////////////////////////////

int GiveMeTimestamp ()

{

بدون امضا طولانی

timeout = millis ()؛

// مشتری WiFiClient ؛

در حالی که

(client.available () == 0)

{

if (millis () -

مهلت زمانی> 50000)

{

client.stop ()؛

بازگشت 0 ؛

}

}

while (client.available ())

{

خط رشته =

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) ؛

tzset ()؛

// شروع می کنیم با

اتصال به شبکه WiFiWiFiMulti.addAP ("dlink_DWR-113" ، "madhukar66") ؛

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) ؛

}

uint8_t temp_farenheit؛

شناور temp_celsius؛

char strftime_buf [64]؛

time_t در حال حاضر = 0؛

struct tm timeinfo؛

char buf [256]؛

حلقه خالی ()

{

// int analogValue =

analogRead (خروجی پین) ؛

{

/////////////////////////////////////// ارسال پرسش و

دریافت پاسخ //////////////////////

//

t1 = (analogValue/1024.0) *5000 ؛

//

Serial.print ("temp:")؛

// Serial.println (t1)؛

/

/ t2 = (t1/ 10) ؛

//

Serial.print ("celc:")؛

//

Serial.println (t2)؛

/

/ t3 = ((t2 *

9)/5 + 32);

//

Serial.print ("fhrn:")؛

//

Serial.println (t3)؛ //زنگ تفريح؛localtime_r (& اکنون ، & timeinfo) ؛strftime (strftime_buf ، sizeof (strftime_buf) ، "٪ c" ، & timeinfo) ؛sprintf (buf ، "شروع اسکن٪ 02d:٪ 02d:٪ 02d" ، timeinfo.tm_hour ، timeinfo.tm_min ، timeinfo.tm_sec) ؛

Serial.print

(buf) ؛

temp_farenheit =

temprature_sens_read ()؛

temp_celsius = (temp_farenheit - 32) / 1.8 ؛Serial.print ("Temp onBoard") ؛Serial.print (temp_farenheit) ؛Serial.print ("° F")؛Serial.print (temp_celsius) ؛Serial.println ("° C")؛

تاخیر (1000) ؛

در حال حاضر ++؛

Serial.print ( اتصال

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

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

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

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

اگر

(! 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 / ": 61121695920، \" slave_id / ": 2"؛

PostValue =

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

PostValue =

PostValue +"، \" data / ": {" TEMP / ":" +temp_farenheit +"}" +"}"؛Serial.println (PostValue) ؛

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

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

اگر

(! client.connect (سرور ، 443)) {Serial.println ("اتصال انجام نشد!") ؛

} دیگری {Serial.println ("به سرور متصل است!") ؛

/* ایجاد

درخواست */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) ؛

/////////////////////////////////// ارسال اطلاعات در

cloud تمام شده است و اکنون فرم پاسخ را دریافت کنید سرور cloud //////////////////

Serial.print ( در انتظار

برای پاسخ ) ؛

در حالی که

(! client.available ()) {

تأخیر (50) ؛

//Serial.print (".") ؛

}

/* اگر داده باشد

در دسترس و سپس دریافت و چاپ در ترمینال */

در حالی که

(client.available ()) {

char c =

client.read ()؛Serial.write (c)؛

}

/* اگر

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

اگر

(! client.connected ()) {Serial.println ()؛Serial.println ("سرور قطع شده است")؛

client.stop ()؛

}

}

Serial.println ( ////////////////////// END

///////////////////// );

تاخیر (3000) ؛

}

}

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

خروجی
خروجی

در اینجا خروجی مقادیر دما خوانده شده از سنسور است.

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

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

نمایش گرافیکی مقادیر خوانده شده از سنسور دمای پردازنده.

توصیه شده: