תוכן עניינים:
- אספקה
- שלב 1: בניית מכשירים
- שלב 2: חיבורי Starter DOL
- שלב 3: צור חשבון עם Adafruit IO (io.adafruit.com)
- שלב 4: בנה והתקן את התוכנה
- שלב 5: התקן והגדר את אפליקציית MQTT Dash בנייד שלך
- שלב 6: שלב אחרון:-) בדיקה והתאמה
וִידֵאוֹ: בקר IOL מבוסס IOT למערכות השקיה: 6 שלבים
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:14
שלום חברים
מדריך זה עוסק כיצד לעקוב ולשלוט מרחוק על משאבת השקיה המוגדרת דרך האינטרנט.
סיפור: בחווה שלי אני מקבל אספקת חשמל מהרשת המקומית רק במשך כ -6 שעות ביום. העיתוי אינו קבוע, זמינות החשמל יכולה להיות מוקדם בבוקר או מאוחר בערבים או אפילו בחצות. כל פעם שהלך למיקום הבאר המשעמם כדי לבדוק זמינות חשמל, הפעלה או עצירה של המנוע היה תהליך כואב מאוד. כמו כן הייתי צריך להבטיח מנוע לפעול לפחות 2-3 שעות בכל יום כדי לספק מים מספקים למערכת הטפטוף. לא מעט זמן בחנתי אפשרויות לפתור בעיה זו על ידי הפעלה מרחוק של המנוע וגם ידעתי את הסטטוס. ישנם מכשירים זמינים בשוק אשר יפעילו את המנוע ברגע שיהיה ספק כוח, אך אין להם את התכונה לעצור את המנוע מתי שנרצה. וגם אין שום דרך לדעת את מצב המנוע ON/OFF בכל נקודת זמן. בדרך כלל הדבר מוביל להשקיית יתר, מה שמוביל לאובדן פוריות הקרקע וגם לבזבוז חשמל. לבסוף בניתי בעצמי פתרון שבו אוכל להתחיל ולעצור את המנוע מרחוק מהנייד/הטאבלט/מחשב בכל זמן ובכל מקום … !!. כמו כן, אני יכול לעקוב אחר זמינות אספקת החשמל מהחגורה, כמו גם את מצב המנוע (ON/OFF) כל הזמן. מקווה שזה יעזור לבעלי חוות בצד הכפרי לנהל את מערכות ההשקיה שלהם ללא צורך ללכת למיקום המתנע כל הזמן.
אספקה
דרישות מוקדמות:
המיקום שבו ברצונך להתקין מכשיר זה חייב להיות בעל זמינות אינטרנט (פס רחב עם wifi/אינטרנט נייד)
דברים שאתה צריך:
- NodeMCU /ESP12
- ממסר דו ערוצי
- WCS1700 - חיישן זרם
- מודול טעינת סוללות TP4056
- LD313, קבל - 1000uF Register - שני רגיסטרים של 5k ohm
- כל סמארטפון (ישן) עם נקודה חמה /אינטרנט.
איך זה עובד:
זהו פתרון IOT מבוסס ענן פשוט באמצעות NodeMCU/ESP12 ומתווך MQTT מרוחק. NodeMCU פועל כשער IOT, שולט גם על המתנע DOL. הוא מתחבר לברוקר MQTT מרוחק דרך האינטרנט. אפליקציה שפועלת בנייד אנדרואיד מתחברת לברוקר באמצעותה אנו יכולים לעקוב ולשלוט על מערכת משאבת ההשקיה שלנו כל הזמן. השתמשתי בברוקר MQTT זמין בחינם מ- Adafruit IO. יש הרבה מתווכים בחינם כמו יתוש, cloudmqtt וכו '. אתה יכול לבחור כל מתווך בתנאי שתשנה את השרת ואת מספר היציאה בקוד. NodeMCU מתחבר לאינטרנט באמצעות WiFi מהנקודה החמה הניידת. Yon יכול להשתמש בכל נייד ישן או בעלות נמוכה כדי לספק גישה ל- wifi דרך נקודה חמה או כל אמצעי אחר לספק אינטרנט באמצעות wifi. הנייד צריך להיות מחובר למטען כפי שהוא אמור להיות ב- 24X7.
NodeMCU מתממשק לשני ממסרים לבקרת ההפעלה וההפעלה של המנוע. כדי לחוש את הזרם במנוע השתמשתי בחיישן זרם WCS1700. הפלט האנלוגי מהחיישן משמש כדי לדעת שהמנוע מופעל או כבוי. הוא גם מזהה את זמינות החשמל מהרשת ומפרסם אותו לברוקר כך שנוכל לדעת את מצב הרשת בכל עת. המכשיר מנוי על שני הזנות כדי לקבל את הבקשה על מנוע ON ו- motor OFF. על ידי שליחת ערכים ספציפיים להזנות אלה אנו יכולים לשלוט במנוע ל- START או STOP.
לבסוף התקנתי את אפליקציית MQTT Dash בטלפון האנדרואיד שלי והגדרתי אותה להתחבר לברוקר MQTT ולהשתמש בפידים בלוח המחוונים/הגוי שלו. לאפליקציה יש סמלים טובים מאוד עם לחצנים, מד, מתג וכו 'ליצירת לוח מחוונים אטרקטיבי. עם זאת אתה יכול להשתמש בכל אפליקציה לנייד אוטומציה ביתית של IOT התומכת בפרוטוקול mqtt.
כיצד עובד WCS1700:
WCS1700 הוא בעצם חיישן אפקט הול שיפיק מתח יציאה ביחס לשדה המגנטי שנוצר כשהזרם זורם דרך הסליל. הסליל כאן הוא קו אספקת חשמל שיחובר למנוע. הוא יכול למדוד זרם AC עד 70 אמפר. מתח ההפעלה הוא בין 3.3 ל -12 V. עיין בגיליון הנתונים שלו לפרטים נוספים. בזמן שאני משתמש ב- ESP12 השתמשתי באותו ספק כוח של 3.3V כמו מתח הפעלה עבור WCS1700. כפי שצוין בגיליון הנתונים ב 3.3 V המכשיר אמור לייצר מתח דיפרנציאלי של כ -32 עד 38 mV לכל אמפר זרם דרך הסליל. אך הוא עשוי להשתנות בהתאם לגודל הסליל / פער האוויר והשינויים במכשיר. מכאן שהייתי צריך לכייל אותו על ידי בדיקה באמצעות Ampere Meter. אני לא שמח על הדיוק של המכשיר אבל הוא מספיק טוב כדי להחליט על מצב המנוע כ- ON/OFF. סיכת הפלט של WCS1700 מתחברת ל- A0 של ESP12. כאשר אין זרם ה- ESP12 צריך לקרוא את הערך בסביבות 556. ככל שהעלייה הנוכחית בסליל המתח יכול להיות משני הצדדים בהתבסס על האופן שבו הכבל עובר דרך החיישן. בקוד לקחתי את הפרש הערכים כערך מוחלט של (x - 556). על ידי חלוקת התוצאה עם 15 קיבלתי זרם משוער הזורם דרך החיישן. יהיה עליך להתנסות בכדי לקבל את המספר הנכון עבורך. כל מדידת זרם על ידי המכשיר מעל 5 אמפר לדעתי כמנוע דולק ומתחת 5 אמפר כשהמנוע כבוי. אתה יכול להשתמש במספר הנכון עבור המכשיר שלך על ידי ניסוי. עליך לשנות את WCS1700_CONST ו- MIN_CURRENT בקוד בהתאם.
שלב 1: בניית מכשירים
התרשים לעיל נותן פרטים מלאים כיצד לחבר את כל הרכיבים.
ספק כוח: השתמשתי ב- TP4056 כדי לטעון את הסוללות ו- LM313 כדי להסדיר את הספק 3.7V - 4.2V של הסוללה ל -3.3 V כדי להפעיל את NodeMCU. השתמש בקבל 1000mF בין Vin לקרקע של LM313 כדי לקבל אספקה יציבה של 3.3V. אתה יכול להשתמש במטען USB נייד רגיל להפעלת TP4056. יש לו מעגל הגנה מפני סוללות כדי להגן על הסוללה מפני טעינת יתר.
רשת חישה לאספקת חשמל: מחלק המתח של 5k אוהם יפחית את ה -5 V ל -2.5 וולט. פין D5 של NodeMCU יחוש במתח.
סיכת הפלט של WCS1700 מחוברת ל- A0 כדי לקרוא את המתח האנלוגי מהחיישן. קו החשמל ברשת צריך לעבור דרך החור כדי למדוד את הזרם. השתמשתי בקבל 0.01 uF לקבל את טופס הקריאה היציב WCS1700.
D1 ו- D2 של NodeMCU לחיבור ל- IN0 ו- IN1 של סיכות הכניסה ממסר.
שלב 2: חיבורי Starter DOL
שיפרתי את מעגל הבקרה של המתנע DOL כדי להציג קבוצה נוספת של מתג START ו- STOP. שינוי זה לא ישפיע על פעולת ההפעלה/העצירה הידנית והם ממשיכים לעבוד כפי שהם.
זהירות !!!! מכיוון שמתנע DOL הוא מכשיר מתח גבוה וודא שהמתג הראשי כבוי לפני פתיחת הקופסה. מגע ישיר עם חוט חי יכול להיות מסוכן. אם אינכם בטוחים קחו עזרה של חשמלאי לביצוע החיבורים
השתמשתי במודול ממסר 2 ערוצים 5 V כמתג START ו- STOP. ממסרים אלה יהיו בשליטת ESP12.
ממסר - 0 יפעל כמתג START - מחובר כ- NO (פתוח בדרך כלל).
ממסר -1 יפעל כמתג STOP - מחובר כ- NC (סגור בדרך כלל). למתנע כבר יהיה חוט המתחבר ממגע העליון ל- NVC. יהיה עליך להסיר אותו ולהחליף אותו בחוט ממסר -1 כפי שמוצג.
וודא שהחיבורים בין המתנע למודולי הממסר מבודדים לחלוטין לבטיחות. תיכננתי את ESP להחזיק את שני הממסרים למשך 2 שניות כדי לחקות לחיצה על כפתור START/STOP.
שלב 3: צור חשבון עם Adafruit IO (io.adafruit.com)
השתמשתי במתווך Adafruit io mqtt שהוא בחינם לשימוש עם מספר מגבלות אך הוא תקין לשימושנו. אני מעדיף את זה מכיוון שהשתמשתי בו גם בפרויקטים אחרים ומצאתי אמין למדי ויש לו גם הרבה יותר תכונות כמו לוח מחוונים עם GUI נחמד ואפילו אנחנו יכולים להשתמש בטריגרים. כדי להשתמש ב- Adafruit io עליך ליצור חשבון ולציין את שם המשתמש והמפתח הפעיל.
שלב 4: בנה והתקן את התוכנה
הקוד המלא זמין במערכון. עליך לפתוח זאת ב- Arduino IDE ולבצע מספר שינויים לפני הידור והעלאת הקושחה. בחר את סוג הלוח כ- NodeMCU 1.0. התקנת IDE וספריות נלוות אינן נכללות במסגרת תיעוד זה.
שנה את השורות הבאות בקוד כעורות.
#define WLAN_SSID "xxx" // SSID WiFi נקודה חמה שלך
#הגדר WLAN_PASS "……" //
/************************ הגדרת Adafruit.io ******************** *************/
#define AIO_SERVER "io.adafruit.com"
#define AIO_SERVERPORT 1883 // השתמש ב- 8883 עבור SSL
#הגדר AIO_USERNAME "xyz" // שם משתמש של חשבון adafruit שלך
#define AIO_KEY "abcd ……" // מפתח הפעיל שלך …
אודות הזנות MQTT: המכשיר והלקוח (אפליקציה לנייד) מחליפים מידע באמצעות הזנות הודעות באמצעות דגם תת פאב באמצעות מתווך MQTT. כל לקוח או מכשיר כדי לקבל הודעה, עליו להירשם להזנה מוגדרת מראש ועליו להשתמש בשיטת פרסום כדי לשלוח הודעה להזנה. לפרויקט שלנו אנו דורשים כ -5 הזנות. להלן ההסבר על כל אחד מההזנות כפי שאתה רואה בקוד וכיצד הוא פועל.
סטטוס רשת: זמינות אספקת החשמל מהרשת מתפרסמת בפיד /feeds/grid. Adafruit_MQTT_Publish grid_stat = Adafruit_MQTT_Publish (& mqtt, AIO_USERNAME "/feeds/grid");
0 מציין כי אספקת החשמל אינה זמינה ו -1 עבור אספקת החשמל זמין.
מצב מנוע: המכשיר יפרסם את סטטוס המנוע בפיד…/הזנות/רשת.
Adafruit_MQTT_Publish motor_status = Adafruit_MQTT_Publish (& mqtt, AIO_USERNAME "/feeds/motor")
ערך 0 עבור OFF ו- 1 עבור ON
לחצן מנוע ON: הזנה זו משמשת לקבלת הבקשה להפעלת המנוע. המכשיר ירשם להזנה כדי לקבל בקשת התחלה מוטורית עם value = 1 ולהשתמש באותו פיד כדי לפרסם הודעת אישור כ- 0. כך נוכל לאשר שההודעה התקבלה בפועל על ידי המכשיר.
Adafruit_MQTT_Subscribe motoronbutton = Adafruit_MQTT_Subscribe (& mqtt, AIO_USERNAME "/feeds/motor_on");
לחצן כיבוי מנוע:
בדומה לבקשת התחלה הזנה זו משמשת לקבלת הבקשה להפסקת המנוע. המכשיר ירשם לעדכון כדי לקבל את בקשת העצירה עם ערך = 1 ולהשתמש באותו פיד כדי לפרסם הודעת אישור כ- 0.
Adafruit_MQTT_Subscribe motoroffbutton = Adafruit_MQTT_Subscribe (& mqtt, AIO_USERNAME "/feeds/motor_off");
חיבור:
זהו הזנה מיוחדת עם אפשרות "הצוואה האחרונה". כאשר המכשיר עובד מצוין בכל מרווח קבוע הוא יפרסם חיבור = 1 כדי לספר למשתמש שהכל בסדר. במקרה שהמערכת נכשלה או שהחיבור אבד, המכשיר לא יוכל לתקשר עם המתווך. במקרים כאלה מתווך MQTT עצמו יפרסם בעדכון כחיבור = 0 כדי ליידע את המשתמש שמשהו השתבש ואין אפשרות להשיג את המכשיר דרך האינטרנט. עלינו ללכת פיזית ולבדוק את המכשיר. הקוד פשוט מאוד. עיין בתיעוד MQTT לפרטים נוספים על אופן הפעולה של "צוואה אחרונה".
אם (itr <= 0)
{
mqtt.publish (AIO_USERNAME "/הזנות/חיבור", "1", 1);
itr = CON_LIVE_ITR;
}
שאר הקוד מסביר את עצמו ואין צורך בשינויים. אל תהסס להגיב למקרה שתזדקק למידע נוסף.
שלב 5: התקן והגדר את אפליקציית MQTT Dash בנייד שלך
- התקן את MQTT Dash בטלפון אנדרואיד שלך ופתח את האפליקציה
- לחץ על סמל + בפינה השמאלית העליונה כדי להוסיף מכשיר.
- כפי שמוצג בתמונה הראשונה למעלה תן שם כלשהו למכשיר שלך אמור "MyFarm-IPSet". שדה כתובת כ- io.adafruit.com ויציאה כ- 1883, שם המשתמש צריך להיות שם המשתמש שלך והסיסמה שלך ב- adafruit צריך להיות המפתח הפעיל שלך מ- adafruit. השאר את שאר השדות כפי שהם. לבסוף לחץ על שמור.
- יצרת את המכשיר שלך. כעת לחץ עליו כדי להוסיף לו לוח מחוונים.
- לחץ על + ובחר סוג כמתג/כפתור. כפי שמוצג למעלה הזן sys בשדה השם. והזן את שם ההזנה בשדה הנושא. כל פיד צריך להתחיל בשם משתמש/הזנות/. בשביל זה אנו /הזנות /חיבור. ודא שהפעל פרסום מושבת. על ידי לחיצה על הסמל להצגה תוכל לבחור את סוג הסמל שאתה רוצה להיראות בלוח המחוונים. עבור ערך 1 בחר אחד מהצבעים (נניח ירוק) ולערך 0 בחר צבע כאפור או אדום. לבסוף לחץ על שמור בפינה השמאלית העליונה. באופן דומה צור שני סמלים נוספים אחד עבור רשת עם שם משתמש/הזנות/רשת כנושא ומנוע עם שם משתמש/הזנות/מנוע. ודא שהפעל פרסום מושבת.
- לבסוף צור כפתור מנוע ON. זה שוב אותו סוג כמו מתג/כפתור. הנושא צריך להיות /feeds /motor_on ולוודא שהפעלת פרסום מופעלת הפעם ו- QOS = 1. באופן דומה צור כפתור נוסף ל- Motor OFF. הנושא צריך להיות /feeeds /motor_off.
שלב 6: שלב אחרון:-) בדיקה והתאמה
- ליתר ביטחון עליך לבדוק את המכשיר תחילה לגבי פעולות ההפעלה והעצירה שלו לפני חיבור הממסרים למתנע DOL. אפשר נקודה חמה בנייד עם אינטרנט מופעל. חבר את המחשב הנייד בעל סביבת הפיתוח ישירות ליציאת USB NodeMCU עם מטען אחר המחובר ל- TP4056 בו זמנית. אם המכשיר מחובר בהצלחה לאינטרנט אתה אמור לראות מכשיר אחד המחובר לנקודה חמה בסמארטפון.
- בסמארטפון השני שבו התקנת את MQTT Dash פתח את לוח המחוונים של האפליקציה. אתה צריך לראות שסמל NET בירוק וסמל רשת גם בירוק עם הערכים שלהם כ 1. סמל המנוע אמור להופיע כמנוע כבוי עם ערך 0.
- בעת לחיצה על כפתור המנוע ON, ממסר ההתחלה צריך להשמיע שני קולות לחיצה במרווח של שתי שניות. באופן דומה גם כפתור המנוע OFF.
- למען בטיחות, כבה כעת את האספקה הראשית למתנע DOL וחבר את הממסרים למתנע DOL כפי שמוצג למעלה שלב 2. ודא שהמנוע כבוי. לחץ על לחצן האיפוס ב- NodeMCU. מתוך פלט הצג הטורי, אתה יכול לראות הצהרות באגים שמדפיסות ערכים מחיישן WC1700, דלתא והזרם המחושב בסליל. כאשר המנוע במצב כבוי ו- "#define WCS1700_CONST 15" ה- maxCur צריך להיות פחות מ -2 באופן עקבי. אם הוא מראה יותר מ -2, נסה עם ערכים גבוהים יותר של WCS1700_CONST. בכל פעם תצטרך לאסוף מחדש את הקוד ולטעון את הקושחה.
- כעת הפעל את המנוע וחפש שוב את הקריאות הנוכחיות. השאר את המנוע כ 10 -15 דקות ורשום את קריאת הזרם היציב. הזרם עשוי להשתנות בין 10 ל -20 אמפר בערך ואינו צריך להיות מדויק.
- חזור לקוד והגדר "#define MIN_CURRENT X. כאשר X הוא 40 אחוז מהזרם המקסימלי המשוער לערך מספרי. במקרה שלי הגדרתי MIN_CURRENT ל- 5. הידור וטען מחדש את הקושחה ל- NodeMCU.
- הסר את כבל ה- USB מ- NodeMCU. כבה והפעל את המכשיר באמצעות מטען USB המחובר ל- TP4056. לחיצה על כפתור מנוע ON באפליקציה לנייד אמורה להפעיל את המנוע. לאחר שהמנוע מופעל, המנוע צריך לשקף על לוח המחוונים של האפליקציה כ- ON. לחיצה על כפתור העצירה אמורה לעצור את המנוע.
תהנה !!!!
מוּמלָץ:
בקר משחק DIY מבוסס Arduino - בקר משחקים Arduino PS2 - משחק Tekken עם לוח המשחקים Arduino DIY: 7 שלבים
בקר משחק DIY מבוסס Arduino | בקר משחקים Arduino PS2 | משחק Tekken עם DIY Arduino Gamepad: שלום חבר'ה, משחקים זה תמיד כיף, אבל משחק עם בקר DIY מותאם אישית משלך הוא יותר כיף. אז נכין בקר משחק באמצעות arduino pro micro במדריך זה
מד חום אינפרא אדום מבוסס Arduino - מד חום מבוסס IR באמצעות Arduino: 4 שלבים
מד חום אינפרא אדום מבוסס Arduino | מד חום מבוסס IR באמצעות Arduino: היי חברים במדריך זה נכין מדחום ללא מגע באמצעות arduino. מכיוון שלפעמים הטמפרטורה של הנוזל/מוצק גבוהה מדי או נמוכה ואז קשה ליצור איתו קשר ולקרוא אותו הטמפרטורה אז בתרחיש זה
חיישן תנועה מבוסס PIR מבוסס Arduino: 4 שלבים
חיישן תנועה מבוסס PIR מבוסס Arduino: בעזרת פרויקט זה, אתה יכול לשלוט על המצב הגבוה והרגישות של PIR
מחולל מוזיקה מבוסס מזג אוויר (מחולל מידי מבוסס ESP8266): 4 שלבים (עם תמונות)
מחולל מוזיקה מבוסס מזג אוויר (מחולל מידי מבוסס ESP8266): היי, היום אסביר כיצד להכין מחולל מוזיקה קטן מבוסס מזג אוויר. ועוצמת אור. אל תצפה שהוא ייצור שירים שלמים או יתפתח אקורד
בקר מפלס מים מבוסס IOT באמצעות NodeMCU ESP8266: 6 שלבים
בקר מפלס מים מבוסס IOT באמצעות NodeMCU ESP8266: זהו הוראה כיצד ליצור בקר מפלס מים מבוסס IOT. תכונות הפרויקט הן:- עדכוני מפלס מים בזמן אמת באפליקציית Android. הפעל אוטומטית את משאבת המים כאשר המים מגיעים לרמה מינימלית. או