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

אזעקת מים IoT: 5 שלבים (עם תמונות)
אזעקת מים IoT: 5 שלבים (עם תמונות)

וִידֵאוֹ: אזעקת מים IoT: 5 שלבים (עם תמונות)

וִידֵאוֹ: אזעקת מים IoT: 5 שלבים (עם תמונות)
וִידֵאוֹ: כשאתה בשירותים ויש אזעקה : שי יום טוב 2024, יולי
Anonim
אזעקת מים IoT
אזעקת מים IoT

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

שלב 1: עקרון הפעולה

עקרון הפעולה
עקרון הפעולה

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

חיישן המים הוא פשוט שני חוטים הממוקמים במרחק של כ- 1 מ"מ זה מזה. אחד החוטים מחובר ל -3.3 וולט, והשני מחובר לסיכת חישה על המיקרו -בקר, המחובר גם הוא לקרקע באמצעות נגד של 0.5 MOhm. בדרך כלל ההתנגדות בין חוטי החיישן גבוהה מאוד (הרבה יותר מ- 10 MOhm), ולכן סיכת החישה נמשכת עד 0 V. עם זאת, כאשר יש מים בין החוטים ההתנגדות יורדת עד פחות מ- 1 MOhm, וסיכת החישה רואה מתח כלשהו (במקרה שלי בערך 1.5 וולט). כאשר ATtiny85 מזהה את המתח הזה על סיכת החישה, הוא מפעיל MOSFET להפעלת זמזם ושולח את אות ההשכמה למודול ESP8266 שאחראי לשלוח התראות (הודעות דוא"ל והודעות דחיפה). לאחר זמזום של דקה, האזעקה מנוטרלת, וניתן לאפס אותה רק באמצעות רכיבה על אופניים.

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

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

שלב 2: עיצוב והרכבה

עיצוב והרכבה
עיצוב והרכבה
עיצוב והרכבה
עיצוב והרכבה
עיצוב והרכבה
עיצוב והרכבה

תכננתי את המעגל כך שהוא ייבנה על גבי לוח פרוטונלי דו-צדדי בגודל 4x6 ס מ, שמשתמש בעיקר בחלקים 0805 SMD. הסכימות המוצגות מבוססות על מבנה זה, אך ניתן להתאים אותו בקלות לרכיבים דרך חור (טיפ: למזער שטח, הלחמים נגדים דרך חור אנכית).

החלקים הבאים נדרשים:

- נגדים: 330 Ω x 1; 470 Ω x 1; 680 Ω x 1; 1 kΩ x 1; 10 kΩ x 3; 470 kΩ x 3; - קבל קרמיקה בגודל 10 µF- MOSFET N-channel אחד ברמת לוגיקה (למשל RFP30N06LE או AO3400)- נורית אחת אדומה ואחת צהובה (או צבעים אחרים אם תרצה).- מחברי מסוף בורג דו חוטי x 3 (הם אינם הכרחי בהחלט, אך הם מקלים על חיבור וניתוק הפריפריה במהלך הבדיקה)- זמזם פיצו חזק שעושה טוב ל -3.3 V- מיקרו-בקר ATtiny85 (גרסת PDIP)- שקע PDIP בעל 8 פינים עבור המיקרו-בקר- מודול ESP-01 (ניתן להחליף אותו במודול אחר המבוסס על ESP8266, אך במקרה זה יהיו הרבה שינויים בפריסה)-ממיר דחיפה של 3.3 V DC-DC המסוגל לספק 200 mA (500 mA burst) זרמים ב -2.2 V קֶלֶט. (אני ממליץ על https://www.canton-electronics.com/power-converter… בגלל זרם השקט האולטרה-נמוך שלו)-כותרת נקבה אחת עם 3 פינים- שתי כותרות נקבות בעלות 4 פינים או כותרת אחת 2x4- 22 חוטים מוצקים של AWG מוצקים לחיישן המים- חוט תקוע 22 AWG (או סוג אחר של חוט חשוף דק ליצירת עקבות)

אני ממליץ על ערכי הנגד המפורטים לעיל, אך תוכל להחליף את רובם בערכים דומים. בהתאם לסוג נוריות הלדים בהן ברצונך להשתמש, ייתכן שיהיה עליך להתאים את ערכי הנגד המגביל את הזרם כדי לקבל את הבהירות הרצויה. MOSFET יכול להיות דרך חור או SMT (SOT23). רק הכיוון של הנגד 330 אוהם מושפע מסוג ה- MOSFET. נתיך PTC (למשל מדורג עבור 1 A) מומלץ אם אתה מתכנן להשתמש במעגל זה עם סוללות NiMH. עם זאת, זה לא נחוץ עם סוללות אלקליין. טיפ: את החלקים הנדרשים לאזעקה זו ניתן לרכוש בזול מאיביי או מ- aliexpress.

בנוסף תזדקק ללוח לחם, מספר נגדי 10k דרך החור, מספר חוטי מגשר זכר ונקבה ("דופונט") ומתאם USB-UART על מנת לתכנת את מודול ESP-01.

ניתן לייצר את חיישן המים במגוון דרכים, אך הפשוט ביותר הוא שני חוטי 22 AWG עם קצוות חשופים (אורך 1 ס"מ) המרוחקים במרחק של כ- 1 מ"מ זה מזה. המטרה היא שתהיה התנגדות של פחות מ -5 MΩ בין מגעי החיישן כאשר יש מים.

המעגל מיועד לחסכון מרבי בסוללה. הוא שואב רק 40-60 µA במשטר הניטור (כאשר נורית החשמל הוסרה במודול ESP-01). לאחר הפעלת האזעקה, המעגל ימשוך 300-500 mA (בקלט של 2.4 וולט) למשך שנייה או פחות, ולאחר מכן הזרם יירד מתחת ל -180 mA. ברגע שמודול ה- ESP יסיים לשלוח הודעות, הצריכה הנוכחית תרד אל מתחת ל- 70 mA עד שהזמזם יכבה. אז האזעקה תפרק את עצמה מנשקה, והצריכה הנוכחית תהיה מתחת ל 30 µA. כך קבוצה של סוללות AA תוכל להפעיל את המעגל במשך חודשים רבים (סביר שיותר משנה). אם אתה משתמש בממיר דחיפה אחר, למשל עם זרם שקט של 500 µA, יהיה צורך להחליף את הסוללות בתדירות גבוהה יותר.

טיפים להרכבה:

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

- נוריות SMT בצד העליון וגשר תיל מבודד

-MOSFET בצד העליון (הערה: אם יש לך MOSFET SOT-23, הנח אותו באלכסון כמו בתמונה. אם אתה משתמש ב- MOSFET דרך החור, הנח אותו בצורה אופקית עם סיכת השער במיקום I3.)

- הצד העליון דרך חלקי חורים (שימו לב: הזמזם אינו מולחם ואפילו לא צריך להיות מותקן על הלוח המודרני)

- חלקים ועקבות צד אחורי (למשל גדילים בודדים מחוט AWG22)

שלב 3: קושחה

קוד C עבור ATtiny85

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

-הגדרת Arduino Uno כספקית אינטרנט (תכנות בתוך המערכת)

- חיבור ATtiny85 עם Arduino Uno.

כדי לאסוף ולהעלות את הקושחה, תזדקק ל- CrossPack (ל- Mac OS) או ל- AVR (עבור Windows). הפקודה הבאה צריכה להתבצע כדי לאסוף את הקוד:

avr -gcc -Os -mmcu = attiny85 -c main.c; avr -gcc -mmcu = attiny85 -o main.elf main.o; avr -objcopy -j.text -j.data -O ihex main.elf main.hex

כדי להעלות את הקושחה, הפעל את הפעולות הבאות:

avrdude -c arduino -p attiny85 -P /dev/cu.usbmodem1411 -b 19200 -e -U flash: w: main.hex

במקום "/dev/cu.usbmodem1411" סביר להניח שתצטרך להכניס את היציאה הסדרתית שאליה מחובר ה- Arduino שלך (תוכל למצוא אותה ב- Arduino IDE: Port Port).

הקוד מכיל מספר פונקציות. deep_sleep () גורם לבקר המיקרו להיכנס למצב הספק נמוך מאוד למשך כ -8 שניות. read_volt () משמש למדידת מתח הסוללה וחיישן. מתח הסוללה נמדד מול הפניה למתח הפנימי (2.56 V פלוס או מינוס כמה אחוזים) ואילו מתח החיישן נמדד מול Vcc = 3.3 V. הקריאות מושוות מול BATT_THRESHOLD ו- SENSOR_THRESHOLD המוגדרות כ- 932 ו -102 בהתאמה, המתאימות ל- ~ 2.3 ו- 0.3 V. ייתכן שתוכל להפחית את ערך סף הסוללה לשיפור חיי הסוללה, אך לא מומלץ (עיין בשיקולי סוללה למידע מפורט).

activ_alarm () מודיע למודול ה- ESP על זיהוי מים ומשמיע זמזם. low_batt_notification () מודיע למודול ה- ESP שהסוללה חלשה וגם משמיעה את הבאזר. אם אינך רוצה להתעורר באמצע הלילה כדי להחליף את הסוללה, הסר את "| 1 <" ב- low_batt_notification ().

מערכון ארדואינו ל- ESP-01

בחרתי לתכנת את מודול ה- ESP באמצעות Arduino HAL (עקוב אחר הקישור להוראות התקנה). בנוסף השתמשתי בשתי הספריות הבאות:

ESP8266 שלח דוא ל מאת Górász Péter

ESP8266 Pushover של צוות ארדואינו האנובר

הספרייה הראשונה מתחברת לשרת SMTP ושולחת התראה לכתובת הדוא"ל שלך. פשוט צור חשבון gmail עבור ה- ESP שלך והוסף את האישורים לקוד. הספרייה השנייה שולחת הודעות דחיפה באמצעות שירות Pushover (ההודעות הן בחינם, אך עליך לשלם פעם אחת כדי להתקין את היישום בטלפון/טאבלט). הורד את שתי הספריות. הכנס את התוכן של ספריית שלח דוא"ל לתיקיית הסקיצות שלך (arduino ייצור אותה כאשר אתה פותח את הסקיצה של arduino בפעם הראשונה). התקן את ספריית Pushover באמצעות ה- IDE (Sketch -> Include Library -> Add. ZIP).

כדי לתכנת את מודול ESP-01 אתה יכול לעקוב אחר ההדרכה הבאה: https://www.allaboutcircuits.com/projects/breadbo… אין צורך להתעסק בהחלטת שורת סיכות אחת כפי שמוצג במדריך-פשוט השתמש בדופונט נקבה-זכר חוטים לחיבור סיכות המודול ללוח הלחם. אל תשכח כי ממיר ההגברה ומתאם ה- USB-UART חייבים לחלוק קרקע (הערה: יתכן שתוכל להשתמש בפלט ה -3.3 וולט של מתאם ה- USB-UART במקום בממיר ההגברה, אך סביר להניח שלא להיות מסוגל להפיק מספיק זרם).

שלב 4: שיקולי סוללה

קוד הקושחה שסופק מוגדר מראש לשלוח אזהרת סוללה חלשה ולסגור ב ~ 2.3 V. סף זה מבוסס על ההנחה כי שתי סוללות NiMH משמשות בסדרות. לא מומלץ לפרוק כל תא NiMH בודד מתחת ל- 1 V. בהנחה שלשני התאים יש קיבולת שווה ומאפייני פריקה, שניהם ינותקו ב ~ 1.15 V - היטב בטווח הבטוח. עם זאת, תאי NiMH שהיו בשימוש במשך מחזורי פריקה רבים נוטים להיות שונים ביכולת שלהם. ניתן לסבול עד 30% הבדל בקיבולת מכיוון שהוא עדיין יוביל לנקודת החיתוך של תא המתח הנמוך ביותר בסביבות 1 וולט.

אמנם ניתן להפחית את סף הסוללה הנמוך בקושחה, אך פעולה זו תסיר את מרווח הבטיחות ועלולה לגרום לפריקה יתר של הסוללה ולנזק בעוד שניתן לצפות רק להארכה שולית של חיי הסוללה (תא NiMH הוא> 85% משוחררים ב -1.15 V).

גורם נוסף שצריך לקחת בחשבון הוא יכולתו של ממיר הדחיפה לספק לפחות 3.0 וולט (2.5 וולט על פי עדויות אנקדוטיות) בזרם שיא של 300-500 mA על סוללות חלשות. ההתנגדות הפנימית הנמוכה של סוללות NiMH גורמת לירידה זניחה של 0.1 V בלבד בזרמי שיא, כך שצמד תאי NiMH המופעלים ל -2.3 V (מעגל פתוח) יוכלו לספק לפחות 2.2 V לממיר הדחיפה. עם זאת, זה מסובך יותר עם סוללות אלקליין. כאשר זוג סוללות AA יושבות על 2.2-2.3 וולט (מעגל פתוח) יש לצפות לירידת מתח של 0.2-0.4 וולט בשיא זרמים. למרות שאימתתי שהמעגל פועל עם ממיר ההגברה המומלץ עם 1.8 וולט בלבד המסופק בזרמי שיא, סביר להניח שזה גורם למתח המוצא לרדת לרגע מתחת לערך שהציע האספרסיף. לפיכך סף החיתוך של 2.3 V משאיר מרווח בטיחות קטן עם סוללות אלקליין (יש לזכור כי מדידת מתח המבוצעת על ידי המיקרו-בקר מדויקת רק בתוך פלוס מינוס כמה אחוזים בודדים). על מנת להבטיח שמודול ה- ESP לא יתקלקל כאשר סוללות האלקליין נמוכות, אני ממליץ להגדיל את מתח הניתוק ל -2.4 וולט (#define BATT_THRESHOLD 973). ב -1.2 וולט (מעגל פתוח) תא אלקליין מופקק בכ -70% וזה נמוך רק 5-10 נקודות אחוז ממידת הפריקה ב -1.15 V לכל תא.

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

שלב 5: כתב ויתור משפטי

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

מוּמלָץ: