כיצד לנטר את רמות ה- pH והרטיבות בקרקע
באדיבות ‎DigiKey's North American Editors
2018-03-29
שמירה על רטיבות ו- pH תקינים של הקרקע היא דרישה בסיסית עבור בריאות הצמחים, בין אם בחקלאות בקנה מידה גדול או בגנים ביתיים פשוטים. כדי למדוד את תכונות הקרקע המפתחים צריכים לתכנן שרשרות אותות אנלוגיים מדויקים עם יחס עלות-תועלת מיטבי המסוגלות להמיר את הנתונים הגולמיים למידע שימושי הנדרש עבור יישומים ספציפיים למדידת הקרקע.
גישה אחת להשגת מטרות אלו של דיוק היא להשתמש בתכן ייחוס עם תוכנה גמישה בהתאם. דוגמה טובה לפתרון כזה הוא לוח EVAL-CN0398-ARDZ וחבילת התוכנה מבית Analog Devices.
מאמר זה דן ביישומים ובדרישות הקשורות לניטור רטיבות ו- pH של הקרקע לפני הצגת לוח CN0398 ותכן הייחוס מבית Analog Devices. המאמר מסביר כיצד הרכיבים העיקריים המשמשים בתכן CN0398 עונים לדרישות המפתח של התכן ובוחן את תפקידם ביישום הכולל. המאמר מסיים בהצגת כיצד מפתחים יכולים להשתמש בלוח CN0398 ובחבילת התוכנה הקשורה כדי להעריך במהירות ולהתאים-במיוחד את יישומי ניטור הקרקע.
הצורך במדידת קרקע מדויקת
הצורך לשמור על תכולת מים ורמת pH תקינים בקרקע הוא דרישה בסיסית עבור מגדלי צמחים בכל סדר גודל של ייצור. מחסור במים בקרקע מיתרגם ישירות לפוטוסינתזה מופחתת עבור כל צמח, כמו גם לפגיעה בתהליכים ביולוגיים אחרים כגון קיבוע החנקן בגידולי קטניות חשובים כגון פולי סויה.
בדומה, שינויים בקרקע כתוצאה מהפרייה או מתופעות טבעיות יכולים להשפיע דרמטית על ה- pH של הקרקע, מה שמוביל לירידה בחיידקים ובחומרי המזון החיוניים לקרקע. בגידולים מסוימים, pH לא תקין של הקרקע בשלבי הצמיחה המוקדמים מוביל לשיעורי צמיחה ויבול סופי נמוכים יותר.
ללא מערכות ניטור קרקע מתאימות, הלחות וה- pH של הקרקע יכולים להגיע לערכים לא-רצויים, וכתוצאה מכך להידרדרות אפשרית של בריאות הצמחים. ביחד, לוח EVAL-CN0398-ARDZ וחבילת התוכנה מבית Analog Devices מספקים תכן ניטור קרקע שלם, אשר מפתחים יכולים להשתמש בו ישירות או עם שינויים כדי לעמוד בדרישות הייחודיות שלהם.
לוח CN0398 ותכן הייחוס מבית Analog Device נוצרו במיוחד עבור שימוש בחיישני רטיבות, pH וטמפרטורה חיצוניים ביישומי מדידת קרקע. המעגלים על-הלוח כוללים תכן רב-חיישנים שלם הדרוש ליצירת נתוני יציאה של הרטיבות וה- pH הנגישים דרך הממשק הטורי שלו. אפילו עם הפונקציונליות הנרחבת שלו, התכן צורך מקסימום של 1.95 מיליאמפר (mA) ומעניק מאפייני חיסכון הספק, כולל שימוש באפנון רוחב-פולס (PWM) להפעלת חיישנים חיצוניים.
המפתחים יכולים להשתמש ב- CN0398 כדי להתניע תכני חומרה מותאמים-במיוחד או להשתמש בלוח עם לוח-הבסיס תואם-Arduino EVAL-ADICUP360 מבית Analog Devices. מתוכנן כמו לוח Shield Arduino, ה- CN0398 נתקע ישירות לתוך לוח-הבסיס ומספק פלטפורמה עבור פיתוח יישומים מהיר.
כדי להאיץ את פיתוח התוכנה, המהנדסים יכולים לנצל את חבילת תוכנת מקור-פתוח ADuCM360_demo_cn0398 מבית Analog Device המיועדת לשימוש עם לוח חיישן CN0398, לוח-הבסיס ADICUP360 ו- CrossCore Embedded Studio מבית Analog Device. ביחד עם מנהלי-התקנים בסיסיים ותוכנות-שירות של תמיכת מערכת, חבילת התוכנה כוללת מקור וקובצי Header Files ++C, כולל יישום תוכנת מדידת קרקע שלם.
השילוב של ערכת הלוח וחבילת התוכנה מבית Analog Devices מעניק למפתחים תכן חומרה ויישום תוכנה שלמים ומוכנים לשימוש מידי ביישומי מדידת קרקע. חשוב באותה מידה, תכן הייחוס בחומרה CN0398 ותוכנת הדוגמה מספקים את התוכנית הבסיסית עבור פיתוח מהיר של מערכות מדידת קרקע מותאמות-במיוחד המסוגלות לענות על הדרישות הייחודיות של יישומים אלו.
עיבוד אותות חיישנים
תכן חומרת CN0398 כולל שלושה תת-מעגלים נפרדים עבור חיישני רטיבות, PH וטמפרטורה חיצוניים. כל תת-מעגל מספק את כל המעגלים הדרושים כדי להתממשק עם כל סוג של חיישן. כתוצאה מכך, המפתחים צריכים רק לחבר כל חיישן למחבר המתאים על לוח CN0398 ולדאוג להספקת-הכוח כדי להתחיל את פעולות חיישן. פונקציונליות זו בנויה סביב ה- AD7124-8 מבית Analog Devices, המשלב קצה-קדמי של מיזוג לאכשור אותות נרחב עם ממיר אנלוגי-לדיגיטלי (ADC) סיגמא-דלתא (Σ-Δ) 24-bit (איור 1).
איור 1: באמצעות שרשרת האותות המשולבת וממיר ADC, ה- AD7124-8 מבית Analog Devices מפשט את התכנון של מערכות רבות-חיישנים הדרושות עבור מדידת הקרקע. (מקור התמונה: Analog Devices)
מרבב האותות של ה- AD7124-8 יכול לנתב שמונה כניסות הפרשיות או 15 כניסות קצה-יחיד (Single-Ended) באמצעות שרשרת האותות המשולבת הניתנת-לתכנות שלו לממיר Σ-Δ ADC והמסנן הדיגיטלי על-השבב עבור המרה ואכשור. המפתחים משתמשים בממשק הטורי של ה- AD7124-8 כדי לחבר את ההתקן למיקרו-בקר המארח עבור בקרת ההתקן והמרת הנתונים.
הודות לפונקציונליות הנרחבת שלו, המפתחים יכולים לענות על מגוון רחב של דרישות תכנון עם כמה רכיבים נוספים מעבר למעגלי חיישנים ומקור מתח יציב. עבור תכן הייחוס CN0398, חברת Analog Devices משתמשת בייחוס המתח ADR3433 שלה כהספקה אנלוגית (DDAV) וכייחוס מתח (REFIN1) (איור 2). כמתואר להלן, התכנון עבור כל אחד משלושת מעגלי החיישנים דורש רק כמה רכיבים נוספים.
איור 2: תוך שימוש ב- AD7124-8 מבית Analog Devices, המפתחים יכולים לממש תכני חיישנים עם מעט רכיבים נוספים מעבר למעגלי כניסה של חיישנים ספציפיים וייחוס מתח מדויק כגון ADR3433 מבית Analog Devices. (מקור התמונה: Analog Devices)
מדידת רטיבות
מערכות לחות בקרקע טיפוסיות קובעות את תכולת המים על ידי ניצול ההפרש בין הקבוע הדיאלקטרי של המים (80) לזה של האוויר (1). עבור מערכות אלו, המפתחים דוחפים חיישן תלת-חוטי פשוט כגון חיישן HPP809A033 מבית TE Connectivity Measurement Specialties עם מתח עירור כדי ליצור מתח יציאה פרופורציונלי לתכולת המים בקרקע.
בתכן CN0398, הקצה-הקדמי לרטיבות הקרקע משתמש במייצב הלינארי עם מפל-מתח נמוך (LDO) ADP7118-2.5 מבית Analog Devices כדי לספק מתח עירור (sensorV) יציב עבור החיישן (איור 3). כהספקת-כוח למייצב LDO, המפתחים יכולים למשוך הספק מלוח-הבסיס ADICUP360 או מתכנים מותאמים-במיוחד שלהם.
איור 3: תכן CN0398 מבית Analog Devices משתמש במייצב הלינארי עם מפל-מתח נמוך (LDO) ADP7118-2.5 מבית Analog Devices כדי לספק מקור מתח (sensorV) יציב עבור חיישן רטיבות קיבולי. (מקור התמונה: Analog Devices)
למרות שה- ADP7118 יכול לספק רמת מתח חיישן ברציפות, שיקולי צריכת ההספק ודרישות ספציפיות של כמה חיישני רטיבות מכתיבים את השימוש במקור פולסים עבור דחיפת החיישן. כדי לענות על דרישות אלו, המפתחים יכולים לתכנן את הספקת-הכוח לחיישן עם פולסי מתח על ידי דחיפת נקודת-החיבור של אפשור (EN) ה- LDO עם יציאת PWM של המיקרו-בקר.
תוך שימוש במעגל אכשור האותות וממיר ADC המשולבים, ה- AD7124-8 יכול לדגום ולהמיר באמינות את מתח היציאה של חיישן הרטיבות. עם זאת, עבור יישומי מדידת קרקע היחס בין נתוני החיישן המומרים ורטיבות הקרקע עשוי להיות מורכב.
כשמעריכים את רטיבות הקרקע, מומחי בריאות הקרקע משווים בדרך כלל את רמות רטיבות הקרקע במונחים של תכולת מים נפחית (VWC), שהיא היחס בין נפח המים לנפח הקרקע הכולל. יצרני חיישני רטיבות מספקים בדרך כלל משוואות עבור המרת היציאה של החיישנים שלהם ל- VWC. עדיין, תנאי הקרקע או אופי היישום עצמו יכולים לדרוש את השימוש במשוואת המרה המתאימה יותר למצב הייחודי שלהם עצמם.
חברת Analog Devices מדגימה את השימוש בכל אחת מהגישות בחבילת התוכנה לדוגמה שלה. על ידי אפשור USE_MANUFACTURER_MOISTURE_EQ
להגדרת קובץ Header File CN0398.h
, המפתחים יכולים לבחור להשתמש למקוטעין (Piece-Wise) בנוסחאות ההמרה המומלצות על ידי היצרן או להשתמש במשוואת ההמרה הסטנדרטית המסופקת עם התוכנה. כאן, הרוטינה לדוגמה ()read_moisture
מחוללת יציאת רטיבות בתלות בתחום יציאת המתח אם ה- USE_MANUFACTURER_MOISTURE_EQ
מוגדר (רשימת קוד 1). עם ההגדרה מופיעה כ- Commented Out בקובץ Header File CN0398.h
, הרוטינה יכולה להמיר את המתח לרטיבות תוך שימוש בביטוי המתמטי המסופק.
()float CN0398::read_moisture
{
; float moisture = 0
ifdef MOISTURE_SENSOR_PRESENT#
;( DioSet(ADP7118_PORT, ADP7118_PIN
;( set_digital_output(P3, true
;( timer.sleep(SENSOR_SETTLING_TIME
;( int32_t data = adcValue[MOISTURE_CHANNEL]= read_channel(MOISTURE_CHANNEL
;( DioClr(ADP7118_PORT, ADP7118_PIN
;( float volt = voltage[MOISTURE_CHANNEL - 1] = data_to_voltage_bipolar(data, 1, 3.3
ifdef USE_MANUFACTURER_MOISTURE_EQ#
} (1.1=> volt)if
` moisture = 10 * volt - 1
{ ( } else if(volt > 1.1 && volt <= 1.3)
; moisture = 25 * volt - 17.5
} ( } else if(volt > 1.3 && volt <= 1.82
; moisture = 48.08 * volt - 47.5
} ( } else if(volt > 1.82
; moisture = 26.32 * volt - 7.89
{
else#
moisture = -1.18467 + 21.5371 * volt - 110.996 * (pow(volt, 2)) + 397.025 * (pow(volt, 3)) - 666.986 * (pow(volt, 4)) + 569.236 * (pow(volt, 5)) - 246.005 * (pow(volt, 6)) + 49.4867 * (pow(volt, 7)) - 3.37077 * (pow(volt, 8));
endif#
; if(moisture > 100) moisture = 100
; if(moisture < 0 ) moisture = 0
endif#
; set_digital_output(P3, false)
; return moisture
}
רשימת קוד 1: חבילת התוכנה CN0398 מבית Analog Devices מספקת דוגמת רוטינת רטיבות המציגה איך המפתחים יכולים להשתמש במשוואות בנוסחאות ההמרה של היצרן להמרת מתח חיישן הרטיבות לנתוני רטיבות שימושיים. (מקור הקוד: Analog Devices)
מדידת pH
חיישן pH טיפוסי כמו זה שבערכת SEN-10972 מבית SparkFun Electronics מציג מעגל אקוויוולנטי המאופיין על ידי מקור מתח עם עכבה גבוהה. אפילו כשמשתמשים בממיר ADC עם קצה-קדמי לאכשור אותות משולב, מפתחים מנוסים יוסיפו בדרך כלל חוצץ בין יציאת החיישן לבין כניסת ממיר ה- ADC במצבים אלו.
לפיכך, מעגל חיישן ה- pH שבתכן CN0398 כולל מגבר שרת ADA4661-2 מבית Analog Devices (איור 4). מתאים במיוחד ליישומי הספק נמוך כגון מעגלי חיישנים, ה- ADA4661-2 הוא מגבר שרת מדויק עם פעולה מהספקה-יחידה, צריכת הספק נמוכה ומתח היסט (Offset) נמוך על פני מלוא תחום מתחי הפעולה.
איור 4: בתכן CN0398 מבית Analog Devices, מגבר שרת ADA4661-2 מבית Analog Devices מספק חוצץ בין חיישן pH טיפוסי עם עכבה גבוהה לבין הכניסה האנלוגית של ה- AD7124-8 בית Analog Devices. (מקור התמונה: Analog Devices)
למרות שהתכן מבוסס על מתח הספקה יחידה, חיישני pH מייצרים בדרך כלל יציאת מתח ביפולרית. במקרה זה, עם זאת, ה- AD7124-8 מספק דרך פשוטה לתת ממתח לחיישן לרמה מתאימה מעל ההארקה. ה- AD7124-8 משלב מחולל מתח ממתח פנימי המגדיר את מתח אופן-משותף של ערוץ ל- 2/DDAV. כמו במקרה זה, המתכננים יכולים להשתמש בפין יציאה של ה- AD7124-8 כדי לספק מתח ממתח זה לצד הנמוך של חיישן pH (BIASV באיור 4). המפתחים יכולים לשחזר בקלות את הכניסה עם הממתח לתוצאה דיגיטלית ביפולרית בתוכנה.
חבילת תוכנת הקוד הפתוח ADuCM360_demo_cn0398 כוללת רוטינת דוגמה (read_ph)
המתארת המרת מתח יציאת חיישן ה- pH לערכי pH. כמו ברוטינת רטיבות הקרקע, רוטינת הדוגמה לחישוב ה- pH מציגה את השימוש בשתי גישות שונות ליצירת ערכי ה- pH (רשימת קוד 2).
(float CN0398::read_ph(float temperature
{
; float ph = 0
ifdef PH_SENSOR_PRESENT#
; int32_t data
;( set_digital_output(P2, true
;( adcValue[PH_CHANNEL] = data = read_channel(PH_CHANNEL
;(float volt = voltage[PH_CHANNEL - 1] = data_to_voltage_bipolar(data, 1, 3.3
( if(use_nernst
}
;(ph = PH_ISO -((volt - ZERO_POINT_TOLERANCE) / ((2.303 * AVOGADRO * (temperature + KELVIN_OFFSET)) / FARADAY_CONSTANT)
{
else
}
;([ float m = (calibration_ph[1][0] - calibration_ph[0][0]) / (calibration_ph[1][1] - calibration_ph[0][1
;[ ph = m * (volt - calibration_ph[1][1] + offset_voltage) + calibration_ph[1][0
{
;( set_digital_output(P2, false
endif#
; return ph
}
רשימת קוד 2: רוטינת הדוגמה מבית Analog Device עבור קריאת ערכי חיישן pH מתארת שימוש במשוואת Nernst סטנדרטית או בערכי כיול מובנים להמרת יציאת מתח חיישן ה- pH לערכי pH. (מקור הקוד: Analog Devices)
על ידי הגדרת משתנה use_nernst
ל- TRUE בחבילת הדוגמה, המפתחים יכולים ליצור את ה- pH באמצעות משוואת Nernst סטנדרטית. על ידי הגדרת המשתנה ל- FALSE, הוא גורם לרוטינה להשתמש בערכים שנוצרו בתהליך כיול עם שתי נקודות, המבוצע בדרך כלל תוך שימוש בפתרונות ייחוס חוצץ pH כגון אלו שבערכת pH SEN-10972 מבית SparkFun. רוטינות תוכנת הדוגמה מגיעות עם מערך של ערכי ברירת המחדל לכיול המשתמשים בטבלאות Lookup NIST עבור פתרונות חוצץ pH שונים וערכי pH מקוזזי טמפרטורה בתחום של 0°C עד 95°C. המפתחים יכולים להחליף את ערכי ברירת המחדל בנתוני הכיול המותאמים-במיוחד שלהם עצמם, או לשנות בקלות את הקוד כדי לתמוך הן בערכי ברירת המחדל והן בערכים המותאמים-במיוחד.
מדידת טמפרטורה
כמתואר לעיל ברשימת קוד 2, ה- pH תלוי בטמפרטורה, או במפורש כמו במשוואת Nernst, או במשתמע בערכי כיול מותאמים-במיוחד. בנוסף, הטמפרטורה משפיעה על רגישות החיישן ועל שרשרת האותות. למרות שחיישן הטמפרטורה המשולב של ה- AD7124-8 (ראו שוב איור 1) יכול לטפל בכמה מהיבטים אלו, מדידת קרקע אמינה תלויה בקריאות טמפרטורה מדויקות. לפיכך, ערוץ חיישן הטמפרטורה של ה- CN0398 מתוכנן להבטיח קריאות מדויקות מגלאי טמפרטורה התנגדותי (RTD) תלת-חוטי חיצוני PT100 כגון ה- 3290 מבית Adafruit Industries.
כמו עם כל חיישן התנגדותי, ה- RTDs דורשים זרם עירור כדי לאפשר מדידה של שינויי מתח תלויי-טמפרטורה. בדרך כלל, המפתחים המשתמשים בחיישנים התנגדותיים צריכים להוסיף לתכני החיישן שלהם דוחפים, מייצבים וחיישני זרם חיצוניים כדי לשמור על זרם עירור ברמות מדויקות. למרות זאת, עם ה- AD7124-8 המפתחים צריכים רק להוסיף את הרשתות הפסיביות המתאימות הדרושות לתמיכה בתצורה תלת-חוטית (איור 5).
איור 5: כדי לדחוף גלאי טמפרטורה התנגדותי (RTD) תלת-חוטי, תכן CN0398 מבית Analog Devices משתמש במקורות זרם קבוע ניתנים-לתכנות שב- AD7124-8 מבית Analog Devices. (מקור התמונה: Analog Devices)
משולבים ב- AD7124-8, זוג מחוללי זרם קבוע מספקים עירור ברמות קבועות שונות מ- 50 עד 1,000 מיקרו-אמפר (µA), כולל רמת µA 500 המשמשת בתכן CN0398. המפתחים מגדירים את רמת הזרם ואת פין היציאה על ידי תכנות הביטים IOUTx ו- IOUTx_CH באוגר התצורה IO_CONTROL שבהתקן, בהתאמה. כחלק מרוטינת האתחול שלה, חבילת התוכנה CN0398 מגדירה את ערוצי ADC AIN11 ו- AIN12 כפיני יציאה עבור שני זרמי עירור של μA 500, IOUT1 ו- IOUT2.
למרות שמחוללי הזרם מדויקים מספיק עבור יישומים רבים, המפתחים יכולים בקלות לבטל את ההשפעה של שינויי זרם באמצעות טכניקת מדידה רציומטרית. מעגל חיישן חומרת הטמפרטורה של ה- CN0398 המוצג באיור 5 משתמש בגישה זו. כאן, אותו זרם IOUT1 עובר דרך ה- RTD ודרך נגד ייחוס מדויק REFR, כשהתוצאה היא מדידה רציומטרית. במקביל, ה- IOUT2 מייצר ירידת מתח על פני התנגדות מוליך RTD SENSE של ה- RTD המבטלת את ירידת המתח על פני התנגדות המוליך +RTD.
כמו עם חיישני הרטיבות וה- pH, המרת ערכי ההתנגדות לטמפרטורה דורשת פונקציית העברה מתאימה. עבור RTD טיפוסי, ניתן לבטא את היחס בין הטמפרטורה לבין ההתנגדות באופן מתמטי במהימנות. למרות זאת, צריך להשתמש בשני ביטויים שונים עבור טמפרטורות מעל ומתחת ל- 0°C. חבילת תוכנת מקור-פתוח ADuCM360_demo_cn0398 תומכת בשתי השיטות, כמו גם בהמרה לינארית פשוטה.
()float CN0398::read_rtd
{
; float temperature = 0
; int32_t data
;( adcValue[RTD_CHANNEL] = data = read_channel(RTD_CHANNEL
;( float resistance = ((static_cast<float>(data) - _2_23) * RREF) / (TEMP_GAIN * _2_23
ifdef USE_LINEAR_TEMP_EQ#
;( temperature = PT100_RESISTANCE_TO_TEMP(resistance
else#
((define A (3.9083*pow(10,-3#
((define B (-5.775*pow(10,-7#
( if(resistance < R0
temperature = -242.02 + 2.228 * resistance + (2.5859 * pow(10, -3)) * pow(resistance, 2) - (48260.0 * pow(10, -6)) * pow(resistance, 3) - (2.8183 * pow(10, -3)) * pow(resistance, 4) + (1.5243 * pow(10, -10)) * pow(resistance, 5);
else
;(( temperature = ((-A + sqrt(double(pow(A, 2) - 4 * B * (1 - resistance / R0))) ) / (2 * B
endif#
; return temperature
}
רשימת קוד 3: עבור המרת ערכי התנגדות לטמפרטורה, רוטינת דוגמה מבית Analog Devices מתארת את תבנית התכנון הבסיסית עבור בחירת השיאה המתאימה על בסיס הגדרות סטטיות (USE_LINEAR_TEMP_EQ)
או ערכים דינמיים (resistance < R0)
. (מקור הקוד: Analog Devices)
כמתואר ברשימת קוד 3, רוטינת הדוגמה ()read_rtd מאפשרת למפתחים לבחור מאקרו של המרה לינארית פשוטה, PT100_RESISTANCE_TO_TEMP
, המוגדר בתוך מודול CN0398.cpp
. לחלופין, המפתחים יכולים להשתמש בביטויים המתמטיים המורכבים יותר המסופקים ברוטינת הדוגמה ()read_rtd
. במקרה זה, נקודת ההיפוך 0°C עבור בחירת הביטוי המתאים משתמעת ב- R0
, שהיא התנגדות ה- RTD ב- 0°C.
סיכום
כדי לבנות מערכות למדידת הקרקע, המהנדסים עומדים בפני מספר אתגרים הן בחומרה והן בתוכנה. תכני החומרה חייבים לענות על דרישות ממשקי החיישנים, בעוד שהתוכנה צריכה להתאים לגישות שונות להמרת נתונים גולמיים למידע שימושי.
לוח CN0398 וחבילת תוכנת מקור-פתוח ADuCM360_demo_cn0398 מבית Analog Devices עונים לשני ההיבטים של תכנון מערכת מדידת קרקע. משמשים בשילוב עם לוח-הבסיס ADICUP360 תואם-Arduino מבית Analog Device, לוח CN0398 והתוכנה מספקים פתרון מדידת קרקע שלם.
המפתחים יכולים להשתמש בפתרון מוגמר (Turnkey) זה כדי ליצור יישומי מדידת קרקע, או להרחיב את תכן הייחוס ואת תוכנת הדוגמה הנלווים כדי לבנות פתרונות מותאמים-במיוחד.

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