فهرست مطالب:
- مرحله 1: اجزاء:
- مرحله 2: نمایندگی نمودار بلوک Esp32 را مسدود کنید
- مرحله 3: کدگذاری:
- مرحله 4: خروجی:
- مرحله 5: نمودارها:
- مرحله 6:
تصویری: اندازه گیری دما با استفاده از نرم افزار Esp32 و Thingsio.ai: 6 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:55
در این آموزش قصد دارم در مورد اندازه گیری دمای محیط با استفاده از سنسور دمای داخلی موجود در صفحه توسعه esp32 توضیح دهم. esp32 دارای بسیاری از سنسورهای داخلی است مانند سنسور سالن که به عنوان سنسور مجاورت ، سنسور لمسی ، سنسور دما استفاده می شود. در این آموزش ما قصد داریم در مورد سنسور دما بحث کنیم.
مرحله 1: اجزاء:
سخت افزار:
1.esp32 هیئت مدیره توسعه
نرم افزار:
1. آردوینو IDE
2. Thingsio.ai
مرحله 2: نمایندگی نمودار بلوک 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: نمودارها:
نمایش گرافیکی مقادیر خوانده شده از سنسور دمای پردازنده.
توصیه شده:
اندازه گیری زمان (ساعت اندازه گیری نوار): 5 مرحله (همراه با تصاویر)
Time Time (Tape Measure Clock): برای این پروژه ، ما (Alex Fiel & amp؛ Anna Lynton) یک ابزار اندازه گیری روزانه تهیه کردیم و آن را به ساعت تبدیل کردیم! طرح اولیه این بود که یک نوار اندازه گیری موجود را موتور کنید. در ساخت آن ، ما تصمیم گرفتیم که راحت تر بتوانیم پوسته خودمان را ایجاد کنیم
سخت افزار و نرم افزار هک دستگاه های هوشمند ، Tuya و Broadlink LEDbulb ، Sonoff ، BSD33 Smart Plug: 7 مرحله
سخت افزار و نرم افزار هک دستگاه های هوشمند ، Tuya و Broadlink LEDbulb ، Sonoff ، BSD33 Smart Plug: در این دستورالعمل به شما نشان می دهم که چگونه چندین دستگاه هوشمند را با سیستم عامل خودم فلش کرده ام ، بنابراین می توانم آنها را با MQTT از طریق راه اندازی Openhab کنترل کنم. دستگاه های جدید هنگام هک کردن آنها. البته روشهای دیگر نرم افزاری برای فلش کردن سفارشی وجود دارد
نحوه بارگیری نرم افزار رایگان به عنوان دانشجوی ISU (مایکروسافت ، Adobe و نرم افزار امنیتی: 24 مرحله
نحوه بارگیری نرم افزار رایگان به عنوان دانشجوی ISU (مایکروسافت ، Adobe و نرم افزار امنیتی: برای Adobe: به مرحله 1 بروید. برای مایکروسافت: به مرحله 8 بروید. برای امنیت: به مرحله 12 بروید. برای Azure: به مرحله 16 بروید
شروع کار آردوینو با سخت افزار و نرم افزار و آموزش های آردوینو: 11 مرحله
شروع کار آردوینو با سخت افزار و نرم افزار و آموزش های آردوینو: امروزه سازندگان ، توسعه دهندگان برای توسعه سریع نمونه اولیه پروژه ها ، آردوینو را ترجیح می دهند. آردوینو یک پلت فرم الکترونیکی منبع باز است که بر اساس سخت افزار و نرم افزارهای آسان استفاده می شود. آردوینو دارای جامعه کاربری بسیار خوبی است. برد آردوینو d
اندازه گیری رطوبت خاک با استفاده از Esp32 و بستر Thingsio.ai: 6 مرحله
اندازه گیری محتوای رطوبت خاک با استفاده از Esp32 و بستر Thingsio.ai: در این آموزش قصد دارم در مورد خواندن میزان رطوبت خاک با استفاده از esp32 و سپس ارسال مقادیر به سکوی ابر thingsio.ai IoT توضیح دهم