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

كيفية بناء مقياس شدة الريح الخاص بك باستخدام مفاتيح Reed ومستشعر تأثير Hall وبعض القصاصات على Nodemcu - الجزء 2 - البرنامج: 5 خطوات (مع الصور)
كيفية بناء مقياس شدة الريح الخاص بك باستخدام مفاتيح Reed ومستشعر تأثير Hall وبعض القصاصات على Nodemcu - الجزء 2 - البرنامج: 5 خطوات (مع الصور)

فيديو: كيفية بناء مقياس شدة الريح الخاص بك باستخدام مفاتيح Reed ومستشعر تأثير Hall وبعض القصاصات على Nodemcu - الجزء 2 - البرنامج: 5 خطوات (مع الصور)

فيديو: كيفية بناء مقياس شدة الريح الخاص بك باستخدام مفاتيح Reed ومستشعر تأثير Hall وبعض القصاصات على Nodemcu - الجزء 2 - البرنامج: 5 خطوات (مع الصور)
فيديو: ✨A Will Eternal EP 01 - 106 Full Version [MULTI SUB] 2024, شهر نوفمبر
Anonim
كيفية بناء مقياس شدة الريح الخاص بك باستخدام مفاتيح Reed ومستشعر تأثير القاعة وبعض القصاصات على Nodemcu - الجزء 2 - البرنامج
كيفية بناء مقياس شدة الريح الخاص بك باستخدام مفاتيح Reed ومستشعر تأثير القاعة وبعض القصاصات على Nodemcu - الجزء 2 - البرنامج
كيفية بناء مقياس شدة الريح الخاص بك باستخدام مفاتيح Reed ومستشعر تأثير القاعة وبعض القصاصات على Nodemcu - الجزء 2 - البرنامج
كيفية بناء مقياس شدة الريح الخاص بك باستخدام مفاتيح Reed ومستشعر تأثير القاعة وبعض القصاصات على Nodemcu - الجزء 2 - البرنامج

مقدمة

هذا هو تكملة المنشور الأول "كيفية بناء مقياس شدة الريح الخاص بك باستخدام مفاتيح Reed ومستشعر تأثير القاعة وبعض القصاصات على Nodemcu - الجزء 1 - الأجهزة" - حيث أعرض كيفية تجميع أجهزة قياس سرعة الرياح والاتجاه. هنا سوف نستغل برنامج التحكم في القياس المصمم للاستخدام في Nodemcu باستخدام Arduino IDE.

وصف المشروع

في المنشور السابق ، كانت الأجهزة المسلحة والمتصلة بـ Nodemcu قادرة على قياس سرعة واتجاه الرياح. تم تصميم برنامج التحكم لقراءة دوران مقياس شدة الريح لفترة من الوقت ، وحساب السرعة الخطية ، وقراءة الاتجاه الذي تكون فيه الريشة ، وإظهار النتائج في OLED ، ونشر النتائج في ThingSpeak والنوم لمدة 15 دقيقة حتى القياس التالي.

إخلاء المسؤولية: لا ينبغي استخدام مقياس شدة الريح هذا للأغراض المهنية. هو فقط للاستخدام الأكاديمي أو المنزلي.

ملاحظة: اللغة الإنجليزية ليست لغتي الطبيعية. إذا وجدت أخطاء نحوية تمنعك من فهم المشروع ، فيرجى إبلاغي بتصحيحها. شكرا جزيلا.

الخطوة 1: تثبيت Arduino IDE و ESP8266 Boards and Libraries وحساب ThingSpeak الخاص بك

تثبيت Arduino IDE و ESP8266 Boards and Libraries وحساب ThingSpeak الخاص بك
تثبيت Arduino IDE و ESP8266 Boards and Libraries وحساب ThingSpeak الخاص بك
تثبيت Arduino IDE و ESP8266 Boards and Libraries وحساب ThingSpeak الخاص بك
تثبيت Arduino IDE و ESP8266 Boards and Libraries وحساب ThingSpeak الخاص بك

تثبيت Arduino IDE و Nodemcu

إذا لم تقم أبدًا بتثبيت IDE ، فالرجاء قراءة البرنامج التعليمي في الرابط - كيفية تثبيت Arduino IDE - حيث يمكنك العثور على الإرشادات الكاملة.

الخطوة التالية ، لتثبيت لوحة Nodemcu ، استخدم هذا البرنامج التعليمي من Magesh Jayakumar Instructables الكامل للغاية. كيفية تثبيت Nodemcu no Arduino IDE

تثبيت المكتبات

الخطوة التالية يجب عليك تثبيت المكتبات التي يستخدمها الرسم التخطيطي. إنها شائعة ويمكنك اتباع الخطوات الموضحة أدناه.

مكتبة ThingSpeak -

مكتبة ESP8266 -

إنشاء حساب ThingSpeak

لاستخدام ThingSpeak (https://thingspeak.com/) ، يجب عليك إنشاء حساب (لا يزال مجانيًا لعدد معين من التفاعلات) حيث يمكنك حفظ البيانات المقاسة في مقياس شدة الريح لديك ومراقبة ظروف الرياح في منزلك ، حتى عبر الهاتف المحمول. باستخدام ThingSpeak ، يمكنك منح الجمهور حق الوصول إلى البيانات التي تم جمعها لمن يهمه الأمر. هذه ميزة جيدة لـ ThingSpeak. أدخل الصفحة الرئيسية واتبع الخطوات لإنشاء حسابك.

بمجرد إنشاء الحساب ، أدخل هذا البرنامج التعليمي - ThingSpeak Getting Started - لإنشاء قنواتك. تم شرحه جيدًا. باختصار ، يجب عليك إنشاء قناة حيث سيتم تخزين البيانات. تحتوي هذه القناة على معرف وواجهة برمجة تطبيقات أساسية يجب الرجوع إليها في الرسم التخطيطي في كل مرة تريد فيها تسجيل البيانات. سيقوم ThingSpeak بتخزين جميع البيانات في البنك وسوف يعرضها في كل مرة تدخل فيها إلى حسابك ، بالطريقة التي قمت بتكوينها.

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

استكشاف الرسم
استكشاف الرسم
استكشاف الرسم التخطيطي
استكشاف الرسم التخطيطي

مخطط

في الرسم التخطيطي ، يمكنك فهم مخطط التدفق الخاص بالرسم. عندما تستيقظ (رابط) Nodemcu ، سيتصل بشبكة Wi-Fi الخاصة بك ، والتي قمت بتكوين معلماتها وتبدأ في حساب 1 دقيقة من الوقت لإجراء القياسات. السرعة الخطية وقراءة اتجاه الريح. النتائج معروضة على OLED. قم بنفس الخطوات مرة أخرى وفي هذه القراءة الثانية ، سيتم نقلها إلى ThingSpeak.

ثم ينام Nodemcu لمدة 15 دقيقة لحفظ البطارية. نظرًا لأنني أستخدم لوحة شمسية صغيرة ، فمن الضروري أن أفعل ذلك. إذا كنت تستخدم مصدرًا بجهد 5 فولت ، فيمكنك تعديل البرنامج بحيث لا ينام ويستمر في قياس البيانات.

هيكل البرامج

في الرسم التخطيطي ، يمكنك رؤية هيكل الرسم التخطيطي.

مقياس شدة الريح_المنشآت

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

مجال الاتصالات

قم بتوصيل WiFi وإرسال البيانات إلى ThingSpeak.

أوراق الاعتماد

مفاتيح شبكة WiFi الخاصة بك ومعرفات حسابك في ThingSpeak. هذا هو المكان الذي ستقوم فيه بتغيير معرفات المفاتيح وواجهات برمجة التطبيقات.

يعرّف

يحتوي على جميع متغيرات البرنامج. هذا هو المكان الذي يمكنك فيه تغيير أوقات القراءة أو المدة التي يجب أن ينام فيها nodemcu.

المهام

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

oledDisplay

عرض نتائج سرعة الرياح واتجاهها على الشاشة.

الخطوة 3: تفسيرات حول …

تفسيرات حول …
تفسيرات حول …
تفسيرات حول …
تفسيرات حول …
تفسيرات حول …
تفسيرات حول …
تفسيرات حول …
تفسيرات حول …

إرفاق المقاطعة

يتم قياس دوران جهاز قياس شدة الريح من خلال الوظيفة المرفقة Interrupt () (و detachInterrupt ()) في GPIO 12 (دبوس D6) من Nodemcu (يحتوي على ميزة المقاطعة على دبابيس D0-D8 الخاصة به).

المقاطعات هي أحداث أو ظروف تتسبب في قيام المتحكم الدقيق بإيقاف تنفيذ المهمة التي يؤديها ، والعمل في مهمة مختلفة مؤقتًا والعودة إلى المهمة الأولية.

يمكنك قراءة تفاصيل الوظيفة في رابط البرنامج التعليمي الخاص بـ Arduino. انظر attachInterrupt ().

بناء الجملة: attachInterrupt (رقم التعريف الشخصي ، وظيفة رد الاتصال ، نوع / وضع المقاطعة) ؛

دبوس = D6

وظيفة رد الاتصال = rpm_anemometer - تحسب كل نبضة على متغير.

نوع / وضع المقاطعة = RISING - المقاطعة عندما ينتقل الدبوس من منخفض إلى مرتفع.

في كل نبضة ينتجها المغنطيسي في مستشعر القاعة ، ينتقل الدبوس من منخفض إلى مرتفع ويتم تنشيط وظيفة العد وتلخيص النبض في متغير ، خلال الـ 25 ثانية المحددة. بمجرد انتهاء الوقت ، يتم فصل العداد (detachInterrupt ()) ويقوم الروتين بحساب السرعة أثناء قطع الاتصال.

حساب سرعة الرياح

بمجرد تحديد عدد الدورات التي قدمها مقياس شدة الريح في 25 ثانية ، نحسب السرعة.

  • RADIO هو القياس من المحور المركزي لجهاز قياس شدة الريح إلى طرف كرة بينج بونج. يجب أن تكون قد قمت بقياس قياساتك جيدًا - (انظر ذلك في الرسم التخطيطي الذي يشير إلى 10 سم).
  • RPS (الدورات في الثانية) = الدورات / 25 ثانية
  • RPM (الدورات في الدقيقة) = RPS * 60
  • أوميغا (السرعة الزاوية - راديان في الثانية) = 2 * PI * RPS
  • Linear_Velocity (متر في الثانية) = OMEGA * RADIO
  • Linear_Velocity_kmh (كم في الساعة) = 3.6 * Linear_Velocity وهذا ما سيتم إرساله إلى ThingSpeak.

قراءة اتجاه ريشة الرياح

لقراءة موضع ريشة الرياح لتحديد اتجاه الريح ، يرسل البرنامج إشارات منخفضة وعالية إلى مُضاعِف الإرسال مع جميع توليفات المعلمات A و B و C (مصفوفة muxABC) وانتظر لتلقي النتيجة على الدبوس A0 يمكن أن يكون أي جهد بين 0 و 3.3 فولت. يتم عرض المجموعات في الرسم التخطيطي.

على سبيل المثال ، عندما C = 0 (منخفض) ، B = 0 (منخفض) ، A = 0 (منخفض) يعطيها مُضاعِف الإرسال بيانات الطرف 0 ويرسل الإشارة إلى A0 التي يقرأها Nodemcu ؛ إذا كان C = 0 (منخفض) ، B = 0 (منخفض) ، A = 1 (مرتفع) سيرسل لك معدد الإرسال بيانات الدبوس 1 وما إلى ذلك ، حتى تكتمل قراءة القنوات الثمانية.

نظرًا لأن الإشارة تمثيلية ، يتحول البرنامج إلى رقمي (0 أو 1) ، إذا كان الجهد أقل من أو يساوي 1.3 فولت ، تكون الإشارة 0 ؛ إذا كانت أكبر من 1.3 فولت ، تكون الإشارة 1. قيمة 1.3 فولت عشوائية وبالنسبة لي ، فقد عملت بشكل جيد جدًا. هناك دائمًا تسربات صغيرة للتيار وهذا يحمي من عدم وجود إيجابيات خاطئة.

يتم تخزين هذه البيانات في صمام متجه [8] والذي سيتم مقارنته مع مصفوفة العنوان كبوصلة. انظر المصفوفة في الرسم التخطيطي. على سبيل المثال ، إذا كان المتجه المستلم هو [0 ، 0 ، 1 ، 0 ، 0 ، 0 ، 0 ، 0] فإنه يشير في المصفوفة إلى الاتجاه E ويتوافق مع زاوية 90 درجة ؛ إذا كانت [0 ، 0 ، 0 ، 0 ، 0 ، 0 ، 1 ، 1] تشير في المصفوفة إلى عنوان WNW وتتوافق مع زاوية 292.5 درجة. يتوافق N مع [1 ، 0 ، 0 ، 0 ، 0 ، 0 ، 0 ، 0 ، 0] وزاوية 0 درجة.

ما سيتم إرساله إلى ThingSpeak يكون في الزاوية لأنه لا يقبل سوى الأرقام.

الخطوة 4: الاتصالات

مجال الاتصالات
مجال الاتصالات
مجال الاتصالات
مجال الاتصالات

كيفية إرسال البيانات إلى ThingSpeak

الوظيفة thingspeaksenddata () مسئولة عن إرسال البيانات.

ThingSpeak.setField (1، float (linear_velocity_kmh)) - أرسل بيانات السرعة إلى field1 من قناتي

ThingSpeak.setField (2، float (wind_Direction_Angle)) - أرسل بيانات العنوان إلى field2 من قناتي

ThingSpeak.writeFields (myChannelNumber، myWriteAPIKey) - أرسل إلى قناتي myChannelNumber ، مع واجهة برمجة تطبيقات myWriteAPIKey المكتوبة المشار إليها بواسطة TS. تم إنشاء هذه البيانات بواسطة TS عند إنشاء حسابك وقناتك.

في الصور أعلاه يمكنك أن ترى كيف يعرض ThingSpeak البيانات المستلمة.

في هذا الرابط ، يمكنك الوصول إلى بيانات مشروعي في القناة العامة لـ ThingSpeak.

الخطوة 5: المتغيرات الرئيسية

معلمات ريشة الرياح

  • MUX_A D5 - mux pi A إلى Nodemcu pin D5
  • MUX_B D4 - mux pin B إلى Nodemcu pin D4
  • MUX_C D3 - mux pin C إلى Nodemcu pin D3
  • READPIN 0 - الإدخال التناظري على NodeMcu = A0
  • NO_PINS 8 - عدد دبابيس مسك الغزال
  • val [NO_PINS] - المنافذ من 0 إلى 7 من mux
  • wind_Direction_Angle - زاوية اتجاه الرياح
  • سلسلة windRose [16] = {"N" ، "NNE" ، "NE" ، "ENE" ، "E" ، "ESE" ، "SE" ، "SSE" ، "S" ، "SSW" ، "SW" ، "WSW" ، "W" ، "WNW" ، "NW" ، "NNW"} - cardenals والضمانات والضمانات الفرعية
  • windAng [16] = {0، 22.5، 45، 67.5، 90، 112.5، 135، 157.5، 180، 202.5، 225، 247.5، 270، 292.5، 315، 337.5} - زوايا كل اتجاه
  • الرقم [16] [NO_PINS] - مصفوفة الاتجاهات
  • muxABC [8] [3] - تركيبات ABC mux

معلمات مقياس شدة الريح

  • rpmcount - عد عدد الدورات الكاملة التي قام بها مقياس شدة الريح في الوقت المخصص
  • timemeasure = 25.00 - زمن القياس بالثواني
  • timetoSleep = 1 - وقت استيقاظ Nodemcu بالدقائق
  • sleepTime = 15 - وقت النوم في دقائق
  • rpm ، rps - ترددات الدوران (الدورات في الدقيقة ، الدورات في الثانية)
  • نصف القطر - متر - قياس طول جناح مقياس شدة الريح
  • linear_velocity - السرعة الخطية بالمتر / المقطع
  • linear_velocity_kmh - السرعة الخطية بالكيلو متر في الساعة
  • أوميغا - السرعة الشعاعية في راديان / مقطع

أدناه يمكنك أن تجد الرسم الكامل. قم بإنشاء مجلد جديد في مجلد Arduino بجهاز الكمبيوتر الخاص بك بنفس اسم البرنامج الرئيسي (Anemometer_Instructables) وقم بتجميعها معًا.

أدخل بيانات شبكة wifi الخاصة بك ومعرف ThingSpeak ومفتاح كاتب API في الجزء Credentials.h وحفظه. تحميل إلى Nodemcu وهذا كل شيء.

لاختبار تشغيل النظام ، أوصي باستخدام مروحة دوارة جيدة.

للوصول إلى البيانات عبر الهاتف المحمول ، قم بتنزيل تطبيق IOS أو Android المسمى ThingView ، والذي ، لحسن الحظ ، لا يزال مجانيًا.

قم بتكوين إعدادات حسابك وستكون جاهزًا لرؤية ظروف الرياح في منزلك أينما كنت.

إذا كان لديك اهتمام ، فقم بالوصول إلى قناة معرّف قناة ThingSpeak الخاصة بي: 438851 ، وهي عامة وستجد هناك قياسات الرياح والاتجاه في منزلي.

آمل حقا أن تستمتع.

إذا كان لديك أي شك فلا تتردد في الاتصال بي.

يعتبر

موصى به: