בזמן האחרון יצא לי לשחק הרבה עם מודול של esp32 החדש, ופשוט התאהבתי. דחסו בו באמת המון יכולות ובראשן יכולות האלחוט. אבל כשהתחלתי לחפור בדפי הנתונים, גיליתי עוד ועוד הפתעות מעניינות. אחת מהן היא חיישן המגנטיות (reed sensor).
חיישן מגנט הוא שיטה עתיקת יומין למדידת מהירות סיבוב של ציר. מתקינים מגנט על הציר, את החיישן על המכונה וכל סיבוב מקבלים פולס. וזה העיר לי את המחשבה על מד צעדים לאוגר שלנו צ׳ינצ׳י.
בניסיונות שעשיתי ראיתי שצריך מגנט חזק ומרחק קצר כדי להתגבר על הרעש בחיישן. אבל כבר הייתי נלהב, וחשבתי על דרכים אחרות למימוש. דרך נפוצה אחרת היא להדביק מחזיר אור על הגלגל ומד אור בצד הקבוע. חיפשתי בארגז החלקים ומצאתי מקלט אינפרא-אדום לשלט רחוק. היתרון של המקלט הוא השימוש בIRשלא מושפע מאור רגיל, והמסנן שקולט רק אור שמאופנן ב38KHz כמו שמשדר השלט רחוק. כמשדר היו לי דיודות IR רגילות. בדרך כלל משתמשים במתנד כמו 555 כדי לייצר את האיפנון, אבל כאן השתמשתי ביכולות הPWM המצויינות של הesp32 שמסוגל להוציא הרבה סוגים של אותות.
כמחזיר אור הדפסתי גלגל שבו כל רביע בצבע שחור או לבן לסירוגין.
ניסיונות על יבש הראו שהגלאי שלי מזהה את הצבע ממרחק מספיק רחוק כך שהוא לא צריך להיות צמוד לגלגל, שנוטה לרעוד ולזוז כמה מילימטרים בזמן הסיבוב, ולכן לא מפריע לו להסטובב בחופשיות.
ארזתי את החיישן בקופסא שהדפסתי במדפסת תלת מימד שלי כך שהיא נתפסת על הסורגים של הכלוב, ומוליכה את החוטים החוצה בלי שיש לאוגר הזדמנות לכרסם אותם.
אחרי שחיברתי את החוטים ללוח וווידאתי שהחיישן עובד התחלתי לכתוב את התוכנה. לכאורה הקוד מאוד פשוט: כל פעם שהצבע בחיישן משתנה מוסיפים למרחק. מדדתי את ההיקף, חילקתי ל4 ואת התוצאה מוסיפים בכל שינוי. כשהתחלתי להריץ את הקוד גיליתי שיש לגלגל נטיה מעצבנת לעצור בדיוק בנקודה שבין השחור ללבן ואז זה מתחיל לרצד, ותוכנה חושבת שהאוגר רץ מאוד מהר. בעין ממש קל לזהות את זה, אבל בקוד טיפה יותר מסובך. דבר ראשון היה צריך להעלות את מהירות הדגימה, ואז לבצע פילטר.
החיבור לוויפי דווקא עבד בלי בעיה. העתקתי קוד שמדווח ל MQTT שהשתמשתי בו באפליקציות אחרות. הוספתי גם קריאה של השעון מהאינטרנט כך שבחצות אני יכול לאפס את המונה. ומכיוון שהשרת מחובר לשאר מערכות הבית, אז השתמשתי בmagic mirror שלנו להציג את התוצאות
לקח עוד כמה תיקונים קטנים, אבל עכשיו יש לנו מידע מדויק על כמה צ׳ינצי רץ כל לילה (וזה לא מעט לחיה בסדר גודל שלו).
הקבצים hamster_pedometer