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

חיישן תנועה ESP-01 עם שינה עמוקה: 5 שלבים
חיישן תנועה ESP-01 עם שינה עמוקה: 5 שלבים

וִידֵאוֹ: חיישן תנועה ESP-01 עם שינה עמוקה: 5 שלבים

וִידֵאוֹ: חיישן תנועה ESP-01 עם שינה עמוקה: 5 שלבים
וִידֵאוֹ: Эрик Топол: Беспроводное будущее медицины. 2024, נוֹבֶמבֶּר
Anonim
Image
Image

עבדתי על ייצור חיישני תנועה תוצרת בית ששולחים הודעת דוא ל כשהם מופעלים. ישנן דוגמאות רבות להנחיות ודוגמאות אחרות לכך. לאחרונה הייתי צריך לעשות זאת עם חיישן תנועה PIR המופעל באמצעות סוללה ו- ESP-01. ה- ESP-01 הוא מאוד פונקציונלי ויש לו את כל היכולות הנדרשות אז למה לא להשתמש במינימום והפחות יקר הדרוש? לתערובת נוספה עוד מודול ESP-01 נפרד ומרוחק שהפעיל זמזם כאשר חיישן התנועה הופעל.

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

הייתה לי אותה בעיה לגרום לחיישן PIR לפעול להפעלת שינה עמוקה של ESP-01. נתיבים רבים עד שהיה אחד שעבד.

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

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

תראה מעגלים רבים המשתמשים ב- GPIO16 המחוברים לאיפוס ESP8266 מכיוון ש- GPIO16 הוא אות ההתעוררות. זה נכון, אבל זהו אות ההתעוררות משינה מתוזמנת. אנו יכולים להתעלם מה- PIN הזה, שהוא טוב מכיוון שהוא אינו זמין ב- ESP-01.

ביסודו של דבר, כל מה שאנחנו צריכים זה לקבל את האות מה- PIR להפעלת סיכת האיפוס ESP-01. הקושי הראשון שתניח הוא שהאיפוס מופעל באות נמוכה ו- PIR שולח אות גבוה כאשר הוא מופעל. איפוס גם צריך להיות גבוה או צף על האתחול. אז כדי לשמור על זה קצר, לאחר שניסיתי כמה מעגלים שונים, הסתפקתי בשימוש בטרנזיסטור NPN עם נגד משיכה כדי לשמור על סיכת RESET HIGH במהלך האתחול. הפלט מה- PIR מינימלי אך הוא מספק מספיק זרם בסיס להדליק את הטרנזיסטור.

כפי שתראה בתרשים המעגלים להלן, ה- ESP-01 התעורר משינה עמוקה בכל פעם שה- PIR חש תנועה.

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

מה שקבעתי מהתנהגות זו הוא ש- ESP-01 למעשה מפעילה בקצה העולה של האות. החזקת סיכת האיפוס לאדמה למעשה לא מפעילה את ה- ESP-01 משינה עמוקה אלא ברגע שהמתח עולה לאות HIGH, אז האיפוס קורה.

התגובה הפשוטה ביותר שלי להתנהגות זו הייתה הוספת קבלים לקו שבין פלט ה- PIR לבסיס הטרנזיסטור. זה גרם לטרנזיסטור להידלק רק בזמן שהקבל נטען. לאחר הטעינה, לא היה זרם נוסף והטרנזיסטור כבה. הנגד 5k מאפשר לזרם להתנקז לקרקע. בדקתי את זה עם נורית במקום ה- ESP-01 ויכולתי לראות את הנורה מהבהבת במשך שבריר של שנייה לפני כיבוי. הדופק הקטן הזה הספיק כדי למשוך את סיכת האיפוס לאדמה לרגע וארוך מספיק כדי להפעיל את האיפוס מתוך שינה עמוקה.

שלב 1: מודול שינה עמוקה ESP-01

מודול שינה עמוקה ESP-01
מודול שינה עמוקה ESP-01
מודול שינה עמוקה ESP-01
מודול שינה עמוקה ESP-01

מודול השינה העמוקה משתמש בשני מתחי עבודה. 5V האקראי של מארז הסוללות ל- PIR וגם לוח ויסות 3.3 וולט ל- ESP-01. אני גם משלב דיודה במעגל כדי למנוע חלקים פגומים ממתחים הפוכים. זה אכן משתמש במעט כוח נוסף ומוריד את מתח הסוללה ב -0.7 וולט. ניתן להשאיר את הדיודה מחוץ למעגל אם אתה בטוח שלעולם לא תוכל להפוך את מוליכי הסוללה. מתג נוסף גם לנוחות.

מודול זה הוא עדכון קל לפריסת השינה הלא עמוקה המקורית שלי. בתצורת השינה הלא עמוקה, ה- PIR מחובר ישירות לסיכת RX של ה- ESP-01. אני משתמש בסיכת RX של ESP-01 כסיכת הקלט ל- PIR מכמה סיבות. GPIO0 לא עבד כי בעת האתחול ה- PIN של פלט ה- PIR יהיה נמוך ויגרום ל- ESP-01 להיכנס למצב פלאש. לא השתמשתי ב- GPIO2 מכיוון שאז לא יכולתי להשתמש בנורית ה- LED המובנית להזנה חזותית. סיכות RX ו- TX מתוארות לעתים קרובות כסיכות IO נוספות אך הניסיון שלי הוא ש- RX הוא סיכת INPUT נוספת ו- TX היא סיכת OUTPUT נוספת.

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

להלן רשימת החלקים של מודול השינה העמוקה ESP-01:

1 - 5 x 7 ס מ לוח אב טיפוס PCB

מחבר 1 - 2 פינים

2 - 1 x 3 כותרות נקבה

1 - AMS1117 - לוח מעגלים של ויסות מתח

1 - 1 x 3 סיכת כותרת זווית ישרה

1 - 1 x 3 סיכת כותרת לשקע נקבה

1 - 1 x 4 סיכת כותרת לשקע נקבה

1 - 2 x 4 כותרת נקבה

קבל 1 - 1uf

1 - חיישן תנועה PIR HC -SR501 PIR

1 - טרנזיסטור 2N2222

התנגדות 1 - 10k

1 - 4.7k נגד

התנגדות 1 - 1k

דיודה 1 - 1N4148

1 - מתג SS12D00G4 SPDT

1 - ESP -01

1 - 4AA סוללה

שימו לב שבסרטון לוח המעגלים משתמש במתאם לוח לחם ESP-01 במקום בכותרת 2 x 4. אמנם מתאם זה קל יותר להלחמה אבל הכותרת 2 x 4 עובדת מצוין ולמעשה מתאימה יותר.

שלב 2: קוד שינה עמוק ESP-01

קוד השינה העמוקה מבצע שתי פונקציות. שלח הודעת דואר אלקטרוני (באמצעות gmail כברירת מחדל) ושלח בקשת אינטרנט http למודול הזמזם המשויך של ESP-01 כדי להפעיל את הבאזר.

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

יהיה עליך לעדכן שש שורות קוד עם הערכים הספציפיים שלך כדי לגרום לסקיצה לעבוד:

const char* ssid = "xxxxx"; // WiFi SSIDconst char* password = "xxxxx"; // Wi -Fi מחרוזת הסיסמה שלך שולחים = "xxxxx"; // התחברות של ספק הדוא"ל שלך String Senders_Password = "xxxxx"; // הסיסמה של ספק הדוא"ל שלך

To = "xxxxxx"; מאת = "xxxxxx"; // Gmail בדרך כלל מעדיף שזה יהיה זהה ל- Senders_Login ועשוי להחליף

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

הוספתי גם קוד לפונקציית הלולאה כדי להשאיר את ה- ESP-01 דולק כל עוד ה- PIR עדיין מרגיש תנועה. ניתן להסיר את כל הקוד בפונקציית הלולאה ולהעביר את הקריאה לשינה עמוקה לסוף פונקציית ההתקנה.

אני משתמש בפונקציית המצמוץ עבור אינדיקטור ויזואלי של הפעילות עם מודול ESP-01.

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

אם אתה בוחר לקבל יותר ממודול זמזם אחד פשוט הוסף שיחות נוספות של לקוח http (חזור על שלוש שורות הקוד אך שנה את כתובת ה- ip המשמשת והגדר רק את משתנה httpCode כ- int פעם אחת!

שים לב שכתובת ה- ip של הבאזר מקודדת במודול זה. אינך צריך להשתמש בכתובת ה- IP שבחרתי, אך עליך להתאים את כתובת ה- IP של שיחת האינטרנט במודול זה עם כתובת ה- IP של הגדרת שרת האינטרנט במודול הבא.

שלב 3: מודול זמזם ESP-01

מודול זמזם ESP-01
מודול זמזם ESP-01
מודול זמזם ESP-01
מודול זמזם ESP-01
מודול זמזם ESP-01
מודול זמזם ESP-01

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

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

הבאזר מחובר ל -5 וולט של מחבר ה- USB וישנו לוח רגולטורי נוסף של 3.3 וולט המספק חשמל ל- ESP-01.

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

ניסיתי להשתמש בטרנזיסטור NPN כדי להפעיל את הבאזר במעגל כאשר ה- ESP-01 שם אות גבוה על פין GPIO0 אך התוצאות היו מאוד לא עקביות. נראה שהזמזם רוצה להישמע בכל עת, אפילו עם מעט מאוד כוח. אז במקום זאת השתמשתי ב- MOSFET ערוץ N (2n7000) והתוצאה הייתה נהדרת. סיכת ה- IO מניעה את השער כנדרש.

בעוד שאנחנו צריכים רק שני סיכות ממחבר ה- USB Vcc (+) ו- Gnd (-) אני משתמש בכותרת של 5 פינים כדי להתחבר ללוח ה- PCB ליציבות נוספת ולהלחמה לפני חיבור ה- USB לרגולטור. לוח הווסת שלי 3.3v הגיע עם הסיכות המותקנות מראש ובעיני הפוך. אז כדי להכניס את הרגולטור לסיכות הכותרת אתה יכול לראות שלוח המעגלים מוסתר, אבל גרוע מזה, vcc ו- gnd על הרגולטור הפוכים מ- vcc ו- gnd על מחבר ה- USB. אז החוטים חוצים.

שים לב גם + כוח לזמזם הפעיל מגיע מה -5 V של ה- USB. כמו כן, כותרת שקע נקבה בעלת 4 פינים פועלת היטב עם מיקום הפינים של הבאזר.

רשימת חלקי מודול זמזם ESP-01:

1 - 5 x 7 לוח PCB

1 - מחבר מיני USB עם כותרות סיכות (7 פינים)

2 - 1 x 3 כותרות נקבה

1 - לוח ווסת מתח AMS1117-3.3 v

1 - 2 x 4 כותרת נקבה

2 - 1 x 4 כותרות שקעים נקבות

1 - 2N7000 N -channel MOSFET

נגד 1 - 10 אוהם

באזר אקטיבי 1 - 5v

שלב 4: קוד מודול זמזם ESP-01

מודול הבאזר משמש כשרת אינטרנט פשוט של ESP-01. הוא מגיב במסר פשוט לבקשת שורש וכאשר הוא מקבל את בקשת הבאזז, הוא יפעיל את הבאזר. GPIO0 משמש לסיכה GPIO לאות הזמזם.

שים לב ש- ESP-01 מוגדר עם כתובת ip מקודדת. זה נדרש כך שמודול השינה העמוקה יצורף לכתובת הבאזר.

בדומה למודול הקודם, יהיה עליך לעדכן שתי שורות קוד עם הערכים הספציפיים שלך:

// SSID וסיסמה של נתב ה- WiFi שלך const char* ssid = "xxxxxxx";

const char* password = "xxxxxxxx";

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

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

עבור שרת האינטרנט, יהיה עליך להוסיף שורת קוד כזו:

server.on ("/buzz2", buzz2);

שלב 5: מחשבות אחרונות

זוהי ההנחיה הראשונה שלי כך שאולי פספסתי כמה דברים מעשיים שהייתי צריך לכלול. לוח הוויסות AMS1117-3.3 בו השתמשתי כולל לד קטן זעיר שנדלק כאשר הוא מופעל. עבור מודול השינה העמוקה לא רציתי שהדבר הזה יופעל ויוריד את הכוח ללא צורך. אז פתרתי את מה שיכולתי בצד אחד של הלייד על הלוח ואז השתמשתי בסכין כלי כדי לחתוך את קו העקבות. זה היה קל יותר ממה שחשבתי ומונע מהנורית להאיר. לא הצלחתי לקבוע מהו כוח ההספק כאשר ה- ESP-01 נמצא בשינה עמוקה, אך ייתכן שיהיה לי תשובה בעוד מספר שבועות. עמית שלי הפעיל את החיישן (לא בשינה עמוקה) ומצא את הסוללות מרוקנות (5AA) תוך כשבוע. אני חושב שההגדרה הזו צריכה לתת חודש ואפילו יותר. עוד נראה.

מודול השינה העמוקה עלה כ 8 $ CDN בחלקים (סוללות לא כלולות!) ומודול הזמזם 5 $.

מוּמלָץ: