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

Wifi מופעל OLED ESP32 מכשירי רכב: 3 שלבים (עם תמונות)
Wifi מופעל OLED ESP32 מכשירי רכב: 3 שלבים (עם תמונות)

וִידֵאוֹ: Wifi מופעל OLED ESP32 מכשירי רכב: 3 שלבים (עם תמונות)

וִידֵאוֹ: Wifi מופעל OLED ESP32 מכשירי רכב: 3 שלבים (עם תמונות)
וִידֵאוֹ: פתרון אל פסק ל-Raspberry Pi 3b/4 2024, נוֹבֶמבֶּר
Anonim
Image
Image
Wifi מופעל OLED ESP32 מכשירי רכב
Wifi מופעל OLED ESP32 מכשירי רכב

היכרות ראשית…

אני בונה מדדי מכוניות כמעין תחביב שוב ושוב. ראה https://www.instructables.com/id/Remote-Car-Monit… ו- https://www.instructables.com/id/Remote-Car-Monit… לשתי דוגמאות אחרונות נוספות. אני אוהב במיוחד כאלה שמשתלבים עם החלקים המקוריים של המכונית. אז למה זה שונה ומה עורר בי השראה לבנות אותו. התשובה היא שני דברים:

1) ESP32 - רציתי לנסות את הילד החדש על שבב הבלוק, במיוחד מכיוון שרשרת הכלים המבוססת על ארדואינו בשבילו. אחד הדברים המעניינים ש- ESP32 מאפשר הוא IOT עם יכולות ה- wifi והבלוטות 'המובנות שלו. הקהילה כתבה מספר ספריות כדי להפוך את זה לפשוט יותר (שרתי אינטרנט, AP, לקוחות wifi, mDNS וכו ').

2) מסכי OLED זולים - עוד בשנת 2007 עשיתי מד באמצעות TFT שהתיישב במקום השעון ב- WRX GD (2004-2007). TFT מגיעים במגוון טעמים. חלק עובדים טוב יותר בלילה, חלק עובדים טוב יותר ביום וכו 'אבל אף אחד מהם לא עובד בכל התנאים. לא הבנתי את הטעות בדרכי עד שאחד המדדים שהשתמשתי בהם היה חסר תועלת במהלך יום מסלול שטוף שמש של חבר פורום. הזן OLED, שהם מדהימים ליישומי רכב. הם אינם בהירים מדי בלילה וחשוב יותר) הם נראים ברוב תנאי אור השמש.

זהו מדריך שניים לאחד שכן כתבתי הכל לשני מדי מכוניות נפוצים, לחץ שמן ולחץ טורבו. שניהם בעצם אותו דבר: מד גורם צורה קטן עם תצוגת OLED חיה במראה אנלוגי עם מספרים נפרדים ומקסימום. שניהם מתפקדים גם כ- WiFi AP ושרתי אינטרנט. כאשר מתחברים אליהם באמצעות מחשב או טלפון סלולרי ניתן לצפות בתרשים מסוג EKG נעים (זהו החלק החדשני במקצת).

אספקה

מודול HELTEC ESP32-קבל את גרסת ה- wifi

חלקים ספציפיים ללחץ שמן:

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

חלקים ספציפיים להגברת מד:

  • חיישן לחץ אוויר (רק אם ברצונך לבצע מד הגברה) -
  • צינור אוויר
  • אביזרי T

ספריות שהשתמשתי בהן שהיו הכרחיות:

Smoothiecharts - https://smoothiecharts.org/ תרשימי עדכון חיים מעולים וקלים. ניתן להתאמה אישית מאוד ואינו מסתמך על התייחסות לספריית js במקום אחר באינטרנט. זה מאפשר התקנה מסוג "IOT מקומי" והספרייה כולה מתאימה למחרוזת אחת להצהרת שרת האינטרנט בקוד!

ESPAsyncWebServer -https://github.com/me-no-dev/ESPAsyncWebServer- עושה מה שהוא כותב על הקופסה ועושה את זה טוב

ספריית הגרפיקה של ThingPulse OLED (לפעמים קוראים לספריית squix) - https://github.com/ThingPulse/esp8266-oled-ssd130… - גרפיקה מאוד יעילה ופשוטה עבור שבבי ה- ESP. אפשר לי לעשות קצת תכנות עצלן ועדיין לקבל אנימציות משכנעות.

כלים/שונות:

מלחם - משמש לביצוע כבלים ארוכים לחיישנים, התקנת כותרות על הלוח, כיווץ כיווץ וכו '.

מברג/שקעים/כלי רכב אחרים - הכרחי להתקנת חיישנים על המכונית

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

מספריים - להדבקה ולחיתוך צינורות ועניבות רוכסן

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

שלב 1: קוד ראשון/חומרה שנית

קוד ראשון/חומרה שנית
קוד ראשון/חומרה שנית
קוד ראשון/חומרה שנית
קוד ראשון/חומרה שנית

ניתן להוריד את הקוד כאן:

לחץ שמן -

הגברת לחץ -

להגביר לחץ עם פנים במקום מדדי מראה אנלוגיים -

קוד גרפי: ספריית ThingPulse כל כך יעילה שאפשר לצייר xbms אחד על השני ולקבל תוצאות משכנעות!

תמונות המד הגיעו למעשה ממאגר גרפי בקוד פתוח (https://thenounproject.com/). האמן Iconic, CY (https://thenounproject.com/icon/490005/).

השתמשתי ב- gimp ליצירת 20 מסגרות שונות כשהמחט מצביעה על כל סימן קרציה. סמלים של סמיילי הם של NOVITA ASTRI, ID והם כאן:

לאחר מכן הפכתי את כל אלה למערכי const uint8_t באמצעות טכניקה זו (רמז: אם הצבעים הופכים כאשר אתה מציג אותם, פשוט הפוך את הצבעים על המקור): https://blog.squix.org/2015/05/esp8266- nodemcu-ho…

קוד הנפשה חיה די פשוט:

  • קבל קריאה מהחיישן
  • קריאת קנה מידה (עשיתי את זה 1 ל -1 לערכי דחיפה חיוביים והזזתי רק את המחט כשהיא בבוסט לא כשהיא בחלל ריק)
  • צייר xbm ולאחר מכן הנח תווי מספר לכל השאר.
  • לשטוף וחזור

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

קוד Boost (חיישן נותן שסתום אנלוגי מ 0-5 וולט שה- ADC הופך לשלבים מ- 0-1024):

int getBoost () {float rboost = ((analogRead (36) + analogRead (36) + analogRead (36) + analogRead (36) + analogRead (36))/5); // float ResultPSI = (rboost*(. 00488)/(. 022) +20) /6.89 - אטמו; // יציאה מה /6.89 לצוף kpa ResultPSI = (((rboost /4095) + 0.04) /0.004) * 0.145 - אטמו; // ב- 0.145 ל- calc psi // 4096 ערכים ב- esp32 /*rBoost = rBoost + 1; אם (rBoost> = 20) {rBoost = 0; }*/ החזרה (ResultPSI); }

קוד לחץ שמן (החיישן משנה את ההתנגדות שלו בהתבסס על הלחץ שהוא מרגיש ולכן מחייב מתח כדי להפוך את זה למתח מ 0-5v ראה: https://electronics.stackexchange.com/questions/3…https:/ /www.instructables.com/id/Remote-Car-Monito …… (לקראת החלק התחתון) למידע נוסף):

int getOilPSI () {float psival = ((analogRead (36) + analogRead (36) + analogRead (36) + analogRead (36) + analogRead (36))/5); psival = -0.0601*psival + 177.04 - 14.5; להחזיר psival; }

שרת אינטרנט ופונקציונליות AP: פונקציונליות AP פשוטה למדי - מיידיות ואובייקט AP עם ה- ESSID שברצונך לשדר והסיסמה ואתה מוכן.

const char *ssid = "boost_gauge_ap"; const char *password = "password";

WiFi.softAP (ssid, סיסמא);

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

הצהרות שרת אינטרנט: #include AsyncTCP.h #include ESPAsyncWebServer.h… AsyncWebServer server (80); // מייצרים אותו ובוחרים ביציאה (80 הוא סטנדרטי עבור http) … server.on ("/", HTTP_GET, (AsyncWebServerRequest *בקשה) {request-> send (200, "text/html", "… // דף האינטרנט + ספריית smoothiecharts במערך צ'אר ענק}); server.on ("/val", HTTP_GET, (AsyncWebServerRequest *בקשה) {// הדף הראשון קורא למעשה לדף קטן מאוד זה שפשוט מחזיר את בקשת הערך -> שלח (200, "text/html", Sboost);}); server.begin ();

שלב 2: חומרה וחיווט

חומרה וחיווט
חומרה וחיווט
חומרה וחיווט
חומרה וחיווט
חומרה וחיווט
חומרה וחיווט

בתמונה בגלריה שני החיישנים בהם אני משתמש. הצבע הזהב הגדול הוא חיישן לחץ שמן Autometer 2242. גוף וחוט חיישן זה נטחנים והמסוף הוא קריאת ההתנגדות.

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

לחיישן לחץ האוויר MPX4250AP יש שלושה סיכות חיות וכמה סיכות שאינן בשימוש. הם פלט V, הקרקע וחיישן. הוא פולט קריאת 0-5v הניתנת לקריאה על ידי המיקרו-בקר (או במקרה של mcu 0-3 וולט זה. לכן קריאת החיישן יורדת באמצעות מחלק מתח). את גיליון המפרט עבורו ניתן למצוא כאן:

ישנן מספר בעיות בהורדת ההיגיון מ -5 וולט ל -3 וולט. במקרה שלי השתמשתי במפריד המתח לפשטות והיו לי החלקים סביב שולחן העבודה שלי. תוכלו להכניס מעט שגיאה לקריאות המבוססות על השגיאה האפשרית של הרכיבים הנוספים (שני הנגדים). זה יכול לגרום לקריאות שלך 10% הנחה במקרים מסוימים. אני יכול לחיות עם זה. אם אתה לא יכול אולי תרצה להשתמש באופמפ ונגד או ממיר רמה לוגי (ניתן להשיג אצל ספקי אלקטרוניקה שונים. ל- Sparkfun יש אחד כאן: https://www.sparkfun.com/products/12009 אני יכול לעבור אליו כ אני מקבל מדי פעם קריאות גבוהות על מד זה (למעשה הראיתי מוצר זה בתרשים החיווט שלי).

הפעלתי את ה- ESP32 באמצעות USB. זה כלל חיווט של מטען ישיר כמו זה: https://www.amazon.com/gp/product/B00U2DGKOK/ref=p… לרכב ולאחר מכן שימוש ברכזת USB כדי לפצל אותו. אתה יכול לראות שהשתמשתי בכבלי USB בזווית ישרה כדי להבטיח שהכל יעבוד בשטח קטן (https://www.amazon.com/gp/product/B00ENZDFQ4/ref=p…).

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

שלב 3: דיור בתלת מימד

דיור בתלת מימד
דיור בתלת מימד

השתמשתי בכמה מארזים מודפסים בתלת מימד לשם כך.

  • מד עגול גדול עם 2 מסכים. אתה יכול לראות זאת בתמונות של העמוד הראשון. הנחתי אותו ליד השעון שלי על המקף שלי.
  • סגנון טריז בודד המתאים לאזור השעון של סובארו אימפרזה (wrx, sti וכו ') משנת 2008 עד 2014.
  • פיסת מד כפולה המתאימה לעמודי הגה ומשטחים מעוגלים מעט יותר:

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

כמה הערות:

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

פרס שני באתגר IoT

מוּמלָץ: