תוכן עניינים:

כיצד לבנות מד מד משלך באמצעות מתגי קנים, חיישן אפקט הול וכמה שאריות ב- Nodemcu - חלק 2 - תוכנה: 5 שלבים (עם תמונות)
כיצד לבנות מד מד משלך באמצעות מתגי קנים, חיישן אפקט הול וכמה שאריות ב- Nodemcu - חלק 2 - תוכנה: 5 שלבים (עם תמונות)

וִידֵאוֹ: כיצד לבנות מד מד משלך באמצעות מתגי קנים, חיישן אפקט הול וכמה שאריות ב- Nodemcu - חלק 2 - תוכנה: 5 שלבים (עם תמונות)

וִידֵאוֹ: כיצד לבנות מד מד משלך באמצעות מתגי קנים, חיישן אפקט הול וכמה שאריות ב- Nodemcu - חלק 2 - תוכנה: 5 שלבים (עם תמונות)
וִידֵאוֹ: איך אפשר להפריד תערובת של מלח ופלפל? 2024, נוֹבֶמבֶּר
Anonim
כיצד לבנות מד רוח מד משלך באמצעות מתגי קנים, חיישן אפקט הול וכמה שאריות ב- Nodemcu - חלק 2 - תוכנה
כיצד לבנות מד רוח מד משלך באמצעות מתגי קנים, חיישן אפקט הול וכמה שאריות ב- Nodemcu - חלק 2 - תוכנה
כיצד לבנות מד רוח מד משלך באמצעות מתגי קנים, חיישן אפקט הול וכמה שאריות ב- Nodemcu - חלק 2 - תוכנה
כיצד לבנות מד רוח מד משלך באמצעות מתגי קנים, חיישן אפקט הול וכמה שאריות ב- Nodemcu - חלק 2 - תוכנה

מבוא

זהו ההמשך לפוסט הראשון "כיצד לבנות מד רוח משלך באמצעות מתגי קנים, חיישן אפקט הול וכמה שאריות ב- Nodemcu - חלק 1 - חומרה" - בו אני מראה כיצד להרכיב את מכשירי מדידת מהירות הרוח והכיוון. כאן ננצל את תוכנת בקרת המדידות המיועדת לשימוש ב- Nodemcu באמצעות ה- Arduino IDE.

תיאור פרויקט

בפוסט הקודם, המכשירים החמושים והמחוברים ל- Nodemcu מסוגלים למדוד את מהירות וכיוון הרוח. תוכנת הבקרה תוכננה לקרוא את סיבוב המד הרוח במשך פרק זמן מסוים, לחשב את המהירות הלינארית, לקרוא את הכיוון בו נמצאת השבב, להציג את התוצאות ב- OLED, לפרסם את התוצאות ב- ThingSpeak ולשכב במשך 15 דקות עד המדידה הבאה.

כתב ויתור: אין להשתמש במד -מד זה למטרות מקצועיות. הוא מיועד לשימוש אקדמי או ביתי בלבד.

הערה: אנגלית היא לא השפה הטבעית שלי. אם אתה מוצא שגיאות דקדוקיות שמונעות ממך להבין את הפרויקט, אנא יידע אותי על מנת לתקן אותן. תודה רבה לך.

שלב 1: התקנת Arduino IDE, לוחות וספריות ESP8266 וחשבון ThingSpeak שלך

התקנת Arduino IDE, לוחות וספריות ESP8266 וחשבון ThingSpeak שלך
התקנת Arduino IDE, לוחות וספריות ESP8266 וחשבון ThingSpeak שלך
התקנת Arduino IDE, לוחות וספריות ESP8266 וחשבון ThingSpeak שלך
התקנת Arduino IDE, לוחות וספריות ESP8266 וחשבון ThingSpeak שלך

התקנת Arduino IDE ו- Nodemcu

אם מעולם לא התקנת את IDE ה- Arduino אנא קרא את ההדרכה בקישור - כיצד להתקין את Arduino IDE - שם תוכל למצוא את ההוראות המלאות.

השלב הבא, להתקנת לוח Nodemcu השתמש במדריך זה מתוך מדריכי Magesh Jayakumar שהוא שלם מאוד. כיצד להתקין את Nodemcu no Arduino IDE

התקנת ספריות

בשלב הבא עליך להתקין את הספריות שבהן הסקיצה משתמשת. הם נפוצים ותוכל לבצע את השלבים המוצגים להלן.

ספריית ThingSpeak -

ספריית ESP8266 -

יצירת חשבון ThingSpeak

כדי להשתמש ב- ThingSpeak (https://thingspeak.com/) עליך ליצור חשבון (הוא עדיין בחינם למספר מסוים של אינטראקציות) שבו תוכל לשמור את הנתונים הנמדדים במד הרוח שלך ולפקח על תנאי הרוח בביתך, אפילו דרך הסלולר. באמצעות ThingSpeak תוכל לתת לציבור גישה למידע שנאסף למי שמעוניין בכך. זהו יתרון טוב של ה- ThingSpeak. היכנס לדף הבית ופעל לפי השלבים ליצירת החשבון שלך.

לאחר יצירת החשבון, היכנס למדריך זה - ThingSpeak Getting Started - ליצירת הערוצים שלך. זה די מוסבר. לסיכום, עליך ליצור ערוץ שבו הנתונים יישמרו. לערוץ זה יש מזהה וממשק API מפתח שאליהם אתה רוצה להקליט נתונים. ThingSpeak יאחסן את כל הנתונים בבנק ויציג אותם בכל פעם שאתה ניגש לחשבון שלך, באופן שהגדרת.

שלב 2: חקר הסקיצה

חקר הסקיצה
חקר הסקיצה
חקר הסקיצה
חקר הסקיצה

תרשים זרימה

בתרשים אתה יכול להבין את השטף של הסקיצה. כאשר אתה מעיר (מקשר) את ה- Nodemcu, הוא יתחבר לרשת ה- Wi-Fi שלך, שהגדרת את הפרמטרים שלה ותתחיל לספור דקת זמן אחת לביצוע המדידות. ראשית, הוא יספור את סיבובי המד-האנרומטר למשך 25 שניות, חשב את המהירות הלינארית וקראו את כיוון הרוח. התוצאות מוצגות ב- OLED. בצע שוב את אותם הצעדים ולקריאה שנייה זו היא תועבר ל- ThingSpeak.

לאחר מכן Nodemcu ישן במשך 15 דקות כדי לחסוך בסוללה. מכיוון שאני משתמש בפאנל סולארי קטן, הכרחי שאעשה זאת. אם אתה משתמש במקור 5V אתה יכול לשנות את התוכנית כך שהיא לא ישנה ולהמשיך למדוד את הנתונים.

מבנה התוכניות

בתרשים ניתן לראות את מבנה הסקיצה.

מד רוח_מדדים

זוהי התוכנית העיקרית שמעמיסה את הספריות, מפעילה את המשתנים, שולטת על הפרעה לצירוף, קוראת לכל הפונקציות, מחשבת את מהירות הרוח, קובעת את כיוונה ומרדימה אותה.

תקשורת

חבר את ה- WiFi ושלח את הנתונים ל- ThingSpeak.

credentials.h

המפתחות של רשת ה- WiFi שלך ומזהי חשבונך ב- ThingSpeak. כאן תוכל לשנות את מזהי המפתחות וממשקי ה- API שלך.

מגדיר.ה

הוא מכיל את כל המשתנים של התוכנית. כאן תוכל לשנות את זמני הקריאה או כמה זמן ה- nodemcu צריך לישון.

פונקציות

הוא מכיל את הפונקציות לשילוב הפרמטרים וקריאת המרבב וכן הפונקציה לקריאת סיבובי המד הרוח.

oledDisplay

הצג תוצאות על המסך של מהירות הרוח וכיוונה.

שלב 3: הסברים אודות …

הסברים אודות…
הסברים אודות…
הסברים אודות…
הסברים אודות…
הסברים אודות…
הסברים אודות…
הסברים אודות…
הסברים אודות…

צרף הפרעה

סיבוב המד הרוחב נמדד על ידי הפונקציה attachInterrupt () (ו- detachInterrupt ()) ב- GPIO 12 (סיכה D6) של ה- Nodemcu (יש לו תכונת הפרעה בסיכות D0-D8 שלו).

הפרעות הן אירועים או תנאים הגורמים לבקר המיקרו לעצור את ביצוע המשימה שהוא מבצע, לעבוד במשימה אחרת באופן זמני ולחזור למשימה הראשונית.

אתה יכול לקרוא את פירוט הפונקציה בקישור להדרכה של Arduino. ראה attachInterrupt ().

תחביר: attachInterrupt (סיכה, פונקציית התקשרות חוזרת, סוג/מצב קטע);

סיכה = D6

callback function = rpm_anemometer - סופר כל דופק על משתנה.

סוג/מצב הפסק = RISING - הפרעה כאשר הסיכה עוברת מנמוך לגבוה.

בכל דופק שמייצר המגנטו בחיישן האולם, הסיכה עוברת מנמוך לגבוה ופונקציית הספירה מופעלת ומסופקת דופק במשתנה, במהלך 25 השניות שנקבעו. לאחר תום הזמן, המונה מנותק (detachInterrupt ()) והשגרה מחשבת את המהירות כשהיא מנותקת.

חישוב מהירות הרוח

לאחר שנקבע כמה סיבובים המדד נתן תוך 25 שניות, אנו מחשבים את המהירות.

  • RADIO היא המדידה מהציר המרכזי של מד הרוח עד קצה כדור הפינג פונג. ודאי שמדת היטב את שלך - (ראה זאת בתרשים שאומר 10 ס"מ).
  • RPS (סיבובים לשנייה) = סיבובים / 25 שניות
  • סל"ד (סיבובים לדקה) = סל"ד * 60
  • OMEGA (מהירות זוויתית - רדיאנים לשנייה) = 2 * PI * RPS
  • Linear_Velocity (מטרים לשנייה) = OMEGA * RADIO
  • Linear_Velocity_kmh (קילומטרים לשעה) = 3.6 * Linear_Velocity וזה מה שיישלח ל- ThingSpeak.

קרא את כיוון השמשה הרוחנית

כדי לקרוא את המיקום של שבשב הרוח כדי לקבוע את כיוון הרוח התוכנית שולחת אותות נמוכים וגבוהים למכפיל עם כל שילובי הפרמטרים A, B, C (מטריצת muxABC) ומחכים לקבל על פין A0 את התוצאה זה יכול להיות כל מתח בין 0 ל 3.3V. השילובים מוצגים בתרשים.

לדוגמה, כאשר C = 0 (נמוך), B = 0 (נמוך), A = 0 (נמוך) המרבב נותן לו את הנתונים של סיכה 0 ושולח את האות ל- A0 הנקרא על ידי ה- Nodemcu; אם C = 0 (נמוך), B = 0 (נמוך), A = 1 (גבוה) המרבב ישלח לך את הנתונים של סיכה 1 וכן הלאה, עד להשלמת קריאת 8 הערוצים.

מכיוון שהאות אנלוגי, התוכנית הופכת לדיגיטלית (0 או 1), אם המתח קטן או שווה ל- 1.3V האות הוא 0; אם הוא גדול מ- 1.3V האות הוא 1. הערך 1.3V הוא שרירותי ומבחינתי, זה עבד טוב מאוד. תמיד יש נזילות קטנות של זרם וזה מגן על כך שאין חיוביות שווא.

נתונים אלה מאוחסנים במערך וקטורי [8] אשר יושווה למערך הכתובות כמצפן. עיין במטריצה בתרשים. לדוגמה, אם הווקטור שהתקבל הוא [0, 0, 1, 0, 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] וזווית של 0 מעלות.

מה שיישלח ל- ThingSpeak נמצא בזווית מכיוון שהוא מקבל מספרים בלבד.

שלב 4: תקשורת

תקשורת
תקשורת
תקשורת
תקשורת

כיצד לשלוח נתונים ל- ThingSpeak

הפונקציה thingspeaksenddata () אחראית לשליחת הנתונים.

ThingSpeak.setField (1, float (linear_velocity_kmh)) - שלח את נתוני המהירות לשדה 1 של הערוץ שלי

ThingSpeak.setField (2, float (wind_Direction_Angle)) - שלח את נתוני הכתובת לשדה 2 של הערוץ שלי

ThingSpeak.writeFields (myChannelNumber, myWriteAPIKey) - שלח לערוץ שלי myChannelNumber, עם ה- myWriteAPIKey API שנכתב על ידי TS. נתונים אלה נוצרו על ידי TS בעת יצירת החשבון והערוץ שלך.

בתמונות למעלה אתה יכול לראות כיצד ThingSpeak מציג את הנתונים שהתקבלו.

בקישור זה תוכל לגשת לנתוני הפרויקט שלי בערוץ הציבורי של ThingSpeak.

שלב 5: משתנים עיקריים

פרמטרים של שבב הרוח

  • MUX_A D5 - mux pi A ל- Nodemcu pin D5
  • MUX_B D4 - סיכת mux B ל- pin Nodemcu D4
  • MUX_C D3 - סיכת mux C לסיכה Nodemcu D3
  • READPIN 0 - קלט אנלוגי ב- NodeMcu = A0
  • NO_PINS 8 - מספר סיכות mux
  • val [NO_PINS] - יציאות 0 עד 7 של mux
  • wind_Direction_Angle - זווית כיוון הרוח
  • String windRose [16] = {"N", "NNE", "NE", "ENE", "E", "ESE", "SE", "SSE", "S", "SSW", "SW", "WSW", "W", "WNW", "NW", "NNW"} - קרדנלים, בטחונות ותתי -בטחונות
  • 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] - שילובי mux ABC

פרמטרים של מד -מד

  • rpmcount - ספור כמה סיבובים מלאים עשה מד הרוח בזמן המוקצב
  • מדידת זמן = 25.00 - זמן משך מדידה בשניות
  • timetoSleep = 1 - זמן ערנות של Nodemcu בדקות
  • sleepTime = 15 - זמן להמשיך לישון תוך דקות
  • סל"ד, סל"ד - תדרי סיבוב (סיבובים לדקה, סיבובים לשנייה)
  • רדיוס - מטרים - מידת אורך כנף מד הרוח
  • linear_velocity - מהירות לינאלית ב- m/seg
  • linear_velocity_kmh - מהירות לינאלית בקמ"ש
  • אומגה - מהירות רדיאלית ברד/סג

להלן תוכלו למצוא את הסקיצה המלאה. צור תיקייה חדשה בתיקיית Arduino של המחשב שלך עם אותו שם כמו התוכנית הראשית (Anemometer_Instructables) וחבר את כולם יחד.

הזן את הנתונים של רשת ה- wifi שלך ואת מזהה ThingSpeak ומפתח ה- API Writer בחלק Credentials.h ושמור. העלה ל- Nodemcu וזה הכל.

כדי לבדוק את פעולת המערכת אני ממליץ על מאוורר מסתובב טוב.

כדי לגשת לנתונים באמצעות טלפון נייד, הורד את היישום ל- IOS או לאנדרואיד בשם ThingView, שלמרבה המזל הוא עדיין בחינם.

הגדר את הגדרות החשבון שלך ותהיה מוכן לראות את תנאי הרוח הביתית שלך באשר אתה.

אם יש לך עניין, גש לערוץ מזהה הערוץ שלי ThingSpeak: 438851, שהוא ציבורי ושם תמצא את מדידות הרוח והכיוון בביתי.

אני באמת מקווה שיהיה לך כיף.

אם יש לך ספק אל תהסס לפנות אלי.

בברכה

מוּמלָץ: