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

مسجل درجة حرارة WiFi (مع ESP8266): 11 خطوة (بالصور)
مسجل درجة حرارة WiFi (مع ESP8266): 11 خطوة (بالصور)

فيديو: مسجل درجة حرارة WiFi (مع ESP8266): 11 خطوة (بالصور)

فيديو: مسجل درجة حرارة WiFi (مع ESP8266): 11 خطوة (بالصور)
فيديو: مرقبة درجة الحرارة والرطوبة باستحدام سرفر محلي NodeMCU ESP8266 Monitoring DHT11/ DHT22 2024, يوليو
Anonim
Image
Image
المواد
المواد

مرحبا ، سعيد لرؤيتك هنا. آمل أن تجد في هذا الدليل بعض المعلومات المفيدة. لا تتردد في إرسال الاقتراحات والأسئلة إلي … فيما يلي بعض البيانات الأساسية ونظرة عامة سريعة على المشروع. لمستخدمي الهاتف المحمول: Video. Let me know what your think of the project in the comment section، thanks. لقد اشتريت مؤخرًا لوحة NodeMcu (تستند إلى esp8266) فقط لتجربتها ، لذا فإن هذا ليس مشروعًا متقدمًا حقًا. لكنها تعمل وهذا ما أحتاجه ، لذلك لا بأس ، الوظيفة الرئيسية لمسجل البيانات هذا هي جمع درجة الحرارة وحفظها في الخادم. يتيح ذلك للمستخدمين التحقق من البيانات والرسم البياني عبر الإنترنت حتى عندما لا يكونون في نفس موقع المسجل (على سبيل المثال لمحطة الطقس). ميزة أخرى مفيدة هي تحديث OTA المضمن في الكود الذي يتيح للمستخدم تحديث البرنامج وتخصيصه بسهولة. سأحلل جهازي استشعار وطريقة اكتسابهما ذات الصلة لتحقيق التوازن بين جميع الإيجابيات والسلبيات.

المفسد: بعد قليل من الاختبار وجدت أن المستشعر الرقمي مثل DS18B20 هو الحل الأفضل لأنه يوفر ثباتًا ودقة أعلى. إنه بالفعل مقاوم للماء ومع الكابل.

الخطوة 1: المواد

المواد
المواد
المواد
المواد
المواد
المواد

هذا مشروع صغير به عدد قليل من المكونات الخارجية ، لذلك ستكون قائمة BOM قصيرة حقًا. ومع ذلك ، دعونا نرى ما هي المواد المطلوبة:

  • NodeMcu V3 (أو أي معالج ESP8266 متوافق) ؛
  • RGB led (الأنود المشترك) ؛
  • مقاومات LED (1x10Ω ، 1x22Ω ، 1x100Ω ، 1x10kΩ)
  • DS18B20 (مقياس حرارة متكامل مكسيم) ؛
  • LM35 (مقياس حرارة Texas Instrument) ؛
  • بطارية خارجية (اختيارية) ؛
  • كابل؛
  • الموصل (لجعله أكثر "تقدمًا") ؛
  • Box (اختياري ، مرة أخرى لجعله أكثر "تقدمًا") ؛
  • حامل الصمام (اختياري) ؛

ملاحظة: كما قلت ، تحتاج إلى اختيار إحدى الطريقتين. إذا اخترت ميزان الحرارة LM35 ، فستحتاج إلى بعض المكونات الأخرى:

  • أتيني 45/85 ؛
  • مبرمج AVR (أو Arduino كـ ISP) ؛
  • المقاوم (1x1kΩ ، 1x2kΩ ، 1x10kΩ ، 1x18kΩ)
  • موصل الشريط 2.54 مم (اختياري)
  • الصمام الثنائي (2x1N914)
  • بيرف بورد أو ثنائي الفينيل متعدد الكلور ؛

الخطوة الثانية: اختيار المستشعر

اختيار المجس
اختيار المجس

قد يكون اختيار المستشعر خطوة صعبة: يوجد اليوم أطنان من المحولات (توفر TI 144 عنصرًا مختلفًا) على حد سواء التناظرية والرقمية بنطاق درجة حرارة ودقة وحالة مختلفة.

  • يمكن بسهولة تغيير مسجل البيانات من درجة الحرارة إلى كمية أخرى (الجهد ، التيار ، …) ؛
  • قد يكون أرخص قليلا ؛
  • سهل الاستخدام لأنه لا يتطلب أي مكتبة خاصة ؛

سلبيات:

  • طلب ADC (الذي يمكن أن يؤثر على دقة القياس) والمكونات الخارجية الأخرى. نظرًا لأن esp8266 يحتوي على ADC واحد فقط (وليس دقيقًا حقًا) ، فإنني أقترح استخدام واحد خارجي.
  • يحتاج إلى كبل مخصص مع خاصية رفض الضوضاء لأن أي جهد كهربائي يمكن أن يغير النتيجة.

بعد قليل من التفكير ، قررت استخدام LM35 ، وهو مستشعر خطي بعامل مقياس + 10mV / ° C بدقة 0.5 درجة مئوية وتيار منخفض جدًا (حوالي 60uA) بجهد تشغيل من 4V إلى 30V. لمزيد من التفاصيل أقترح رؤية ورقة البيانات: LM35.

المستشعرات الرقمية (موصى بها بشدة) الإيجابيات:

تقريبا أي مكونات خارجية مطلوبة ؛

ADC متكامل

سلبيات:

طلب مكتبة أو برنامج يقوم بفك تشفير الإشارة الرقمية (I2C ، SPI ، Serial ، One Wire ، …) ؛

أغلى؛

لقد اخترت DS18B20 لأنني وجدت مجموعة من 5 مستشعرات مقاومة للماء على أمازون ولأنها موثقة على نطاق واسع على الإنترنت. الميزة الرئيسية هي قياس 9-12 بت ، ناقل بسلك واحد ، جهد إمداد 3.0 إلى 5.5 ، دقة 0.5 درجة مئوية. مرة أخرى ، لمزيد من التفاصيل هنا توجد ورقة البيانات: DS18B20.

الخطوة 3: LM35

إل إم 35
إل إم 35
إل إم 35
إل إم 35
إل إم 35
إل إم 35

دعنا نحلل كيف قمت بتطبيق ADC الخارجي وميزة أخرى لميزان الحرارة LM35. لقد وجدت كبلًا بثلاثة أسلاك ، أحدها مزود بالدرع واثنان بدونه. قررت إضافة مكثف فصل لتثبيت جهد الإمداد بالقرب من المستشعر ، ولتحويل درجة الحرارة التناظرية إلى رقمية ، استخدمت معالجًا دقيقًا Attiny85 في حزمة dip8 (مرة أخرى لمزيد من المعلومات ، راجع ورقة البيانات: attiny85). أهم شيء بالنسبة لنا هو ADC 10 بت (ليس الأفضل حقًا ولكنه دقيق بدرجة كافية بالنسبة لي). للتواصل مع Esp8266 ، قررت استخدام الاتصال التسلسلي مع الأخذ في الاعتبار أن esp8266 تعمل مع 3.3 فولت و attiny85 عند 5 فولت (لأنها تحتاج إلى تشغيل المستشعر). لتحقيق ذلك ، استخدمت مقسم جهد بسيط (انظر التخطيطي). لقراءة درجة الحرارة السالبة ، نحتاج إلى إضافة بعض المكونات الخارجية (2x1N914 و 1x18k المقاوم) ، لأنني لا أريد استخدام مصدر طاقة سالب ، إليك الكود: مستودع TinyADC. ملاحظة: لتجميع هذا الرمز ، ستحتاج إلى تثبيته attiny to ID (أدخل هذا في الخيار: https://drazzy.com/package_drazzy.com_index.json) ، إذا كنت لا تعرف كيفية القيام بذلك ، فما عليك سوى البحث على Google أو تحميل ملف.hex مباشرة.

الخطوة 4: DS18B20

DS18B20
DS18B20
DS18B20
DS18B20
DS18B20
DS18B20
DS18B20
DS18B20

اشتريت تلك المستشعرات من أمازون (5 تكلف حوالي 10 يورو). وصل بغطاء من الفولاذ المقاوم للصدأ وكابل بطول 1 متر. يمكن لهذا المستشعر إرجاع بيانات درجة الحرارة من 9 إلى 12 بت. يمكن توصيل الكثير من أجهزة الاستشعار في نفس الدبوس نظرًا لأن جميعها لها معرّف فريد. لتوصيل DS18B20 بـ esp8266 ، يمكنك فقط اتباع المخطط (الصورة الثانية). منذ أن قررت أن جهاز التسجيل الخاص بي كان سيحتوي على ثلاثة مجسات ، كان علي أن أميز أيهما. لذلك فكرت في منحهم لونًا مرتبطًا عبر البرنامج بعنوانهم. لقد استخدمت بعض الأنبوب الحراري القابل للتقلص (الصورة الثالثة).

الخطوة 5: كود ESP8266

كود ESP8266
كود ESP8266
كود ESP8266
كود ESP8266

منذ أن أصبحت جديدًا في هذا العالم ، قررت استخدام الكثير من المكتبات. كما قيل في المقدمة ، السمات الرئيسية هي:

  • تحديث OTA: لا تحتاج إلى توصيل esp8266 بجهاز الكمبيوتر الخاص بك في كل مرة تحتاج فيها إلى تحميل الكود (عليك القيام بذلك في المرة الأولى فقط) ؛
  • مدير لاسلكي ، إذا تغيرت الشبكة اللاسلكية ، فلن تحتاج إلى إعادة تحميل المخطط. يمكنك ببساطة إعادة تكوين معلمات الشبكة المتصلة بنقطة وصول esp8266 ؛
  • نقل البيانات الذروة ؛
  • دعم كل من LM35 و DS18B20 ؛
  • واجهة مستخدم بسيطة (يشير RGB led إلى بعض المعلومات المفيدة) ؛

من فضلك اعتذر مني لأن برنامجي ليس هو الأفضل ولم يتم تنظيمه بشكل جيد. قبل التحميل على الجهاز ، تحتاج إلى تغيير بعض المعلمات لتناسب الرمز مع الإعداد الخاص بك. هنا يمكنك تنزيل البرنامج. التكوين المشترك LM35 و DS18B20 تحتاج إلى تغيير تعريف الدبوس والرمز المميز ورقم القناة والمستخدم وكلمة المرور لتحديث OTA. خط من 15 إلى 23.

# حدد اللون الأحمر الخاص بك # حدد اللون الأخضر الخاص بك

#define blue YOURPINHERE const char * host = "حدد عنوان المضيف" ؛ // ليس مطلوبًا حقًا ، يمكنك ترك esp8266-webupdate const char * update_path = "/ firmware" ؛ // لتغيير العنوان من أجل التحديث على سبيل المثال: 192.168.1.5/firmware const char * update_username = "YOURUSERHERE" ؛ const char * update_password = "YOURPASSWORDHERE ؛ myChannelNumber طويل = CHANNELNUMBERHERE ؛ const char * myWriteAPIKey =" WRITEAPIHERE "؛

الخطوة 6: كود ESP8266: مستخدم LM35

تحتاج إلى توصيل لوحة attiny بـ esp8266 ، لتشغيل وحدة ADC باستخدام دبوس VU ودبوس G. تحتاج إلى اختيار رقم التعريف الشخصي الذي تريد استخدامه للاتصال التسلسلي (للحفاظ على تسلسل الأجهزة مجانًا لغرض التصحيح). يجب تحديد Tx pin ولكن لم يتم استخدامه بالفعل. (السطر 27). SoftwareSerial mySerial (RXPIN ، TXPIN) ؛ في الجزء العلوي ، تحتاج إلى إضافة: #define LM35USER

الخطوة 7: كود ESP8266: DS18B20 مستخدم

كعملية أولى ، تحتاج إلى تحديد عنوان الجهاز لكل جهاز استشعار. قم بتجميع وبرمجة هذا الرمز إلى esp وابحث في المسلسل عن النتائج. يمكن العثور على الكود هنا (ابحث عن هذا العنوان في الصفحة: «قراءة العناوين الداخلية الفردية DS18B20»). قم بتوصيل مستشعر واحد فقط للحصول على العنوان ، يجب أن تكون النتائج شيئًا من هذا القبيل (رقم عشوائي هنا! تمامًا كمثال): 0x11 ، 0x22 ، 0x33 ، 0xD9 ، 0xB1 ، 0x17 ، 0x45 ، 0x12 ثم تحتاج إلى تغيير الرمز الخاص بي في القسم " تكوين DS18B20 "(السطر 31 إلى 36)":

#define ONE_WIRE_BUS ONEWIREPINHERE #define TEMPERATURE_PRECISION TEMPBITPRECISION // (من 9 إلى 12) #define delayDallas READINTERVAL // (بالمللي ثانية ، الحد الأدنى هو 15 ثانية أو 15000 ميللي ثانية) DeviceAddress blueSensor = {0x11، 0x33، 0x22 0x12} ؛ // التغيير باستخدام عنوانك DeviceAddress redSensor = {0x11، 0x22، 0x33، 0xD9، 0xB1، 0x17، 0x45، 0x12} ؛ // التغيير باستخدام عنوانك DeviceAddress greenSensor = {0x11، 0x22، 0x33، 0xD9، 0xB1، 0x17، 0x45، 0x12} ؛ // قم بتغيير عنوانك في الجزء العلوي ، تحتاج إلى إضافة: #define DSUSER

الخطوة 8: ESP8266 Little Trick

ESP8266 الحيلة الصغيرة
ESP8266 الحيلة الصغيرة

بعد قليل من الاختبار ، وجدت أنه إذا قمت بتوصيل esp8266 بدون برمجة ، فلن يتم تشغيل الكود حتى تضغط على إعادة التعيين مرة واحدة. لحل هذه المشكلة ، بعد قليل من البحث ، اكتشفت أنه يتعين عليك إضافة مقاوم سحب من 3.3 فولت إلى D3. سيخبر هذا المعالج بتحميل الكود من ذاكرة فلاش ، وبهذه الطريقة يمكن استخدام D3 مباشرة لإدخال البيانات لأجهزة استشعار DS18B20.

الخطوة 9: التشغيل لأول مرة

أول مرة عملية
أول مرة عملية
أول مرة عملية
أول مرة عملية

إذا قمت بتحميل الرمز بشكل صحيح ولكنك لم تستخدم مكتبة مدير Wifi ، فقد حان الوقت لتكوين اتصال wifi الخاص بك. انتظر حتى ترى وميض RGB led بشكل أسرع من ذي قبل ، ثم ابحث باستخدام هاتفك المحمول أو الكمبيوتر الشخصي عن شبكة wifi المسماة "AutoConnectAp" واتصل. بعد الاتصال ، افتح متصفح الويب وأدخل 192.168.4.1 ، وستجد واجهة GUI لمدير wifi (انظر الصور) واضغط على "Configure Wifi". انتظر حتى esp8266 للبحث عن شبكات wifi ، واختر الشبكة المطلوبة. أدخل كلمة المرور واضغط على "حفظ". سيتم إعادة تشغيل Esp8266 (لا تهتم بقيادة RGB هذه المرة لأنها ستخرج بعض المعلومات العشوائية) وتتصل بالشبكة.

الخطوة 10: الخاتمة

استنتاج
استنتاج
استنتاج
استنتاج
استنتاج
استنتاج
استنتاج
استنتاج

في النهاية ، إليك رسم بياني مأخوذ من مسجل البيانات أثناء تسجيل درجة حرارة المجمد. باللون البرتقالي هو DS18B20 وباللون الأزرق LM35 ودائرته. يمكنك أن ترى أكبر اختلاف في الدقة من المستشعر الرقمي إلى المستشعر التناظري (مع "دائرة ADC" الضعيفة) التي تعطي بعض البيانات غير المادية. باختصار ، إذا كنت ترغب في إنشاء هذا المسجل ، أقترح استخدام مستشعر درجة الحرارة الرقمي DS18B20 لأنه أسهل في القراءة وتقريبًا "التوصيل والتشغيل" ، إنه أكثر استقرارًا ودقة ، يعمل عند 3.3 فولت ويتطلب دبوسًا واحدًا فقط للعديد من المستشعرات. شكرًا على الاهتمام ، آمل أن يكون هذا المشروع مفيدًا لك ولك وجدت بعض المعلومات المفيدة. ولمن يريد أن يدرك ذلك ، أتمنى لو أعطيت كل المعلومات اللازمة. إذا لم يكن لي مطلق الحرية في طرح كل شيء ، فسأكون سعيدًا بالإجابة على جميع الأسئلة. نظرًا لأنني لست متحدثًا باللغة الإنجليزية ، إذا كان هناك خطأ ما أو لا يمكن فهمه ، فيرجى إبلاغي بذلك. إذا أعجبك هذا المشروع ، فيرجى التصويت عليه للمسابقات و / أو ترك تعليقًا ☺. سيشجعني على الاستمرار في تحديث ونشر المحتويات الجديدة. شكرا لك.

موصى به: