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

مستشعرات التمديد Nodemcu ESP8266 لـ Weewx: 8 خطوات (بالصور)
مستشعرات التمديد Nodemcu ESP8266 لـ Weewx: 8 خطوات (بالصور)

فيديو: مستشعرات التمديد Nodemcu ESP8266 لـ Weewx: 8 خطوات (بالصور)

فيديو: مستشعرات التمديد Nodemcu ESP8266 لـ Weewx: 8 خطوات (بالصور)
فيديو: Water level monitoring system with Nodemcu ESP8266 with new blynk app 2024, شهر نوفمبر
Anonim
مستشعرات التمديد Nodemcu ESP8266 لـ Weewx
مستشعرات التمديد Nodemcu ESP8266 لـ Weewx

هذا أمر مفيد لإضافة أجهزة استشعار إلى برنامج محطة الطقس weewx.

إذا لم يكن لديك weewx ، فيمكنك تعلم بعض الأشياء في هذا البرنامج التعليمي.

تحتاج إلى بعض المعرفة الأساسية برمز Arduino وكيفية التحميل على الجهاز.

تجد معلومات weewx هنا:

ما تقوم ببنائه هو جهازان:

1 يقوم الجهاز بإرسال درجة الحرارة والرطوبة إلى برنامج weewx.

1 يقوم الجهاز بإرسال درجات حرارة التربة لأعماق الأرض المختلفة إلى برنامج weewx.

أول جهاز لدينا هو مستشعر BME 280.

جهازنا الثاني عبارة عن سلسلة من 3 مستشعرات درجة حرارة DS18B20. (يمكنك إضافة المزيد إذا أردت).

لنبدأ:

الخطوة 1: ما تحتاجه …

ماذا تحتاج…
ماذا تحتاج…
ماذا تحتاج…
ماذا تحتاج…
ماذا تحتاج…
ماذا تحتاج…

Weewx وتشغيله + الوصول إلى خادم weewx. (على سبيل المثال raspberry PI 3).

2 وحدات Nodemcu ESP8266

3 مستشعرات DS18B20 أو أكثر

1 مستشعر BME 280 كومبو

1 أنبوب ألومنيوم أو ما شابه بقطر 10 مم وسمك جدار 1 مم وحوالي. 1 متر طويل

1 حافظة مقاومة للماء مع غدة كابل وصمولة قفل.

1 مصدر طاقة 5 فولت (محمل متنقل على سبيل المثال).

بعض الأسلاك وأجهزة اللحام.

تجد مستشعر BME280 ووحدات Nodemcu على موقع ئي باي.

بالنسبة لأنابيب الألومنيوم ، اخترت متجرًا محليًا للأجهزة

بالنسبة إلى DS18B20 والحالة المقاومة للماء ، أستخدم www.reichelt.de

www.reichelt.de/DS-18B20/3/index.html؟

www.reichelt.de/EL-FK-110/3/index.html؟

ومجموعة غدد الكابلات بصواميل القفل

www.reichelt.de/Kabelverschraubungen-Bopla…

بالنسبة لـ bme280 ، يمكنك استخدام العلبة المتفرعة اختياريًا

www.reichelt.de/Installationsmaterial/EL-D…

الخطوة 2: ابدأ بإعداد أجهزة الاستشعار BME 280

ابدأ بإعداد أجهزة الاستشعار BME 280
ابدأ بإعداد أجهزة الاستشعار BME 280

جندى الشريط في BME280.

ثم توصيل BME بـ Nodemcu:

BME VIN إلى 3.3 فولت

BME GND إلى GND

SCL إلى D4

SDA إلى D3

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

الخطوة 3: كود BME 280 Nodemcu ESP8266

كود BME 280 Nodemcu ESP8266
كود BME 280 Nodemcu ESP8266
كود BME 280 Nodemcu ESP8266
كود BME 280 Nodemcu ESP8266
كود BME 280 Nodemcu ESP8266
كود BME 280 Nodemcu ESP8266

للحصول على الكود ، يمكنك استخدام مستودعات github الخاصة بي:

github.com/Landixus/BME280_TO_SERVER_WEEWX

يحتاج ملف ino إلى بعض الإدخالات منك:

عنوان IP لخادم weewx أو عنوان URL الخاص بك

والمسار حيث يوجد ملف php ، تأكد من أن المنطقة قابلة للكتابة.

اخترت public_html dir لأنه خادم منزلي.

إذا كنت ترغب في استنساخ مستودعات git ، وتثبيت git على خادمك ، فيمكنك النسخ باستخدام الأمر:

"git clone" https://github.com/Landixus/BME280_TO_SERVER_WEEWX"

الآن نحن بحاجة إلى القيام ببعض الأشياء على خادم weewx الخاص بنا.

تحتاج إلى جعل المسارات إلى الإعدادات الخاصة بك!

في

/ home / weewx / public_html

إنشاء مجلد بيانات

في مجلد البيانات ، أنشئ ملف bme.txt على سبيل المثال باستخدام:

نانو bme.txt

يجب أن يكون الملف فارغًا.

اجعلها قابلة للكتابة باستخدام:

chmod -R 777 bme.txt

(لا تفعل هذا أبدًا على خادم يمكن الوصول إليه عبر الإنترنت!)

في المجلد

/ home / weewx / public_html

يمكنك وضع bme.php الخاص بي من ريبو github.

الحيلة هي أن ملف INO يرسل القيم إلى bme.php ويكتب bme.php البيانات في bme.txt

في التالي ، نحتاج إلى إضافة الخدمة في weewx

ضع ملف bme.py في المجلد

/ home / weewx / bin / user

افتح ملف weewx.conf في المجلد

/ المنزل / weewx

من الجيد دائمًا الاحتفاظ بنسخة احتياطية قبل تحرير هذا الملف!

انزل إلى line Engine واجعل الخط يشبه خطي:

[محرك]

# يحدد هذا القسم الخدمات التي يجب تشغيلها. هم انهم

# مجمعة حسب النوع وترتيب الخدمات داخل كل مجموعة

# يحدد الترتيب الذي سيتم تشغيل الخدمات به.

data_services = user.pond. PondService، user.bme.bme

إعادة تشغيل weewx باستخدام:

sudo /etc/init.d/weewx stop

بدء sudo /etc/init.d/weewx

مع الأمر

ذيل -f / var / log / syslog

يمكنك البحث في ملف السجل عن الأخطاء أو النجاح ، ابحث عن إخراج bme: تم العثور على قيمة …

امنح خادمك بعض الدقائق لتوليد إخراج في "my" weewx.conf كل 5 دقائق.

إذا كان لديك رسالة خطأ تحقق من مساراتك.

إذا كانت لديك قيم ، فيمكنك الانتقال لإظهارها على صفحة الويب:

فتح الجلد

/ home / weewx / جلود / قياسي

اذهب إلى:

# هذا ربما يكون خاصًا بمحطتي!

extraTemp3 = BME1 درجة الحرارة الإضافية 1 = الرطوبة BME1

احفظ الملف وافتحه في نفس المجلد

index.html.tmpl

ابحث عن خط:

#if $ day.extraTemp..

#إنهاء إذا

بعد أول # نهاية إذا وجدت ، ضع مستشعر BME الخاص بك مع:

^ ^ آسف ولكن لا يمكن وضع هذا كنص:(احفظ الملف واخرج.

ليست هناك حاجة لإعادة تشغيل weewx.

أنت الآن بحاجة إلى تغذية NODEMCU ESP8266 بملف Arduino.

لا تنس إعداد wifi الخاص بك والعناوين في الملف.

بعد التحميل تحقق من الإخراج التسلسلي للأخطاء.

بعد فترة قصيرة سترى القيم على موقع الويب الخاص بك weewx.

الخطوة 4: نجاح جهاز الاستشعار BME280 + استكشاف الأخطاء وإصلاحها

نجاح جهاز الاستشعار BME280 + استكشاف الأخطاء وإصلاحها
نجاح جهاز الاستشعار BME280 + استكشاف الأخطاء وإصلاحها
نجاح جهاز الاستشعار BME280 + استكشاف الأخطاء وإصلاحها
نجاح جهاز الاستشعار BME280 + استكشاف الأخطاء وإصلاحها

بعض النصائح لك:

افتح أكثر من 1 وحدة تحكم عن طريق المعجون

على وحدة تحكم واحدة ، قم بإجراء تغييراتك ، وعلى وحدة التحكم الأخرى ، اقرأ سجل النظام الخاص بك مباشرةً باستخدام:

ذيل -f / var / log / syslog

إذا كان لديك خطأ ، فابحث عن ملف السجل أولاً.

يجب أن يبدو إخراجك مشابهًا لي:

الخطوة 5: إعداد جهاز مستشعر التربة

إعداد أجهزة مستشعر التربة
إعداد أجهزة مستشعر التربة
إعداد أجهزة مستشعر التربة
إعداد أجهزة مستشعر التربة
إعداد أجهزة مستشعر التربة
إعداد أجهزة مستشعر التربة

بالنسبة لمستشعر DS18B20 ، نحتاج إلى إنشاء نظام ناقل مع بعض الأسلاك واللحام.

تحقق من DS18B20 الخاص بك

البيانات ، GND ، VCC

بين VCC و DATA ، تحتاج إلى مقاوم 4.7K. يكفي إذا كان لديك المقاوم في DS18B20 الأول

DS18B20 الآخر متوازي مع بعضها البعض.

قياس الطول لاحتياجاتك. جندى سلسلة معًا ، لقد قمت بتأمين المسامير بأنبوب الانكماش.

للاختبار ، تقوم بتوصيل DATA بـ D3 و VCC بـ VCC (3.3 فولت) و GND بـ GND.

بالنسبة لخيار النوم العميق ، تحتاج إلى إرفاق جسر بين RST و D0 (GPIO16)

يجب ألا تضع السلسلة في أنبوب الألمنيوم الآن ، قم بإجراء اختباراتك من قبل!

الخطوة 6: كود DS18B20 Nodemcu ESP8266

DS18B20 كود Nodemcu ESP8266
DS18B20 كود Nodemcu ESP8266

للحصول على الكود ، يمكنك استخدام مستودعات GITHUB الخاصة بي:

github.com/Landixus/multipleDS18B20WeeWX

يحتاج ملف ino أيضًا إلى بعض الإدخالات منك: عنوان IP لخادم weewx أو عنوان URL الخاص بك والمسار الذي وضعت فيه ملف php ، تأكد من أن المنطقة قابلة للكتابة واختر public_html dir لأنه خادم منزلي.

إذا كنت ترغب في استنساخ مستودعات git وتثبيت git على الخادم الخاص بك ، فيمكنك النسخ باستخدام الأمر git clone

الآن نحن بحاجة إلى القيام ببعض الأشياء التي يعمل كل شيء على خادم weewx الخاص بنا.

تحتاج إلى جعل المسارات إلى الإعدادات الخاصة بك في

/ home / weewx / public_html

قم بإنشاء مجلد "بيانات" في مجلد البيانات ، قم بإنشاء ds18b20.txt على سبيل المثال nano ds18b20.txt ، يجب أن يكون النص emtpy. اجعله قابلاً للكتابة باستخدام chmod -R 777 ds18b20.txt (لا تفعل ذلك أبدًا على خادم يمكن الوصول إليه عبر الإنترنت!) في المجلد / home / weewx / public_html ، يمكنك وضع ground.php لممثل github الخاص بي. الحيلة هي أن ملف INO يرسل القيم إلى ground.php ويكتب ground.php البيانات في ds18b20.txt بعد ذلك نحتاج إلى إضافة الخدمة في weewx ضع ds18b20.py في المجلد / home / weewx / bin / المستعمل

افتح ملف weewx.conf في المجلد / home / weewx

من الجيد دائمًا الاحتفاظ بنسخة احتياطية قبل تحرير هذا الملف!

النزول إلى السطر:

[محرك]

# مجمعة حسب النوع وترتيب الخدمات داخل كل مجموعة

# يحدد الترتيب الذي سيتم تشغيل الخدمات به.

prep_services = weewx.engine. StdTimeSynch، data_services = user.pond. PondService، user.bme.bme، user.ds18b20.ds18b20 أضف المضمن بعد فاصلة

يجب أن يبدو "user.ds18b20.ds18b20" مثل السطر العلوي ^ ^

إعادة تشغيل weewx باستخدام:

sudo /etc/init.d/weewx stop

بدء sudo /etc/init.d/weewx

باستخدام الأمر tail -f / var / log / syslog ، يمكنك البحث في ملف السجل عن الأخطاء أو البحث عن نتيجة ناجحة ds18b20: تم العثور على قيمة أعطِ خادمك بعض الدقائق لتوليدها ، في ملفي weewx.conf كل 5 دقائق يخرج وضع. إذا كان لديك رسالة خطأ تحقق من مساراتك. إذا كانت لديك قيم يمكنك الانتقال لإظهارها على الصفحة: افتح

skin.conf in / home / weewx / skins / Standard انتقل إلى:

# هذا ربما يكون خاصًا بمحطتي!

يضيف

التربةTemp1 = DS18B201

التربةTemp2 = DS18B202

التربةTemp3 = DS18B203

احفظ الملف وافتحه في نفس المجلد index.html.tmpl ابحث عن سطر:

#if $ day.extraTemp..…

#إنهاء إذا

بعد أول # نهاية إذا وجدت ضع مستشعر GroundSensor الخاص بك مع:

^ ^ آسف ولكن لا يمكن وضع هذا كنص: (احفظ الملف واخرج. ليست هناك حاجة لإعادة تشغيل weewx. الآن تحتاج إلى تغذية NODEMCU ESP8266 بملف Arduino.

لا تنس إعداد wifi الخاص بك والعناوين في الملف. بعد التحميل تحقق من الإخراج التسلسلي للأخطاء.

بعد فترة قصيرة سترى القيم على موقع الويب الخاص بك weewx.

الخطوة 7: نجاح مستشعر التربة واستكشاف الأخطاء وإصلاحها

مستشعر النجاح واستكشاف الأخطاء وإصلاحها
مستشعر النجاح واستكشاف الأخطاء وإصلاحها

إذا كان لديك كل العمل ورأيت القيم ، فاخرج وضع أنبوب الألومنيوم في الأرض.

هناك طريقة جيدة تتمثل في وضع الغراء الساخن في جانب واحد من الأنبوب ثم الضغط على الأنبوب معًا ، ثم يكون لديك سطح جميل لجعله أسهل في الأرض.

ضع الأنبوب أولاً في الأرض ، يمكنك المطرقة بلوحة خشبية.

إذا كان الأنبوب عميقًا بما يكفي ، يمكنك وضع سلسلة ds18b20 وأسلاك الطاقة في الصندوق المقاوم للماء.

تأكد من أن wifi الخاص بك يعمل في هذا المكان!

إذا كنت لا تعرف ما هو عمق المستشعر ، فهناك احتمالان.

أضع 1 ds18b20 في المرحلة بين إصبعك ، ترتفع درجة الحرارة لهذا.

عندما يكون الأنبوب في الأرض بالفعل ، يكون الوضع الطبيعي هو أعلى قيمة أعمق نقطة.

الخطوة 8: الإنهاء

ينهي
ينهي

فقط النهاية

انشر أسئلتك وأظهر موظفيك المؤقتين في التعليقات!

لمزيد من المساعدة ، انضم إلى مجموعات Google weewx على:

groups.google.com/forum/#!forum/weewx-user

موصى به: