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

מד לחות קרקע סולרית עם ESP8266: 10 שלבים (עם תמונות)
מד לחות קרקע סולרית עם ESP8266: 10 שלבים (עם תמונות)

וִידֵאוֹ: מד לחות קרקע סולרית עם ESP8266: 10 שלבים (עם תמונות)

וִידֵאוֹ: מד לחות קרקע סולרית עם ESP8266: 10 שלבים (עם תמונות)
וִידֵאוֹ: מד לחות לעציץ-ללא ארדווינו 2024, יולי
Anonim

במדריך זה אנו מכינים מוניטור לחות קרקע המונע על ידי שמש. הוא משתמש במיקרו -בקר ESP8266 wifi עם קוד הספק נמוך, והכל עמיד למים כך שניתן להשאיר אותו בחוץ. אתה יכול לעקוב אחר המתכון הזה בדיוק, או לקחת ממנו את הטכניקות השימושיות לפרויקטים שלך.

אם אתה חדש בתכנות מיקרו -בקר, עיין בשיעורי Arduino Class וב- Internet of Things כדי להתעדכן ביסודות החיווט, הקידוד והחיבור לאינטרנט.

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

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

שלב 1: מה שאתה צריך

מה אתה צריך
מה אתה צריך

תזדקק ללוח טעינה של סוללות סולאריות והתפרצות ESP8266 כגון NodeMCU ESP8266 או חוזה, כמו גם חיישן אדמה, סוללה, מתג הפעלה, מעט חוט ומארז להכניס את המעגל פנימה.

להלן הרכיבים והחומרים המשמשים את מוניטור לחות הקרקע:

  • מיקרו -בקר ESP8266 NodeMCU (או דומה, Vin חייב לסבול עד 6V)
  • לוח טעינה סולארי Adafruit עם תרמיסטור אופציונלי ונגד 2.2K אוהם
  • סוללת ליתיום 2200mAh
  • לוח פרמה-פרוטו
  • חיישן לחות/טמפרטורה בקרקע
  • 2 בלוטות כבל
  • מארז עמיד למים
  • זוג כבלי חשמל DC עמיד למים
  • צינורות לכווץ חום
  • פאנל סולארי 3.5W
  • מתג הפעלה בלחצן
  • קלטת קצף כפולה

להלן הכלים הדרושים לך:

  • מלחם והלחמה
  • כלי עזרה בידיים
  • חשפניות חוטים
  • סומק סומק
  • פינצטה (לא חובה)
  • אקדח חום או מצית
  • מולטימטר (אופציונלי אך שימושי לפתרון בעיות)
  • כבל USB A-microB
  • מספריים
  • תרגיל שלב

תזדקק לחשבונות בחינם באתרי נתוני ענן io.adafruit.com ו- IFTTT.

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

שלב 2: אב טיפוס ללוח הלחם

אב טיפוס של לוח לחם
אב טיפוס של לוח לחם

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

תמונה
תמונה
תמונה
תמונה
תמונה
תמונה
תמונה
תמונה

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

תמונה
תמונה

עקוב אחר תרשים המעגלים כדי לחבר את כוח החיישן, הקרקע, השעון וסיכות הנתונים (הנתונים מקבלים גם נגד משיכה של 10K שמגיע עם חיישן הקרקע).

  • חוט ירוק חיישן ל- GND
  • חוט אדום חיישן עד 3.3V
  • חוט צהוב חיישן לפין D5 של NodeMCU (GPIO 14)
  • חיישן תיל כחול ל- NodeMCU pin D6 (GPIO 12)
  • נגד משיכה של 10K בין סיכת הנתונים הכחולה לבין 3.3V

אתה יכול לתרגם את זה למיקרו הבקר המועדף עליך. אם אתה משתמש ב- Arduino Uno או דומה, הלוח שלך כבר נתמך על ידי תוכנת Arduino. אם אתה משתמש ב- ESP8266, עיין בשיעורי האינטרנט של הדברים שלי לקבלת עזרה שלב אחר שלב בהגדרת ESP8266 בארדואינו (על ידי הוספת כתובות URL משלימות לשדה כתובות אתרים נוספות של מנהל לוחות בהעדפות של Arduino, ולאחר מכן חיפוש ו בחירת לוחות חדשים ממנהל הלוחות). אני נוטה להשתמש בסוג הלוח של Adafruit ESP8266 Huzzah לתכנת לוח NodeMCU ESP8266, אך תוכל גם להתקין ולהשתמש בתמיכת הלוח ESP8266 הגנרית. תזדקק גם למנהל ההתקן שבב התקשורת USB מסוג SiLabs (זמין עבור Mac/Windows/Linux).

כדי להפעיל את החיישן באמצעות הלוח התואם Arduino שלי, הורדתי את ספריית ה- SHT1x Arduino מדף ה- github המעשי של Arduino, ולאחר מכן פרקתי את הקובץ והעברתי את תיקיית הספרייה לתיקיית ה- Arduino/libraries שלי ואז שמתי את שמו ל- SHT1x. פתח את הסקיצה לדוגמה ReadSHT1xValues ושנה את מספרי הסיכה ל- 12 (dataPin) ו- 14 (clockPin), או העתק את הסקיצה שהשתנתה כאן:

#לִכלוֹל

#define dataPin 12 // NodeMCU pin D6 #define clockPin 14 // NodeMCU pin D5 SHT1x sht1x (dataPin, clockPin); // מייצרת הגדרת חלל אובייקט SHT1x () {Serial.begin (38400); // פתח חיבור סדרתי כדי לדווח על ערכים לארח Serial.println ("הפעלה"); } לולאת חלל () {float temp_c; לצוף temp_f; לחות צפה; temp_c = sht1x.readTemperatureC (); // קרא ערכים מהחיישן temp_f = sht1x.readTemperatureF (); לחות = sht1x.readHumidity (); Serial.print ("טמפרטורה:"); // הדפס את הערכים ליציאה הטורית Serial.print (temp_c, DEC); Serial.print ("C /"); Serial.print (temp_f, DEC); Serial.print ("F. לחות:"); Serial.print (לחות); Serial.println ("%"); עיכוב (2000); }

העלה קוד זה ללוח שלך ופתח את הצג הטורי כדי לראות את זרימת נתוני החיישן.

אם הקוד שלך לא מהדר ומתלונן על כך ש- SHT1x.h לא נמצא, לא התקנת את ספריית החיישנים הנדרשת כראוי. בדוק בתיקיית ה- Arduino/libraries שלך שם אחד בשם SHT1x, ואם הוא נמצא במקום אחר, כמו תיקיית ההורדות שלך, העבר אותו לתיקיית ספריות Arduino שלך ושנה את שמו במידת הצורך.

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

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

אם קלט הצג הטורי שלך אינו נראה תקין, בדוק שוב את החיווט מול תרשים המעגל. האם נגד הנגיעה שלך 10K במקום בין סיכת הנתונים לבין 3.3V? האם הנתונים והשעון מחוברים לפינים הנכונים? האם החשמל והקרקע מחוברים כפי שהם צריכים להיות לאורך המעגל? אל תמשיך עד שהשרטוט הפשוט הזה עובד!

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

שלב 3: התקנת תוכנה

התקנת תוכנה
התקנת תוכנה

כדי לאסוף את הקוד לפרויקט זה עם ESP8266, יהיה עליך להתקין עוד כמה ספריות Arduino (זמינות באמצעות מנהל הספרייה):

  • Adafruit IO Arduino
  • Adafruit MQTT
  • ArduinoHttpClient

הורד את הקוד המצורף לשלב זה, ולאחר מכן פתח את הקובץ ופתח את Solar_Powered_Soil_Moisture_Monitor_Tutorial בתוכנת ה- Arduino שלך.

#לִכלוֹל

#include #include #include #include // ציין נתונים וחיבורי שעון והפעל אובייקט SHT1x #הגדר dataPin 12 // NodeMCU pin D6 #define clockPin 14 // NodeMCU pin D5 SHT1x sht1x (dataPin, clockPin); // הגדר את ההזנה AdafruitIO_Feed *לחות = io.feed ("לחות"); AdafruitIO_Feed *טמפרטורה = io.feed ("טמפרטורה"); const int sleepTime = 15; // 15 דקות

הגדרת חלל ()

{Serial.begin (115200); // פתח חיבור סדרתי כדי לדווח על ערכים לארח Serial.println ("הפעלה"); // התחבר ל- io.adafruit.com Serial.print ("התחברות ל- Adafruit IO"); io.connect (); // המתן לחיבור בזמן (io.status () <AIO_CONNECTED) {Serial.print ("."); עיכוב (500); } // אנו מחוברים Serial.println (); Serial.println (io.statusText ()); }

לולאת חלל ()

{io.run (); // io.run (); שומר את הלקוח מחובר ונדרש לכל הסקיצות. צף temp_c; לצוף temp_f; לחות צפה; temp_c = sht1x.readTemperatureC (); // קרא ערכים מהחיישן temp_f = sht1x.readTemperatureF (); לחות = sht1x.readHumidity (); Serial.print ("טמפרטורה:"); // הדפס את הערכים ליציאה הטורית Serial.print (temp_c, DEC); Serial.print ("C /"); Serial.print (temp_f, DEC); Serial.print ("F. לחות:"); Serial.print (לחות); Serial.println ("%"); לחות-> שמירה (לחות); טמפרטורה-> שמירה (temp_f); Serial.println ("ESP8266 ישן …"); ESP.deepSleep (sleepTime * 1000000 * 60); // שינה}

קוד זה הוא מיזוג של קוד החיישן מראשית הדרכה זו ודוגמה בסיסית משירות נתוני הענן Adafruit IO. התוכנית נכנסת למצב צריכת חשמל נמוכה וישנה רוב הזמן, אך מתעוררת כל 15 דקות לקריאת הטמפרטורה והלחות באדמה, ומדווחת על נתוניה ל- Adafruit IO. נווט לכרטיסייה config.h ומלא את שם המשתמש והמפתח שלך ב- Adafruit IO, כמו גם את שם הסיסמה והסיסמה של רשת ה- WiFi המקומית שלך, ולאחר מכן העלה את הקוד למיקרו -בקר ESP8266 שלך.

תמונה
תמונה

תצטרך לעשות קצת הכנה ב- io.adafruit.com. לאחר יצירת הזנות לטמפרטורה ולחות, תוכל ליצור לוח מחוונים לצג שלך הכולל גרף של ערכי החיישנים ונתוני הזנות הנכנסות. אם אתה צריך רענון בתחילת העבודה עם Adafruit IO, עיין בשיעור זה בשיעור האינטרנט של הדברים שלי.

שלב 4: הכינו לוח טעינה סולארי

הכינו לוח טעינה סולארי
הכינו לוח טעינה סולארי

הכינו את לוח הטעינה הסולארי על ידי הלחמה על הקבל שלו וכמה חוטים לרפידות פלט העומס. אני מותאם אישית את שלי לטעון בקצב מהיר יותר עם נגד הרחבה אופציונלי (2.2K מולחם על פני PROG) והופך אותו בטוח יותר לעזוב ללא השגחה על ידי החלפת הנגד לשטח הרכבה על ידי תרמיסטור 10K המחובר לסוללה עצמה. זה יגביל את הטעינה לטווח טמפרטורות בטוח. כיסיתי שינויים אלה בפירוט רב יותר בפרויקט מטען USB השמש שלי.

שלב 5: בנה מעגל מיקרו -בקר

בנה מעגל מיקרו -בקר
בנה מעגל מיקרו -בקר
תמונה
תמונה
תמונה
תמונה

הלחם את לוח הבקר ואת מתג ההפעלה ללוח פרמה-פרוטו.

תמונה
תמונה

חבר את יציאת הסוללה של המטען הסולארי לכניסת המתג שלך, שאמורה להיות מדורגת לפחות על אמפר אחד.

תמונה
תמונה

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

סיכות הטעינה של המטען הסולארי יספקו סוללת 3.7V כאשר אין כוח סולארי, אך יופעל ישירות מהפאנל הסולארי אם הוא מחובר לשמש. לכן המיקרו -בקר חייב להיות מסוגל לסבול מגוון מתח, עד 3.7V ועד 6V DC. עבור אלה הדורשים 5V, ניתן להשתמש ב- PowerBoost (500 או 1000, בהתאם לזרם הנדרש) כדי לווסת את מתח העומס ל -5V (כפי שמוצג בפרויקט מטען USB סולארי). להלן מספר לוחות נפוצים וטווחי מתח הכניסה שלהם:

  • NodeMCU ESP8266 (בשימוש כאן): 5V USB או 3.7V-10V Vin
  • Arduino Uno: 5V USB או 7-12V Vin
  • Adafruit Huzzah ESP8266 פריצה: 5V USB או 3.4-6V VBat

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

שלב 6: התקן בלוטות כבלים

תמונה
תמונה

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

תמונה
תמונה
תמונה
תמונה

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

תמונה
תמונה

שלב 7: מכלול מעגל מלא

מכלול מעגל מלא
מכלול מעגל מלא

הכנס את צד היציאה של כבל חשמל עמיד למים לתוך אחד והלחם אותו לכניסת DC של המטען הסולארי (אדום ל- + ושחור עד -).

תמונה
תמונה

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

תמונה
תמונה

הדביקו את בדיקת התרמיסטור לסוללה. זה יגביל את הטעינה לטווח טמפרטורות בטוח בזמן שהפרויקט יישאר ללא השגחה בחוץ.

תמונה
תמונה

טעינה כשהיא חמה מדי או קרה מדי עלולה לגרום נזק לסוללה או להתלקח באש. חשיפה לטמפרטורות קיצוניות עלולה לגרום לנזק ולקצר את חיי הסוללה, לכן הכנס אותה פנימה אם היא מתחת למקפיא או מעל 45 ℃/113F.

תמונה
תמונה

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

שלב 8: הכינו פאנל סולארי

הכינו פאנל סולארי
הכינו פאנל סולארי

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

שלב 9: בדוק את זה

תבחן את זה
תבחן את זה

חבר את הסוללה והפעל את המעגל על ידי לחיצה על מתג ההפעלה.

תמונה
תמונה

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

תמונה
תמונה

לאחר רישום הנתונים מהחיישן באינטרנט, קל להגדיר מתכון להתראות דוא ל או טקסט באתר שער ה- API אם זה אז זה. הגדרתי את שלי לשלוח לי מייל אם רמת הלחות בקרקע יורדת מתחת ל -50.

כדי לבדוק זאת מבלי לחכות שהצמח שלי יתייבש, הזנתי ידנית נקודת נתונים להזנת הלחות שלי ב- Adafruit IO שנפלה מתחת לסף. כמה רגעים לאחר מכן, המייל מגיע! אם רמות האדמה יורדות מתחת לרמה שציינתי, אקבל מייל בכל פעם שהעדכון מתעדכן עד שאני משקה את האדמה. לשם השפיות, עדכנתי את הקוד שלי כדי לדגום את האדמה לעתים רחוקות יותר מאשר כל 15 דקות.

שלב 10: השתמש בו בחוץ

השתמש בו בחוץ!
השתמש בו בחוץ!
השתמש בו בחוץ!
השתמש בו בחוץ!

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

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

אם אתה אוהב את הפרויקט הזה, אתה עשוי להתעניין בכמה מהאחרים שלי:

  • שיעור האינטרנט של הדברים בחינם
  • מונה מנויים של YouTube עם ESP8266
  • תצוגת מעקב אחר נתונים סטטיסטיים חברתיים עם ESP8266
  • תצוגת מזג אוויר WiFi עם ESP8266
  • אינטרנט ולנטיין

כדי להתעדכן במה שאני עובד, עקוב אחריי ב- YouTube, Instagram, Twitter, Pinterest ו- Snapchat.

מוּמלָץ: