תוכן עניינים:
- שלב 1: התקנת Arduino IDE, לוחות וספריות ESP8266 וחשבון ThingSpeak שלך
- שלב 2: חקר הסקיצה
- שלב 3: הסברים אודות …
- שלב 4: תקשורת
- שלב 5: משתנים עיקריים
וִידֵאוֹ: כיצד לבנות מד מד משלך באמצעות מתגי קנים, חיישן אפקט הול וכמה שאריות ב- Nodemcu - חלק 2 - תוכנה: 5 שלבים (עם תמונות)
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:15
מבוא
זהו ההמשך לפוסט הראשון "כיצד לבנות מד רוח משלך באמצעות מתגי קנים, חיישן אפקט הול וכמה שאריות ב- Nodemcu - חלק 1 - חומרה" - בו אני מראה כיצד להרכיב את מכשירי מדידת מהירות הרוח והכיוון. כאן ננצל את תוכנת בקרת המדידות המיועדת לשימוש ב- Nodemcu באמצעות ה- Arduino IDE.
תיאור פרויקט
בפוסט הקודם, המכשירים החמושים והמחוברים ל- Nodemcu מסוגלים למדוד את מהירות וכיוון הרוח. תוכנת הבקרה תוכננה לקרוא את סיבוב המד הרוח במשך פרק זמן מסוים, לחשב את המהירות הלינארית, לקרוא את הכיוון בו נמצאת השבב, להציג את התוצאות ב- OLED, לפרסם את התוצאות ב- ThingSpeak ולשכב במשך 15 דקות עד המדידה הבאה.
כתב ויתור: אין להשתמש במד -מד זה למטרות מקצועיות. הוא מיועד לשימוש אקדמי או ביתי בלבד.
הערה: אנגלית היא לא השפה הטבעית שלי. אם אתה מוצא שגיאות דקדוקיות שמונעות ממך להבין את הפרויקט, אנא יידע אותי על מנת לתקן אותן. תודה רבה לך.
שלב 1: התקנת 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, שהוא ציבורי ושם תמצא את מדידות הרוח והכיוון בביתי.
אני באמת מקווה שיהיה לך כיף.
אם יש לך ספק אל תהסס לפנות אלי.
בברכה
מוּמלָץ:
חיישן מגנט RaspberryPi 3 עם חיישן מיני קנים: 6 שלבים
חיישן מגנט RaspberryPi 3 עם חיישן קנים מיני: במדריך זה ניצור חיישן מגנט IoT באמצעות RaspberryPi 3. החיישן מורכב מנורית וזמזם, שניהם נדלקים כאשר מגנט מורגש על ידי חיישן הקנה המיני
תחנת לופר אפקט גיטרות אפקט מעקף אמיתי הניתנת לתכנות באמצעות מתגי דיפ: 11 שלבים
תחנת לופר אפקט גיטרה אפקט מעקף אמיתי הניתנת לתכנות באמצעות מתגי דיפ: אני חובב גיטרה ושחקן חובבני. רוב הפרויקטים שלי מתרחשים סביב אביזרי גיטרה. אני בונה לעצמי מגברים וכמה דוושות אפקט.בעבר ניגנתי בלהקה קטנה ושכנעתי את עצמי שאני צריך רק מגבר עם מגבר
הדגמה 4x4 של לוח שחמט אלקטרוני/ עם Arduino Mega + קורא RFID + חיישני אפקט הול: 7 שלבים
הדגמה 4x4 של לוח שחמט אלקטרוני/ עם Arduino Mega + קורא RFID + חיישני אפקט היכל: היי יוצרים, אני טאהיר מירייב, בוגר 2018 מהאוניברסיטה הטכנית במזרח התיכון, אנקרה/ טורקיה. למדתי במתמטיקה שימושית, אבל תמיד אהבתי לייצר דברים, במיוחד כשכללה עבודת יד עם אלקטרוניקה, עיצוב ותכנות
חיישן אפקט הול על ארדואינו באמצעות Fidget Spinner: 3 שלבים (עם תמונות)
חיישן אפקט הול על ארדואינו באמצעות Fidget Spinner: תקציר בפרויקט זה אני מסביר כיצד עובד חיישן אפקט האולם למדידת מהירות ספינר fidget עם לוח ארדואינו. עובד: -חיישן אפקט הול הוא מתמר שמשנה את מתח המוצא שלו בתגובה לשדה מגנטי. אפקט אולם
כיצד לבנות תיבת רמקולים לגיטרה או לבנות שניים לסטריאו שלך: 17 שלבים (עם תמונות)
כיצד לבנות תיבת רמקולים לגיטרה או לבנות שניים לסטריאו שלך: רציתי שרמקול גיטרה חדש ילווה עם מגבר הצינור שאני בונה. הרמקול יישאר בחנות שלי כך שהוא לא צריך להיות משהו מיוחד מדי. כיסוי טולקס עלול להיפגע בקלות רבה מדי אז רק ריססתי את החלק החיצוני בשחור לאחר חול בהיר