فهرست مطالب:
- مرحله 1: ایجاد و ورود به سیستم THINGSIO
- مرحله 2: ایجاد پروژه جدید
- مرحله 3: ایجاد یک دستگاه جدید
- مرحله 4: تعریف پارامتر دستگاه
- مرحله 5: به روز رسانی دستگاه
- مرحله ششم: کد نویسی
- مرحله 7: انتخاب هیئت مدیره و Com Port
- مرحله 8: اتصالات مدار
- مرحله 9: کامپایل و بارگذاری کنید
- مرحله 10: مانیتور سریال
- مرحله 11: خواندن
- مرحله 12: نمایش گرافیکی
- مرحله 13:
تصویری: LDR با استفاده از Thingsai Cloud: 13 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:55
HEY…..امروز ما با اندازه گیری شدت نور و ارسال مقادیر در پلتفرم ابری THINGSAI IOT با استفاده از ESP32 آشنا می شویم.
شرایط لازم برای انجام این پروژه عبارتند از:
1. هیئت مدیره توسعه ESP32 (من از ESP32 DEVKIT V1 استفاده کرده ام)
2. سنسور LDR
3. سیم جامپر
4. حساب در THINGSAI IOT PLATFORM
مرحله 1: ایجاد و ورود به سیستم THINGSIO
وارد حساب THINGS AI شوید. اگر تازه کار هستید ، با فشردن دکمه ثبت نام در حساب کاربری ثبت نام کنید و تمام اطلاعات کاربری را پر کنید. حساب شما ایجاد می شود و از آن پس می توانید بر روی بستر ابر کار کرده و پروژه دلخواه خود را ایجاد کنید
مرحله 2: ایجاد پروژه جدید
پس از ورود به حساب ، برای ایجاد یک پروژه فقط روی پروژه جدید کلیک کنید و سپس نام پروژه را وارد کنید.
مرحله 3: ایجاد یک دستگاه جدید
بعد از ایجاد پروژه ، کار بعدی که باید انجام دهید ایجاد یک دستگاه جدید است. نام دستگاه را وارد کرده و شناسه دستگاه را به صورت دستی یا سیستم ایجاد شده وارد کنید.
مرحله 4: تعریف پارامتر دستگاه
پارامتر دستگاه را بدهید و سپس نوع پارامتر را انتخاب کنید
مرحله 5: به روز رسانی دستگاه
پارامتر را انتخاب کرده و سپس دستگاه را به روز کنید
مرحله ششم: کد نویسی
از کدهای نمونه کد esp32 را انتخاب کرده و آن را کپی کرده و سپس در IDE آردوینو بچسبانید و تغییرات لازم را با توجه به نیاز انجام دهید. من کد زیر را داده ام
#شامل #شامل شود
#عبارتند از
int شمارش = 0 ، i ، m ، j ، k ؛
int t؛ int outputpin = A0؛ // ds18b20
int sensorvalue؛
///////////////////////////////////////// همه اعلامیه ها برای ابر ////// /////////////////////////
const char* host = "api.thingsai.io"؛ // یا
host = 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) ؛
// ما با اتصال به یک شبکه WiFi شروع می کنیم
WiFiMulti.addAP ("wifi" ، "pswrd") ؛
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ال را ارسال کرده و پاسخ را دریافت کنید /// /////////////////////
sensorvalue = analogRead (A0)؛ // پین ورودی آنالوگ 0 را بخوانید
sensorvalue = sensorvalue/100؛
Serial.print (سنسور ، DEC) ؛ // مقدار خوانده شده را چاپ می کند
Serial.print ("\ n")؛ // فاصله بین اعداد را چاپ می کند
تاخیر (1000) ؛ // برای مطالعه بعدی 100 میلی ثانیه صبر کنید
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 / ": 61121695844 ، \" slave_id / ": 2"؛
PostValue = PostValue + "، \" dts / ":" + timestamp؛
PostValue = PostValue +"، \" data / ": {" INTENSITY / ":" +\ sensorvalue +"}" +"}"؛
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 ")؛ cl
ient.println ("نوع محتوا: برنامه/json") ؛
client.println ("cache-control: no-cache")؛
client.println ("مجوز: BearereyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqCmV2kTV6ktVmq2qtYmq2gtwmq" 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 ("سرور قطع شده است")؛
client.stop ()؛
}
} Serial.println ("///////////////////// END ////////////////// /") ؛
تاخیر (3000) ؛ }}
مرحله 7: انتخاب هیئت مدیره و Com Port
از ابزارهای برد را انتخاب کنید و سپس پورت com را انتخاب کنید
مرحله 8: اتصالات مدار
کدگذاری انجام می شود ، سپس اتصالات زیر را همانطور که در زیر ذکر شده است ، ایجاد کنید
اتصالات:
GND از esp32 به GND سنسور LDR
3V3 0f esp32 به Vcc از LDR
VP esp32 به A0 LDR
مرحله 9: کامپایل و بارگذاری کنید
کد را در esp32 کامپایل و بارگذاری کنید و سپس خوانش ها را از مانیتور سریال بخوانید. این نتیجه ای شبیه به این را نشان می دهد
مرحله 10: مانیتور سریال
مقادیر روی مانیتور سریال بدست می آیند و سپس به پلت فرم ابر THINGSAI IOT ارسال می شوند.
مرحله 11: خواندن
این مقادیر بدست آمده از برد esp32 را نشان می دهد.
مرحله 12: نمایش گرافیکی
این نمایش گرافیکی مقادیر بدست آمده است. این پایان آموزش است. امیدوارم متوجه شده باشید متشکرم
توصیه شده:
بازی DINO با استفاده از LDR: 5 مرحله
DINO GAME با استفاده از LDR: بازی دایناسورها ، همچنین به عنوان T-Rex Game و Dino Runner شناخته می شود ، یک بازی مرورگر داخلی در مرورگر وب Google Chrome است. این بازی توسط Sebastien Gabriel در سال 2014 ایجاد شده است و می توانید با ضربه زدن به فاصله در حالت آفلاین در Google Chrome به آن دسترسی پیدا کنید. A L
پرده اتوماتیک/پنجره کور با استفاده از آردوینو و LDR: 3 مرحله
پرده اتوماتیک/پنجره کور با استفاده از آردوینو و LDR: در این آموزش ما قصد داریم نحوه ایجاد پنجره خودکار پنجره با استفاده از ماژول آردوینو و LDR را نشان دهیم. در روز پرده/پرده پنجره پایین می رود و در شب نیز بالا می آید
آشکارساز حرکت با استفاده از بستر ابری Thingsai.io Iot: 6 مرحله
تشخیص حرکت با استفاده از Thingsai.io Iot Cloud Platform: در این آموزش قصد دارم در مورد تشخیص حرکت با استفاده از سنسور PIR و Esp32 به همراه پلتفرم ابری IOT Thingai.io توضیح دهم
مدارهای GPIO Raspberry Pi: استفاده از سنسور آنالوگ LDR بدون ADC (مبدل آنالوگ به دیجیتال): 4 مرحله
مدارهای GPIO Raspberry Pi: استفاده از سنسور آنالوگ LDR بدون ADC (مبدل آنالوگ به دیجیتال): در دستورالعمل های قبلی ما به شما نشان داده ایم که چگونه می توانید پین های GPIO رزبری پای خود را به LED ها و سوئیچ ها وصل کنید و چگونه پین های GPIO می توانند بالا باشند یا کم. اما اگر می خواهید رزبری پای خود را با سنسور آنالوگ استفاده کنید ، چطور؟ اگر می خواهیم از یک
چگونه می توان یک مدار ساده خودکار نور شب را با استفاده از LDR ایجاد کرد: 4 مرحله
چگونه می توان با استفاده از LDR یک مدار ساده خودکار در شب را ایجاد کرد: سلام امروز به شما نشان می دهم که چگونه می توانید یک مدار ساده اتوماتیک نور شب را با استفاده از LDR (مقاومت وابسته به نور) و یک mosfet بسازید ، بنابراین مراحل را دنبال کنید. نمودار مدار روشنایی خودکار شب و همچنین t