جدول المحتويات:
2025 مؤلف: John Day | [email protected]. آخر تعديل: 2025-01-23 12:54
في مجموعة التعليمات هذه ، سننظر في كيفية إنشاء مسبار درجة حرارة مزود بتقنية WiFi باستخدام ESP8266 بسيط لرفع الأحمال الثقيلة ومستشعر درجة الحرارة / الرطوبة DHT11. سنستخدم أيضًا لوحة الدوائر التي قمت بإنشائها وهي أيضًا معروضة للبيع الآن في متجر tindie التابع للقناة إذا كنت ترغب في الشراء.
لنبدأ في فاتورة المواد التي ستحتاجها:
وحدة واي فاي ESP8266
amzn.to/2pkGPoa
مستشعر DHT11
amzn.to/2phwfhO
TP-Link Smart Plug
amzn.to/2GElQUz
يمكنك أيضًا التقاط الوحدة بأكملها من متجر tindie للقناة:
www.tindie.com/products/misperry/wifi-enab…
تحقق أيضًا من JLCPCB لـ PCB Fabriction. هم الذين اعتدت صنع ثنائي الفينيل متعدد الكلور:
شحن مجاني للطلب الأول ونماذج أولية لثنائي الفينيل متعدد الكلور بقيمة 2 دولار على
الخطوة 1: إضافة الرمز إلى ESP8266
سنحتاج الآن إلى وميض الكود التالي على ESP8266. يمكن العثور على هذا الرمز في مستودع جيثب التالي:
في الكود أدناه ، سيتعين عليك فقط إعداد أقسام التعريف القليلة الأولى:
خادم MQTT:
مستخدم MQTT:
كلمة مرور MQTT:
MQTT_sensor_topic:
-واي فاي
قال: قال من شبكة wifi التي تتصل بها
كلمة المرور: كلمة مرور WiFi.
بمجرد أن تقوم بملء هذا في الكود أدناه ، يمكنك بعد ذلك تجميع الأخطاء والتحقق منها ، وإذا لم تكن هناك أخطاء ، فيمكنك تحديثها على ESP8266.
/ * * اسم الملف: TempHumSensor.ino * * التطبيق: HomeAssistant Space Heater Thermostat * * الوصف: هذا الرمز مخصص لجهاز Arduino * المتوافق مع ESP8266 WiFi. سيؤدي هذا إلى ترحيل معلومات درجة الحرارة * لجهاز DHT11 إلى واجهة HASS للمعالجة. * * المؤلف: M. Sperry - https://www.youtube.com/misperry * التاريخ: 03 / * المراجعة: 1.0 * * * /
#يشمل
# تضمين # تضمين # تضمين # تضمين # تضمين
#define CON_TIME_OUT 20 // مهلة عدم الاتصال بشبكة wifi
#define MQTT_TIME_OUT 10 // مهلة عدم الاتصال بخادم MQTT
#define DHTPIN 0 // دبوس متصل بمستشعر DHT
#define DHTTYPE DHT11 // نوع المستشعر هو DHT11 ، يمكنك تغييره إلى DHT22 (AM2302) ، DHT21 (AM2301)
#define mqtt_server "" // أدخل إضافات خادم MQTT أو IP. أستخدم عنوان DuckDNS الخاص بي (yourname.duckdns.org) في هذا المجال
#define mqtt_user "" // أدخل اسم مستخدم MQTT الخاص بك #define mqtt_password "" // أدخل كلمة المرور #define MQTT_SENSOR_TOPIC "ha / bedroom_temp" // أدخل موضوعًا لـ MQTT
// Wifi: SSID وكلمة المرور
const char * ssid = ""؛ const char * password = "" ؛
// DHT SEtup
DHT_Unified dht (DHTPIN ، DHTTYPE) ؛ uint32_t delayMS ؛
WiFiClient wifi العميل ؛
عميل PubSubClient (wifiClient) ؛
// وظيفة تسمى لنشر درجة الحرارة والرطوبة
نشر voidData (float p_temperature) {// إنشاء كائن JSON // doc: https://github.com/bblanchon/ArduinoJson/wiki/API٪20Reference StaticJsonBuffer jsonBuffer؛ JsonObject & root = jsonBuffer.createObject () ، // INFO: يجب تحويل البيانات إلى سلسلة ؛ تحدث مشكلة عند استخدام الطفو… // التحويل إلى فهرنهايت p_temperature = (p_temperature * 1.8) + 32 ؛ // التحويل إلى جذر فهرنهايت ["درجة الحرارة"] = (سلسلة) p_temperature؛ root.prettyPrintTo (المسلسل) ، Serial.println ("") ؛
بيانات شار [200] ؛
root.printTo (البيانات ، root.measureLength () + 1) ، client.publish (MQTT_SENSOR_TOPIC ، بيانات ، صحيح) ؛ }
// تم استدعاء الوظيفة عند وصول رسالة MQTT
رد اتصال باطل (char * p_topic، byte * p_payload، unsigned int p_length) {}
إعادة الاتصال باطل () {
// Loop حتى نعيد الاتصال أثناء (! client.connected ()) {Serial.print ("INFO: Attempting MQTT connection…") ؛ // حاول الاتصال إذا (client.connect ("ESPBlindstl" ، mqtt_user ، mqtt_password)) {Serial.println ("INFO: متصل") ؛ } else {Serial.print ("ERROR: failure، rc =")؛ Serial.print (client.state ()) ؛ Serial.println ("DEBUG: حاول مرة أخرى خلال 5 ثوانٍ") ؛ // انتظر 5 ثوانٍ قبل إعادة محاولة التأخير (5000) ؛ }}}
إعداد باطل (باطل) {
Serial.begin (9600) ؛
// نبدأ بالاتصال بشبكة WiFi
Serial.println () ، Serial.println () ، Serial.print ("الاتصال بـ") ؛ Serial.println (ssid) ؛
WiFi.begin (SSID ، كلمة المرور) ؛
بينما (WiFi.status ()! = WL_CONNECTED) {
تأخير (800) ؛ Serial.print (".") ؛ }
Serial.println ("") ؛
Serial.println ("متصل بشبكة WiFi") ؛ Serial.println ("عنوان IP:") ؛ Serial.println (WiFi.localIP ()) ؛ // init the MQTT connection client.setServer (mqtt_server ، 1883) ؛ client.setCallback (رد الاتصال) ؛
// تهيئة مستشعر DHT
dht.begin () ، Serial.println ("بيانات الاستشعار الموحدة DHT11") ؛
// طباعة تفاصيل مستشعر درجة الحرارة
sensor_t الاستشعار ؛ dht.temperature (). getSensor (& sensor) ؛ Serial.println ("------------------------------------") ؛ Serial.println ("درجة الحرارة") ؛ Serial.print ("Sensor:") ؛ Serial.println (sensor.name) ؛ Serial.print ("Driver Ver:") ؛ Serial.println (مستشعر الإصدار) ؛ Serial.print ("المعرف الفريد:") ؛ Serial.println (sensor.sensor_id) ؛ Serial.print ("القيمة القصوى:") ؛ Serial.print (sensor.max_value) ؛ Serial.println ("* C") ؛ Serial.print ("الحد الأدنى للقيمة:") ؛ Serial.print (sensor.min_value) ؛ Serial.println ("* C") ؛ Serial.print ("Resolution:") ؛ Serial.print (مستشعر الدقة) ؛ Serial.println ("* C") ؛ Serial.println ("------------------------------------") ؛ // طباعة تفاصيل مستشعر الرطوبة. dht.humidity (). getSensor (& sensor) ؛ Serial.println ("------------------------------------") ؛ Serial.println ("الرطوبة") ؛ Serial.print ("Sensor:") ؛ Serial.println (sensor.name) ؛ Serial.print ("Driver Ver:") ؛ Serial.println (مستشعر الإصدار) ؛ Serial.print ("المعرف الفريد:") ؛ Serial.println (sensor.sensor_id) ؛ Serial.print ("القيمة القصوى:") ؛ Serial.print (sensor.max_value) ؛ Serial.println ("٪") ؛ Serial.print ("الحد الأدنى للقيمة:") ؛ Serial.print (sensor.min_value) ؛ Serial.println ("٪") ؛ Serial.print ("Resolution:") ؛ Serial.print (مستشعر الدقة) ؛ Serial.println ("٪") ؛ Serial.println ("------------------------------------") ؛
// ضبط التأخير بين قراءات المستشعر بناءً على تفاصيل المستشعر
delayMS = sensor.min_delay / 1000 ؛ }
حلقة باطلة (باطلة) {
درجة حرارة تعويم
إذا (! client.connected ())
{إعادة الاتصال () ؛ }
تأخير (delayMS) ؛
// احصل على حدث درجة الحرارة واطبع قيمته.
حدث sensors_event_t ؛ dht.temperature (). getEvent (& event) ؛ if (isnan (event.temperature)) {Serial.println ("خطأ في قراءة درجة الحرارة!") ؛ درجة الحرارة = 0.00 ؛ } else {temperature = event.temperature؛ Serial.print ("درجة الحرارة:") ؛ Serial.print (درجة الحرارة) ؛ Serial.println ("* C") ؛ } // انشر على MQTT publishData (درجة الحرارة) ؛ }
الخطوة 2: إعداد TP-LINK Smart Plug
ستحتاج إلى ضبط قابس TP-LINK الذكي الخاص بك ، أو أي قابس ذكي لتلك الأم ، بالطريقة التي توصي بها الشركة المصنعة.
تأكد من تدوين عنوان MAC على الجهاز. إذا كان جهازك مثل جهاز TP-LINK الخاص بي ، فلا يمكنك كتابة عنوان IP ثابت. وبالتالي ، سوف تحتاج إلى تكوين جهاز التوجيه الخاص بك لحجز DHCP. سيأخذ هذا عنوان MAC الخاص بجهازك وعندما يطلب هذا الجهاز الحصول على عنوان ، فسيعطيه جهاز التوجيه نفس العنوان في كل مرة.
فيما يلي رابط لكيفية إعداد ذلك باستخدام Linksys
www.linksys.com/us/support-article؟article…
الخطوة 3: إعداد Home Assistant
الآن لإعداد Home Assistant. لهذا ، ستحتاج إلى إضافة التكوينات التالية إلى ملف config.yaml الموجود في بنية المجلد /home/homeassistant/.homeassistant على الجهاز الذي قمت بتثبيته عليه.
بمجرد الانتهاء من إضافة هذا إلى تكوين المساعد المنزلي الخاص بك ، ستحتاج إلى إعادة تشغيل برنامج المساعد المنزلي حتى تسري التغييرات.
كما سأستخدم القابس الذكي TP-LINK لجهاز التبديل والتعريف أدناه في ملف التكوين. عنوان IP المستخدم للجهاز هو العنوان الذي قمت بإعداده لحجز DHCP في الخطوة السابقة.
يمكن أيضًا العثور على هذا التكوين في github repo التالي:
mqtt: التبديل: - المنصة: اسم tplink: مضيف سخان غرفة النوم: 192.168.2.11
جهاز استشعار 1:
النظام الأساسي: mqtt state_topic: 'ha / bedroom_temp' name: Bedroom Temp unit_of_measurement: '° F' value_template: '{{value_json.temperature}}'
التشغيل الآلي:
- الاسم المستعار: _Temp Bedroom Temp High المشغل: - المنصة: numeric_state union_id: sensor. Bedroom_Temp أعلاه: 73
عمل:
service: homeassistant.turn_off worker_id: switch. Bedroom_Heater
- الاسم المستعار: _Temp Bedroom Temp Low
المشغل: - المنصة: numeric_state kingdom_id: sensor. Bedroom_Temp أدناه: 73 الإجراء: service: homeassistant.turn_on kingdom_id: switch. Bedroom_Heater
الخطوة 4: الخطوات النهائية
الآن مع تكوين المساعد المنزلي وإعداد كود Arduino الخاص بك ، ستكون جاهزًا لتنشيط النظام بأكمله. وبالتالي ، ضع قابس السخان / المروحة / المبرد في القابس الذكي وقم بتوصيل القابس الذكي. بمجرد أن يصبح جاهزًا ، ستحتاج إلى توصيل شاحن USB صغير ثم مسبار درجة الحرارة الذي يدعم WiFi. بمجرد أن يصبح كل شيء متصلاً بالإنترنت ، يجب أن تكون قادرًا على البحث في لوحة معلومات المساعد المنزلي والاطلاع على درجة الحرارة الجديدة التي يتم الإبلاغ عنها.
شكرا جزيلا لك على كل مساعدتك ودعمك. تأكد من ترك إعجاب وتعال وقم بزيارة القناة على https://www.youbue.com/misperry وشاهد كل ما لدينا هناك من أجلك. تأكد من الاشتراك والمشاركة مع أصدقائك للمساعدة في القناة.
موصى به:
أتمتة المنزل مع NodeMCU Touch Sensor LDR للتحكم في درجة الحرارة: 16 خطوة
أتمتة المنزل باستخدام NodeMCU Touch Sensor LDR للتحكم في درجة الحرارة Relay: في مشاريع NodeMCU السابقة ، قمت بالتحكم في جهازي منزلي من تطبيق Blynk. لقد تلقيت العديد من التعليقات والرسائل لترقية المشروع باستخدام التحكم اليدوي وإضافة المزيد من الميزات. لذا فقد صممت صندوق توسيع المنزل الذكي هذا. في هذا IoT
قراءة درجة الحرارة باستخدام مستشعر درجة الحرارة LM35 مع Arduino Uno: 4 خطوات
قراءة درجة الحرارة باستخدام مستشعر درجة الحرارة LM35 مع Arduino Uno: مرحبًا يا رفاق في هذه التعليمات ، سوف نتعلم كيفية استخدام LM35 مع Arduino. Lm35 هو مستشعر لدرجة الحرارة يمكنه قراءة قيم درجة الحرارة من -55 درجة مئوية إلى 150 درجة مئوية. إنه جهاز ثلاثي الأطراف يوفر جهدًا تناظريًا يتناسب مع درجة الحرارة. عالية
جهاز مراقبة الطقس ESP32 Based M5Stack M5stick C مع DHT11 - مراقبة درجة الحرارة والرطوبة ومؤشر الحرارة على M5stick-C مع DHT11: 6 خطوات
جهاز مراقبة الطقس ESP32 Based M5Stack M5stick C مع DHT11 | مراقبة درجة الحرارة والرطوبة ومؤشر الحرارة على M5stick-C مع DHT11: مرحبًا يا رفاق ، في هذه التعليمات سوف نتعلم كيفية واجهة مستشعر درجة حرارة DHT11 مع m5stick-C (لوحة تطوير بواسطة m5stack) وعرضها على شاشة m5stick-C. لذلك في هذا البرنامج التعليمي سوف نقرأ درجة الحرارة والرطوبة وأمبير. الحرارة أنا
ميزان حرارة للطهي بمسبار درجة الحرارة ESP32 NTP مع تصحيح Steinhart-Hart وإنذار درجة الحرارة: 7 خطوات (بالصور)
ميزان حرارة للطهي بمسبار درجة الحرارة ESP32 NTP مع تصحيح Steinhart-Hart وإنذار درجة الحرارة: لا يزال في رحلة لإكمال & quot؛ المشروع القادم & quot ؛، & quot؛ ESP32 NTP ميزان حرارة للطهي بمسبار درجة الحرارة مع تصحيح Steinhart-Hart وإنذار درجة الحرارة & quot؛ هو Instructable يوضح كيف يمكنني إضافة مسبار درجة حرارة NTP ، بيزو ب
استخدام هاتف Sony Ericsson المزود بتقنية Bluetooth للتحكم في جهاز الكمبيوتر الخاص بك: 6 خطوات
استخدام هاتف Sony Ericsson المزود بتقنية Bluetooth للتحكم في جهاز الكمبيوتر الخاص بك: لقد كنت أقرأ عن التعليمات لفترة من الوقت الآن ، وكنت أرغب دائمًا في القيام ببعض الأشياء التي كتب عنها الأشخاص ، لكنني وجدت نفسي أنظر إلى الأشياء التي يصعب القيام بها لأنها صعبة فعلاً ، أو لأن