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

ESP8266 NodeMCU مع مقاييس ومخطط BME280: 5 خطوات
ESP8266 NodeMCU مع مقاييس ومخطط BME280: 5 خطوات

فيديو: ESP8266 NodeMCU مع مقاييس ومخطط BME280: 5 خطوات

فيديو: ESP8266 NodeMCU مع مقاييس ومخطط BME280: 5 خطوات
فيديو: ESP8266 Plot Sensor readings to Webserver in Real Time Chart 2024, شهر نوفمبر
Anonim
ESP8266 NodeMCU مع مخطط ومقاييس BME280
ESP8266 NodeMCU مع مخطط ومقاييس BME280
ESP8266 NodeMCU مع مخطط ومقاييس BME280
ESP8266 NodeMCU مع مخطط ومقاييس BME280

مقاييس ورسم بياني فاخر للوحة تطوير ESP8266 NodeMCU مع مستشعر درجة الحرارة والرطوبة والضغط BME280. سوف يقوم موقع Thingspeak بتخزين جميع بياناتك في السحابة لاسترجاعها في أي وقت لسنوات (نأمل) في المستقبل. يتم ملء المقاييس والرسم البياني من البيانات المخزنة في ذروة الأشياء ويتم تحديثها تلقائيًا كل 5 دقائق.

العناصر المطلوبة:

مجلس تطوير NodeMCU ESP8266 (3.79 دولار من Banggood.com هونج كونج)

Bosch BME280 (5.63 دولار من Banggood.com هونج كونج)

وصلات القفز اللوح (3.09 دولار من Banggood.com هونج كونج)

اللوح (2.28 دولار من Banggood.com هونج كونج)

مزود الطاقة ، مجاني إذا كان لديك شاحن هاتف USB صغير

كابل Micro USB ، مجاني إذا كان لديك واحد بالفعل

Arduino IDE ، تنزيل مجاني

احصل على ملفات التعليمات البرمجية.ino و. HTML هنا

الخطوة 1: إنشاء وإعداد قنوات التحدث الخاصة بك

إنشاء وإعداد قنوات Thingspeak الخاصة بك
إنشاء وإعداد قنوات Thingspeak الخاصة بك

1. أنشئ حسابًا مجانيًا على Thingspeak وقناة جديدة على https://thingspeak.com ، واتصل بالقناة "ESP8266-NodeMCU-12E-BME280"

2. يجب أن تحتوي القناة الجديدة على 3 حقول تسمى درجة الحرارة وضغط الرطوبة بهذا الترتيب المحدد (لاحظ الأحرف الأولى من الأحرف الكبيرة).

3. لاحظ "معرف القناة" الجديد XXXXXX ضمن "إعدادات القناة"

4. انقر فوق الارتباط "API Keys" ولاحظ "كتابة API" و "قراءة مفاتيح واجهة برمجة التطبيقات" XXXXXXXXXXXXXXX. أيضًا ، اجعل هذه قناة عامة تحت المشاركة.

5. قم بإنشاء قناة Thingspeak الثانية التي ستحتوي على بيانات "Today" (منذ منتصف الليل) High Low. أطلق عليها اسم "BME280 Daily High Low Data"

6. يجب أن تحتوي هذه القناة الجديدة على 6 حقول تسمى Tmax Tmin Hmax Hmin Pmax Pmin بهذا الترتيب المحدد (لاحظ كتابة الحرف الأول بالأحرف الكبيرة).

7. لاحظ "معرف القناة" "BME280 Daily High Low Data" ، "قراءة" و "كتابة مفاتيح API" تمامًا كما هو موضح في الخطوات أعلاه.

الخطوة 2: قم بإعداد Arduino IDE والمكتبات وتكوين BME280

قم بإعداد Arduino IDE والمكتبات وتكوين BME280
قم بإعداد Arduino IDE والمكتبات وتكوين BME280

8. اتبع التعليمات الخاصة بتثبيت Arduino IDE & ESP8266 core على

9. قم بتشغيل Arduino IDE حتى نتمكن من تثبيت المكتبات الأربع التي سنحتاجها.

10. ستحتاج إلى مكتبة "Adafruit Unified Sensor Driver" ، وتثبيتها في "Library Manager" في Arduino IDE. رسم القائمة ، تضمين مكتبة إدارة المكتبات ، قم بالبحث حسب النوع = "مستحسن" الموضوع = "المستشعرات" ثم ضع الكلمات Adafruit Unified Sensor Driver في مربع البحث. الشخص الذي تريده يقول "Adafruit Unified Sensor Driver بواسطة Adafruit"

11. بالإضافة إلى ذلك ، سوف تحتاج أيضًا إلى تثبيت "مكتبة Adafruit BME280" في "Library Manager" في Arduino IDE. رسم القائمة ، تضمين مكتبة إدارة المكتبات ، قم بالبحث حسب النوع = "مستحسن" الموضوع = "المستشعرات" ثم ضع الكلمات Adafruit BME280 Library في مربع البحث. الشخص الذي تريده يقول "مكتبة Adafruit BME280 من Adafruit"

12. مكتبة أخرى تحتاجها هي Wire.h ، قم بتثبيتها في "Library Manager" في Arduino IDE. القائمة ، رسم تضمين مكتبة إدارة المكتبات قم بإجراء بحث حسب النوع = "مساهمة" الموضوع = "إدخال / إخراج الإشارة" ثم ضع الكلمة Wire في مربع البحث. الشخص الذي تريده يقول "Wire Built-in by Arduino" على الأرجح في الجزء السفلي من التحديد.

13. مكتبة أخرى ، ESP8266WiFi ، قم بتثبيتها في "Library Manager" في Arduino IDE. القائمة ، رسم تضمين مكتبة إدارة المكتبات قم بالبحث حسب النوع = "مساهمة" الموضوع = "الاتصال" ثم ضع الكلمة ESP8266wifi في مربع البحث. الشخص الذي تريده يقول "ESP8266wifi مدمج بواسطة Ivan Grokhotkov"

14. عنوان I2C لـ BME280 مشفر بشكل ثابت في ملف Adafruit_BME280.h (ابحث عن السطر #define BME280_ADDRESS 0x77) داخل مجلد Adafruit_BME280_Library. وحدات استشعار BME في Adafruit موصلة بأسلاك قوية لاستخدام عنوان I2C من 0x77. ولكن يمكن أن يكون لـ BME280 عنوان I2C مختلف قليلاً (0x76) إذا تم تأريض دبوس SDO الخارجي الخاص به. إذا كنت تستخدم وحدات المستشعر من جهة خارجية ، فمن المحتمل أن عنوانها لن يتطابق مع القيمة الافتراضية في مكتبة Adafruit. على سبيل المثال ، بالنسبة لمعظم وحدات استشعار BME280 المتوفرة على eBay أو Aliexpress ، يكون عنوان I2C الخاص بها هو 0x76. إذا لم تحصل على استجابة من المستشعر باستخدام العنوان الافتراضي المحدد في ملف Adafruit_BME280.h ، فقد تحتاج إلى تغييره إلى 0x76.

نقاط الاتصال BME280 و ESP8266. ESP8266 3.3 فولت إلى BME280 فين ، ESP8266 GND إلى BME280 GND ، ESP8266 D4 إلى BME280 SCL ، ESP8266 D3 إلى BME280 SDA. 15. افتح الملف ESP8266-NodeMCU-12E-BME280.html المقدم في محرر نصوص وأدخل "ESP8266-NodeMCU-12E-BME280" (القناة الأولى التي أنشأتها) "معرف القناة" و "قراءة مفتاح واجهة برمجة التطبيقات" لـ المتغيرات key1 & chan1. أدخل أيضًا "Read API Key" و "Channel ID" لـ "BME280 Daily High Low Data" (القناة الثانية التي أنشأتها) للمفتاح 2 و chan2. بالإضافة إلى ذلك ، أدخل موازنة المنطقة الزمنية الخاصة بك من التوقيت العالمي المنسق. كما هو الحال في -5 بالنسبة لي. يجب أن تكون جميع القيم داخل علامات الاقتباس المفردة المقدمة "XXXXX". احفظ واخرج من محرر النصوص.

قم بتوصيل ESP8266 بكابل USB بجهاز الكمبيوتر الخاص بك ثم حدد المنفذ التسلسلي الخاص بك ليكون منفذ USB.

قد يضطر مستخدمو Linux إلى تغيير ملكية منفذ USB للتواصل مع / dev / ttyUSB0 كما هو الحال في 'sudo chown yourusername / dev / ttyUSB0' أو أي شيء قمت بتحديده كمنفذ في الإعداد.

الخطوة 3: قم ببرمجة ESP8266 باستخدام Arduino IDE

قم ببرمجة ESP8266 باستخدام Arduino IDE
قم ببرمجة ESP8266 باستخدام Arduino IDE

16. بعد ذلك سنقوم ببرمجة ESP8266. قم بتوصيل كبل USB بين ESP8266 وجهاز الكمبيوتر الخاص بك.

قم بتحميل ملف New_BME_Sensor.ino المقدم في Arduino IDE. يجب توصيل مستشعر BME280 الخاص بك بـ D3 (SDA) و D4 (SCL) على ESP8266. أدخل "ESP8266-NodeMCU-12E-BME280" (القناة الأولى التي أنشأتها) "اكتب مفتاح" "Wireless SSID" و "كلمة المرور" في القسم الصحيح من الرسم التخطيطي. ثم انقر فوق عنصر القائمة "رسم" و "تحميل". بعد تحميل الرسم التخطيطي (يصل مستوى التقدم إلى 100٪) إلى ESP8266 ، يمكنك فتح الشاشة التسلسلية (يبدو أعلى اليمين على شكل زجاج مكبرة) ومشاهدة بياناتك مطبوعة بعد 5 دقائق ، كل 5 دقائق. يتم إرسال البيانات إلى الأشياء على فترات زمنية تبلغ 5 دقائق ، لذا سيمر بعض الوقت قبل أن يكون لديك بيانات مخطط ذات مغزى ولكن يجب أن يكون لديك قراءات معيارية بعد 5 دقائق.

تأكد من حصولك على قراءات صحيحة من BME280 في الشاشة التسلسلية.

من المحتمل أن يكون القياس الأول نان غير صالح.

انتظر بضع دقائق حتى القراءة التالية وتحقق من أن القراءات تبدو جيدة.

الخطوة 4: ارجع إلى كتاب "الكلام عن الأشياء" للقيام ببعض التعديلات والتبديل في البيانات

ارجع إلى كتاب "الكلام عن الأشياء" للقيام ببعض التعديلات والتبديل في البيانات
ارجع إلى كتاب "الكلام عن الأشياء" للقيام ببعض التعديلات والتبديل في البيانات

17. الآن ، بينما يتم تحميل البيانات ببطء إلى موقع Thingspeak ، يتيح القيام ببعض التعديلات للحصول على بعض البيانات الإضافية مما يتم تحميله. ارجع إلى موقع ويب Thingspeak وفي صفحة قناة Thingspeak "BME280 Daily High Low Data" (القناة الثانية التي أنشأتها) انقر فوق الزر الأخضر "MATLAB Analysis". حدد القالب "مخصص (بدون رمز بداية)"

18. قم بتسمية تحليل MATLAB "احسب الحد الأدنى للحد الأقصى منذ منتصف الليل".

19. انسخ كود MATLAB Analysis.txt في المساحة المتوفرة. أدخل "معرف القناة" لـ "ESP8266-NodeMCU-12E-BME280" (القناة الأولى التي أنشأتها) في "readChannelID". أدخل "BME280 Daily High Low Data" (القناة الثانية التي قمت بإنشائها) اكتب "معرف القناة" و "اكتب مفتاح" في writeNewChannelID وكتابةAPIKey باحترام. أعلم أن الأمر يبدو محيرًا (اقرأه مرة أخرى). انقر فوق حفظ وتشغيل. إذا قمت بذلك بشكل صحيح وكانت قناة القراءة عامة ، فلن ترى أي أخطاء وستطبع القيم بنجاح. ملاحظة ، قد ترى خطأ إذا لم يتم تحميل أي بيانات إلى هذه القناة حتى الآن. على الرغم من استمرار الخطأ. إذا رغبت في ذلك ، يمكنك إعادة الزيارة انقر فوق حفظ وتشغيل للتأكد من أنه يعمل بمجرد تحميل البيانات.

20. بعد ذلك ، نحتاج إلى إنشاء "التحكم في الوقت" لإطلاق هذا الرمز كل 5 دقائق ويتم كتابة بياناتنا على القناة "BME280 Daily High Low Data" (القناة الثانية التي أنشأتها). من الصفحة الرئيسية لـ "BME280 Daily High Low Data" (القناة الثانية التي أنشأتها) حدد التطبيقات في الأعلى. ضمن الإجراءات ، حدد "TimeControl" ثم الزر الأخضر "New TimeControl". سمها "إرسال درجات الحرارة العالية والمنخفضة ESP8266". حدد منطقتك الزمنية إذا لزم الأمر وحدد "متكرر" ضمن التكرار. حدد دقيقة ضمن التكرار. اضبط للتشغيل كل 5 دقائق. يجب أن يكون الإجراء عبارة عن تحليل MATLAB و "رمز التنفيذ" هو "حساب الحد الأدنى للحد الأقصى منذ منتصف الليل". وفر TimeControl.

الخطوة 5: قم بتحرير ملف HTML المقدم

قم بتحرير ملف HTML المقدم
قم بتحرير ملف HTML المقدم

قم بتحرير ملفات HTML وابحث عن التعليقات التي تقول "******** Change Me 1 of 8 *********" قم بتغيير هذه إلى تفضيلاتك.

ملحوظات:

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

افتح ملف ESP8266-NodeMCU-12E-BME280.html المقدم في متصفح الويب الخاص بك وسترى المقاييس والرسم البياني ممتلئين.

احصل على ملفات التعليمات البرمجية.ino و. HTML هنا

موصى به: