جدول المحتويات:

قياس درجة الحرارة باستخدام منصة Esp32 و Thingsio.ai: 6 خطوات
قياس درجة الحرارة باستخدام منصة Esp32 و Thingsio.ai: 6 خطوات

فيديو: قياس درجة الحرارة باستخدام منصة Esp32 و Thingsio.ai: 6 خطوات

فيديو: قياس درجة الحرارة باستخدام منصة Esp32 و Thingsio.ai: 6 خطوات
فيديو: ESP32 DHT Server - عرض درجات الحرارة و الرطوبة عن طريق الواي فاي 2024, يوليو
Anonim
قياس درجة الحرارة باستخدام منصة Esp32 و Thingsio.ai
قياس درجة الحرارة باستخدام منصة Esp32 و Thingsio.ai

سأشرح في هذا البرنامج التعليمي كيفية قياس درجة الحرارة في المناطق المحيطة باستخدام مستشعر درجة الحرارة المدمج الموجود في لوحة التطوير esp32. يحتوي esp32 على العديد من أجهزة الاستشعار المدمجة مثل مستشعر القاعة المستخدم كمستشعر القرب ومستشعر اللمس ومستشعر درجة الحرارة. في هذا البرنامج التعليمي سنناقش حول مستشعر درجة الحرارة.

الخطوة 1: المكونات:

عناصر
عناصر

المعدات:

1.esp32 مجلس التنمية

برمجة:

1. Arduino IDE

2-ثينغشيو

الخطوة 2: تمثيل رسم بياني للكتل لـ Esp32

تمثيل رسم بياني لـ Esp32
تمثيل رسم بياني لـ Esp32

الخطوة الثالثة: الترميز:

#يشمل

#يشمل

#يشمل

#يشمل

#يشمل

#ifdef _cplusplus

خارجي "ج" {

#إنهاء إذا

uint8_t temprature_sens_read () ،

// uint8_t g_phyFuns ؛

#ifdef _cplusplus

}

#إنهاء إذا

عدد صحيح = 0 ، أنا ، م ، ي ، ك ؛

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" ؛ //

أو / api / v2 / thingscloud2 / _table / data_ac

const char * time_server =

"baas.thethingscloud.com" ؛ // هذا لتحويل الطابع الزمني

const int httpPort = 80 ؛

const int httpsPort = 443 ؛

const char * server =

"api.thingsai.io" ؛ // عنوان URL للخادم

الطابع الزمني char [10] ؛

WiFi متعدد WiFi متعدد ؛

// استخدم فئة WiFiClient لإنشاء اتصالات TCP

عميل WiFiClient ؛

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

وظيفة الحساب ///////////////////////////////////////////

int GiveMeTimestamp ()

{

طويل بدون توقيع

المهلة = مللي () ؛

// عميل WiFiClient ؛

في حين

(client.available () == 0)

{

إذا (بالمللي () -

المهلة> 50000)

{

client.stop () ؛

العودة 0 ؛

}

}

بينما (client.available ())

{

خط السلسلة =

client.readStringUntil ('r') ، // indexOf () هي وظيفة للبحث عن smthng ، وتعيد -1 إذا لم يتم العثور عليها

نقاط البيع int =

line.indexOf ("\" الطابع الزمني / "")؛ // ابحث عن "\" timestamp / "" من بداية الرد ونسخ جميع البيانات بعد ذلك ، سيكون طابعك الزمني

إذا (نقاط البيع> =

0)

{

int j = 0 ؛لـ (j = 0 ؛ j <10 ؛ j ++)

{الطابع الزمني [j] = الخط [نقطة البيع + 12 + ي] ؛

}

}

}

}

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

الإعداد باطل()

{Serial.begin (115200) ؛

تأخير (10) ؛

tzset () ؛

// نبدأ بـ

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

Serial.println () ،

Serial.println () ،Serial.print ("انتظر WiFi …") ؛بينما (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 ؛

هيكل tm timeinfo ؛

شار بوف [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 (& now، & timeinfo) ؛strftime (strftime_buf ، sizeof (strftime_buf) ، "٪ c" ، & timeinfo) ؛sprintf (buf، "بدء المسح٪ 02d:٪ 02d:٪ 02d"، معلومات الوقت. tm_hour، timeinfo.tm_min، timeinfo.tm_sec) ؛

المسلسل

(بوف) ؛

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 ("الحصول على الطابع الزمني للداخل / n") ؛

لو

(! client.connect (خادم الوقت ،

{

إرجاع؛

//*-*-*-*-*-*-*-*-*-*

}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 (طابع زمني) ؛Serial.println ("داخل ThingsCloudPost") ؛

سلسلة PostValue =

"{" device_id / ": 61121695920، \" slave_id / ": 2" ؛

PostValue =

PostValue + "، \" dts / ":" + الطابع الزمني؛

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("Connection: close ") ؛client.println ("نوع المحتوى: application / json") ؛client.println ("cache-control: no-cache") ؛client.println ("التفويض: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqm9PNTk6client.print ("طول المحتوى:") ؛client.println (PostValue.length ()) ،client.println () ،client.println (PostValue) ؛

////////////////////////////////// نشر البيانات على

تم الانتهاء من السحابة والحصول الآن على نموذج الاستجابة للخادم السحابي ////////////////////

Serial.print ( قيد الانتظار

للاستجابة ) ؛

في حين

(! client.available ()) {

تأخير (50) ؛

//Serial.print (".") ؛

}

/ * إذا كانت البيانات

متاح ثم الاستلام والطباعة إلى Terminal * /

في حين

(client.available ()) {

شار ج =

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

}

/ * إذا كان ملف

الخادم غير متصل ، أوقف العميل * /

لو

(! client.connected ()) {Serial.println () ،Serial.println ("الخادم غير متصل") ؛

client.stop () ؛

}

}

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

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

تأخير (3000) ؛

}

}

الخطوة 4: الإخراج:

انتاج
انتاج

فيما يلي إخراج قيم درجة الحرارة المقروءة من المستشعر.

الخطوة 5: الرسوم البيانية:

الرسومات
الرسومات
الرسومات
الرسومات

تمثيل رسومي للقيم المقروءة من مستشعر درجة الحرارة على متن الطائرة.

موصى به: