جدول المحتويات:
- الخطوة 1: المكونات:
- الخطوة 2: تمثيل رسم بياني للكتل لـ Esp32
- الخطوة الثالثة: الترميز:
- الخطوة 4: الإخراج:
- الخطوة 5: الرسوم البيانية:
- الخطوة السادسة:
فيديو: قياس درجة الحرارة باستخدام منصة Esp32 و Thingsio.ai: 6 خطوات
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:40
سأشرح في هذا البرنامج التعليمي كيفية قياس درجة الحرارة في المناطق المحيطة باستخدام مستشعر درجة الحرارة المدمج الموجود في لوحة التطوير esp32. يحتوي esp32 على العديد من أجهزة الاستشعار المدمجة مثل مستشعر القاعة المستخدم كمستشعر القرب ومستشعر اللمس ومستشعر درجة الحرارة. في هذا البرنامج التعليمي سنناقش حول مستشعر درجة الحرارة.
الخطوة 1: المكونات:
المعدات:
1.esp32 مجلس التنمية
برمجة:
1. Arduino IDE
2-ثينغشيو
الخطوة 2: تمثيل رسم بياني للكتل لـ 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: الرسوم البيانية:
تمثيل رسومي للقيم المقروءة من مستشعر درجة الحرارة على متن الطائرة.
موصى به:
قياس درجة الحرارة باستخدام XinaBox و Thermistor: 8 خطوات
قياس درجة الحرارة باستخدام XinaBox و Thermistor: قم بقياس درجة حرارة السائل باستخدام مدخل تناظري xChip من XinaBox ومسبار الثرمستور
قياس درجة الحرارة باستخدام AD7416ARZ و Raspberry Pi: 4 خطوات
قياس درجة الحرارة باستخدام AD7416ARZ و Raspberry Pi: AD7416ARZ عبارة عن مستشعر درجة حرارة 10 بت مع أربعة محولات تناظرية أحادية القناة إلى رقمية ومستشعر درجة حرارة مدمج فيه. يمكن الوصول إلى مستشعر درجة الحرارة على الأجزاء عبر قنوات المضاعف. هذه درجة الحرارة عالية الدقة
قراءة درجة الحرارة باستخدام مستشعر درجة الحرارة LM35 مع Arduino Uno: 4 خطوات
قراءة درجة الحرارة باستخدام مستشعر درجة الحرارة LM35 مع Arduino Uno: مرحبًا يا رفاق في هذه التعليمات ، سوف نتعلم كيفية استخدام LM35 مع Arduino. Lm35 هو مستشعر لدرجة الحرارة يمكنه قراءة قيم درجة الحرارة من -55 درجة مئوية إلى 150 درجة مئوية. إنه جهاز ثلاثي الأطراف يوفر جهدًا تناظريًا يتناسب مع درجة الحرارة. عالية
ميزان حرارة للطهي بمسبار درجة الحرارة ESP32 NTP مع تصحيح Steinhart-Hart وإنذار درجة الحرارة: 7 خطوات (بالصور)
ميزان حرارة للطهي بمسبار درجة الحرارة ESP32 NTP مع تصحيح Steinhart-Hart وإنذار درجة الحرارة: لا يزال في رحلة لإكمال & quot؛ المشروع القادم & quot ؛، & quot؛ ESP32 NTP ميزان حرارة للطهي بمسبار درجة الحرارة مع تصحيح Steinhart-Hart وإنذار درجة الحرارة & quot؛ هو Instructable يوضح كيف يمكنني إضافة مسبار درجة حرارة NTP ، بيزو ب
قياس محتوى رطوبة التربة باستخدام منصة Esp32 و Thingsio.ai: 6 خطوات
قياس محتوى رطوبة التربة باستخدام Esp32 ومنصة Thingsio.ai: في هذا البرنامج التعليمي سأشرح قراءة محتوى الرطوبة في التربة باستخدام esp32 ثم إرسال القيم إلى النظام الأساسي السحابي Thingsio.ai IoT