جدول المحتويات:
2025 مؤلف: John Day | [email protected]. آخر تعديل: 2025-01-13 06:56
سأشرح في هذا البرنامج التعليمي كيفية قياس مدى قرب الجهاز ونشر القيم في النظام الأساسي السحابي Thingsai و io باستخدام مستشعر القاعة ولوحة التطوير esp32.
مستشعر تأثير هول هو جهاز يستخدم لقياس حجم المجال المغناطيسي. جهد الخرج يتناسب طرديا مع شدة المجال المغناطيسي من خلاله. تستخدم مستشعرات تأثير القاعة لاستشعار القرب وتحديد المواقع واكتشاف السرعة وتطبيقات الاستشعار الحالية.
الخطوة 1: المكونات
مكونات الأجهزة:
1. مستشعر القاعة
2. مجلس التنمية esp32
3. أسلاك العبور
مكونات البرنامج:
1. Arduino IDE
2. ThingsIO. AI
الخطوة الثانية: التوصيلات:
مستشعر القاعة ---------------------- esp32
Aout ------------------------------ vp
Gnd ----------------------------- Gnd
Vcc ------------------------------ 3V3
الخطوة الثالثة: الترميز:
#يشمل
#يشمل
#يشمل
عدد صحيح = 0 ، أنا ، م ، ي ، ك ؛
قياس كثافة العمليات
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) ؛
// نبدأ بـ
الاتصال بشبكة WiFi
WiFiMulti.addAP ("wifi_name" ،
"كلمة السر واي فاي")؛
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 (إخراج دبوس) ؛
{
///////////////////////////////////////// أرسل الاستعلام و
احصل على الاستجابة /////////////////////////
قياس كثافة العمليات
= 0;
القياس =
hallRead () ؛Serial.print ("قياس مستشعر القاعة:") ؛Serial.println (قياس) ؛
تأخير (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 / ": 61121696007، \" slave_id / ": 2" ؛
PostValue =
PostValue + "، \" dts / ":" + الطابع الزمني؛
PostValue =
PostValue + "، \" data / ": {" قرب / ":" + قياس + "}" + "}"؛Serial.println (PostValue) ؛
/ * إنشاء مثيل WiFiClientSecure * /
عميل WiFiClientSecure ؛Serial.println ("الاتصال بالخادم عبر المنفذ 443") ؛
لو
(! client.connect (الخادم ، 443)) {Serial.println ("فشل الاتصال!") ؛
} آخر {Serial.println ("متصل بالخادم!") ؛
/ * إنشاء
طلب */
client.println ( POST
/ الأجهزة / 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 ( التفويض:
حامل eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqC2PNTkXs9PKy6 "m9 "client.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: النتيجة:
يتم إرسال القيم التي تتم قراءتها من المستشعر إلى سحابة IOT بنجاح ويتم إنشاء الرسم البياني كقرب مقابل الوقت. مع هذا يتم تحليل عمل المستشعر واستخدامه وفقًا لمناطق التطبيق المطلوبة.
الخطوة 5: إكمال البرنامج التعليمي:
هذا هو المشروع الكامل لقياس القرب من جهاز باستخدام مستشعر القاعة esp32 والنظام الأساسي السحابي Thingsai.io. شكرا لك