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

LDR باستخدام Thingsai Cloud: 13 خطوة
LDR باستخدام Thingsai Cloud: 13 خطوة

فيديو: LDR باستخدام Thingsai Cloud: 13 خطوة

فيديو: LDR باستخدام Thingsai Cloud: 13 خطوة
فيديو: Using Arduino IoT Cloud with ESP8266 || Setup & Complete Guide 2024, شهر نوفمبر
Anonim
LDR باستخدام Thingsai Cloud
LDR باستخدام Thingsai Cloud

مرحبًا….. سنتعلم اليوم كيفية قياس شدة الضوء ونشر القيم في منصة THINGSAI IOT السحابية باستخدام ESP32.

متطلبات القيام بهذا المشروع هي

1. مجلس تطوير ESP32 (لقد استخدمت ESP32 DEVKIT V1)

2. مستشعر LDR

3. أسلاك العبور

4. حساب في منصة THINGSAI IOT

الخطوة 1: إنشاء منصة THINGSIO وتسجيل الدخول إليها

إنشاء منصة THINGSIO وتسجيل الدخول إليها
إنشاء منصة THINGSIO وتسجيل الدخول إليها

قم بتسجيل الدخول إلى حساب THINGS AI. إذا كنت جديدًا ، فقم بالتسجيل في الحساب بالضغط على زر التسجيل وملء جميع بيانات الاعتماد. سيتم إنشاء حسابك وبعد ذلك ستتمكن من العمل على النظام الأساسي السحابي وإنشاء مشروعك المخصص

الخطوة الثانية: إنشاء مشروع جديد

إنشاء مشروع جديد
إنشاء مشروع جديد

بعد تسجيل الدخول إلى الحساب ، لإنشاء مشروع ما عليك سوى النقر على المشروع الجديد ثم إعطاء اسم المشروع.

الخطوة الثالثة: إنشاء جهاز جديد

إنشاء جهاز جديد
إنشاء جهاز جديد

بعد إنشاء المشروع ، الشيء التالي الذي عليك القيام به هو إنشاء جهاز جديد ، أعط اسم الجهاز وأدخل معرف الجهاز إما يدويًا أو تم إنشاؤه بواسطة النظام.

الخطوة 4: تحديد معلمة الجهاز

تحديد معلمة الجهاز
تحديد معلمة الجهاز

أعط معلمة الجهاز ثم حدد نوع المعلمة

الخطوة 5: تحديث الجهاز

تحديث الجهاز
تحديث الجهاز

حدد المعلمة ثم قم بتحديث الجهاز

الخطوة السادسة: البرمجة

الترميز
الترميز

من نماذج الأكواد ، حدد كود esp32 وانسخه ثم الصقه في arduino IDE وقم بإجراء التغييرات اللازمة وفقًا للمتطلبات. لقد أعطيت الرمز أدناه

# تضمين # تضمين

#يشمل

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

ر int ؛ int outputpin = A0 ؛ // ds18b20

int sensvalue؛

////////////////////////////////////////// جميع التصريحات عن CLOUD ////// //////////////////////////

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" ؛ // هذا لتحويل الطابع الزمني

const int httpPort = 80 ؛

const int httpsPort = 443 ؛

const char * server = "api.thingsai.io" ؛ // عنوان URL للخادم

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

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

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

عميل WiFiClient ؛

///////////////////////////////////////// TIMESTAMP CALCULATION وظيفة //////// /////////////////////////////// int GiveMeTimestamp () {unsigned long timeout = millis () ؛ // عميل WiFiClient ؛

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

{

إذا (بالمللي () - المهلة> 50000)

{

client.stop () ؛ العودة 0 ؛

}

}

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

{

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

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

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

{

int j = 0 ؛

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

{

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

}

}

}

} ////////////////////////////////////////////////////////////////////////////////////////////////////////

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

{

Serial.begin (115200) ؛

تأخير (10) ؛

// نبدأ بالاتصال بشبكة WiFi

WiFiMulti.addAP ("wifi" ، "pswrd") ؛

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

}

حلقة فارغة()

{

int analogValue = analogRead (outputpin) ؛

{///////////////////////////////////////// إرسال الاستعلام والحصول على الاستجابة /// //////////////////////

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

String PostValue = "{" device_id / ": 61121695844، \" slave_id / ": 2"؛

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

PostValue = PostValue + "، \" data / ": {" كثافة / ":" + / sensorvalue + "}" + "}"؛

Serial.println (PostValue) ؛

/ * إنشاء مثيل من WiFiClientSecure * / WiFiClientSecure client ؛

Serial.println ("الاتصال بالخادم عبر المنفذ 443") ؛

إذا (! client.connect (خادم ، 443))

{

Serial.println ("فشل الاتصال!") ؛

}

آخر

{Serial.println ("متصل بالخادم!") ؛ / * إنشاء طلب HTTP * /

client.println ("POST / devices / deviceData HTTP / 1.1") ؛

client.println ("المضيف: api.thingsai.io") ؛ //client.println("Connection: close ") ؛ cl

ient.println ("نوع المحتوى: application / json") ؛

client.println ("cache-control: no-cache") ؛

client.println ("التفويض: BearereyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqm9PNTk6) client.print ("طول المحتوى:") ؛

client.println (PostValue.length ()) ،

client.println () ،

client.println (PostValue) ؛ ////////////////////////////////// تم الانتهاء من نشر البيانات على السحابة والحصول الآن على نموذج الاستجابة السحابية الخادم//////////////////

Serial.print ("في انتظار الرد") ؛

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

تأخير (50) ؛ //

Serial.print (".") ؛

} / * إذا كانت البيانات متاحة ، فاستلم وطبع إلى Terminal * /

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

{

char c = client.read () ؛

Serial.write (ج) ؛

}

/ * إذا تم قطع اتصال الخادم ، أوقف العميل * /

إذا (! client.connected ())

{

Serial.println () ،

Serial.println ("الخادم غير متصل") ؛

client.stop () ؛

}

} Serial.println ("//////////////////////// THE END ////////////////////// / ") ؛

تأخير (3000) ؛ }}

الخطوة 7: اختيار مجلس الإدارة و Com Port

اختيار مجلس الإدارة و Com Port
اختيار مجلس الإدارة و Com Port

من الأدوات ، حدد اللوحة ثم حدد منفذ com

الخطوة 8: توصيلات الدائرة

اتصالات الدائرة
اتصالات الدائرة
اتصالات الدائرة
اتصالات الدائرة
اتصالات الدائرة
اتصالات الدائرة

يتم الترميز ثم قم بإجراء الاتصالات التالية كما هو مذكور أدناه

روابط:

GND من esp32 إلى GND لمستشعر LDR

3V3 0f esp32 إلى Vcc لـ LDR

نائب رئيس esp32 إلى A0 من LDR

الخطوة 9: التجميع والتحميل

ترجمة وتحميل
ترجمة وتحميل

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

الخطوة 10: جهاز العرض التسلسلي

جهاز المراقبة التسلسلي
جهاز المراقبة التسلسلي

يتم الحصول على القيم على الشاشة التسلسلية ثم يتم إرسالها إلى منصة THINGSAI IOT Cloud.

الخطوة 11: القراءات

قراءة٪ s
قراءة٪ s

هذا يوضح القيم التي تم الحصول عليها من لوحة esp32.

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

التمثيل الرسومي
التمثيل الرسومي

هذا هو التمثيل الرسومي للقيم التي تم الحصول عليها. هذه نهاية البرنامج التعليمي. آمل أن تكون قد فهمت. اشكرك

موصى به: