Wifi Aktiv OLED ESP32 Avtomobil Göstəriciləri: 3 Addım (Şəkillərlə)
Wifi Aktiv OLED ESP32 Avtomobil Göstəriciləri: 3 Addım (Şəkillərlə)
Anonim
Image
Image
Wifi aktiv OLED ESP32 avtomobil ölçü cihazları
Wifi aktiv OLED ESP32 avtomobil ölçü cihazları

Əvvəlcə təqdimatlar…

Avtomobil sayğaclarını bir növ yenidən hobbi olaraq qururam. Daha yeni iki nümunə üçün https://www.instructables.com/id/Remote-Car-Monit… və https://www.instructables.com/id/Remote-Car-Monit… baxın. Xüsusilə maşının orijinal hissələri ilə uyğun olanları çox sevirəm. Elə isə bu niyə fərqlidir və onu tikməyimə ilham verən nədir. Cavab iki şeydir:

1) ESP32 - Xüsusilə arduino əsaslı alət zənciri kifayət qədər yetkin olduğundan blok çipində yeni uşağı sınamaq istədim. ESP32 -nin aktivləşdirdiyi maraqlı şeylərdən biri, daxili wifi və bluetooth imkanları ilə IOT -dur. Cəmiyyət bunu bir az asanlaşdırmaq üçün bir çox kitabxana yazdı (veb -serverlər, AP -lər, wifi müştəriləri, mDNS və s.).

2) Ucuz OLED ekranlar - Hələ 2007 -ci ildə bir GD (2004-2007) WRX -də saatın yerinə oturan TFT istifadə edərək bir ölçü düzəltdim. TFT müxtəlif tatlardadır. Bəziləri gecə daha yaxşı işləyir, bəziləri gündüz daha yaxşı işləyir və s. Amma heç biri hər şəraitdə işləmir. Bir forum üzvünün günəşli izləmə günündə istifadə etdiyim ölçü cihazlarından biri yararsız olana qədər yollarımın səhv olduğunu anlamadım. Avtomobil tətbiqləri üçün əla olan OLED daxil edin. Gecələr çox parlaq deyillər və (daha da əhəmiyyətlisi) əksər günəş işığı şəraitində görünürlər.

Bu iki ümumi avtomobil ölçü cihazı, yağ təzyiqi və turbo təzyiqi üçün hər şeyi yazdığım üçün bir nəfər üçün bir təlimatdır. Hər ikisi də əslində eyni şeydir: diskret ədədləri və maksimumları əks etdirən canlı bir analog görünüşlü OLED ekranı olan kiçik bir forma ölçmə cihazı. Hər ikisi də WiFi AP və veb serverləri kimi fəaliyyət göstərir. Onlara kompüter və ya cib telefonu vasitəsi ilə qoşulduqda hərəkət edən EKG tipli diaqramı görmək olar (bu bir qədər yenilikçi hissədir).

Təchizat

HELTEC ESP32 modulu-wifi variantını əldə edin

Yağ təzyiqinin xüsusi hissələri:

Yağ Təzyiqi sensoru - Avtomat 5222 yağ təzyiq sensoru bağlanan hissələrdən istifadə etdim - bu avtomobilə və quraşdırılma yerinə görə dəyişir. Zəhmət olmasa xidmət təlimatlarına, forumlara, texnikaya və s. Baxın və yağ sızıntısı olmaması üçün bunu düzgün edin

Xüsusi hissələri gücləndirin:

  • Hava təzyiqi sensoru (təkan ölçmə cihazı etmək istəyirsinizsə)
  • Hava hortumu
  • T armaturları

İstifadə etdiyim kitabxanalar əvəzolunmazdı:

Smoothiecharts - https://smoothiecharts.org/ Mükəmməl və yüngül canlı qrafiklər. Çox özelleştirilebilir və İnternetdə başqa bir yerdə bir js kitabxanasına istinad etməz. Bu, "yerli-IOT" tipli bir quruluşa və bütün kitabxananın koddakı veb server ifadəsi üçün tək sətirdə yerləşməsinə imkan verir!

ESPAsyncWebServer -https://github.com/me-no-dev/ESPAsyncWebServer- qutuda dediklərini edir və yaxşı edir

ThingPulse OLED qrafik kitabxanası (bəzən squix kitabxanasına zəng edin) - https://github.com/ThingPulse/esp8266-oled-ssd130… - ESP çipləri üçün çox səmərəli və sadə qrafika. Bəzi tənbəl proqramlaşdırma etməyimə və hələ də inandırıcı animasiyalar əldə etməyimə icazə verdi.

Alətlər/misc:

lehimləmə dəmiri - sensorlar üçün uzun kabel xətləri çəkmək, gəmiyə başlıqlar quraşdırmaq, büzüşmə bükmək və s.

tornavida/prizlər/digər avtomobil alətləri - avtomobilə sensorlar quraşdırmaq üçün lazımdır

ikitərəfli lent - mənzillərə ölçü cihazları quraşdırmaq və avtomobilə mənzil quraşdırmaq üçün (isti yapışqan və digər şeylər işləyə bilər, amma 3M xarici tərəfli kənar lentə üstünlük verirəm. Yaxşı saxlayır və əşyalara zərər vermədən çıxarıla bilər.)

qayçı - lent və boru və fermuar kəsmə üçün

zip bağları - əşyaları bir yerdə tutmaq, telləri tire altında və mühərrik bölməsində bağlamaq, sensorları yerində saxlamaq və s.

Addım 1: Birinci Kod/Avadanlıq İkinci

Kod Birinci/Avadanlıq İkinci
Kod Birinci/Avadanlıq İkinci
Kod Birinci/Avadanlıq İkinci
Kod Birinci/Avadanlıq İkinci

Kodu buradan yükləyə bilərsiniz:

Yağ təzyiqi -

Güc Təzyiqi -

Analog görünüş ölçmə cihazları əvəzinə üzləri olan təzyiqi artırın -

Qrafik kodu: ThingPulse kitabxanası o qədər səmərəlidir ki, xbms -ni bir -birinin üstünə çəkib inandırıcı nəticələr əldə edə bilərsiniz!

Ölçmə şəkilləri əslində açıq mənbə qrafik anbarından gəldi (https://thenounproject.com/). Sənətçi Iconic, CY (https://thenounproject.com/icon/490005/).

Gimp istifadə edərək iynə hər bir işarəyə işarə edərək 20 fərqli çərçivə yaratdım. Gülümsəyən üz nişanları NOVITA ASTRI, ID və buradadır:

Sonra hamısını bu texnikadan istifadə edərək const uint8_t massivlərinə çevirdim (işarə: rəngləri göstərdiyiniz zaman ters çevrilirsə, orijinaldakı rəngləri ters çevirin): https://blog.squix.org/2015/05/esp8266- nodemcu-ho …

Canlı animasiya kodu olduqca sadədir:

  • Sensordan oxuyun
  • Ölçü oxu (pozitiv artım dəyərləri üçün 1 -dən 1 -ə düzəltdim və iynəni yalnız gücləndirildikdə hərəkət etdirirəm, vakuumda deyil)
  • Xbm çəkin və sonra hər şey üçün rəqəm simvollarını yazın.
  • durulayın və təkrarlayın

Sensor kodu: Bir neçə digər layihə üçün bu iki sensor üçün istifadə etdiyim sensor kodunu yenidən istifadə edirəm. Sıçrayışlı sensorlardan uzaqlaşmaq üçün bəzi ortalamaları əlavə etdim. Bura hər "oxu" nun orta hesabla 5 oxunuş olması daxildir.

Gücləndirmə kodu (sensor 0-5 volt arasında bir analoq verir, ADC isə 0-1024-dən addımlara çevrilir):

int getBoost () {float rboost = ((analogRead (36) + analogRead (36) + analogRead (36) + analogRead (36) + analogRead (36))/5); // float NəticəPSI = (rboost*(. 00488)/(. 022) +20) /6.89 - atmo; // kpa float üçün /6.89 -dan ayrılma ResultPSI = ((((rboost /4095) + 0.04) /0.004) * 0.145 - atmo; // 0.145 ilə calc psi // esp32 /*rBoost = rBoost + 1 üzərindəki 4096 dəyərlər; əgər (rBoost> = 20) {rBoost = 0; }*/ return (NəticəPSI); }

Yağ təzyiq kodu (sensor, müqavimətini hiss etdiyi təzyiqə görə dəyişir, buna görə də onu 0-5v arasında bir gərginliyə çevirmək üçün bir gərginlik bölücü tələb olunur: https://electronics.stackexchange.com/questions/3…https:/ /www.instructables.com/id/Remote-Car-Monito… [aşağıya doğru) daha ətraflı məlumat üçün):

int getOilPSI () {float psival = ((analogRead (36) + analogRead (36) + analogRead (36) + analogRead (36) + analogRead (36))/5); psival = -0.0601*psival + 177.04 - 14.5; qayıt psival; }

Veb Server və AP funksionallığı: AP funksionallığı olduqca sadədir - yayımlamaq istədiyiniz ESSID və parol ilə AP obyektini hazırlayın və getməyiniz yaxşıdır.

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

WiFi.softAP (ssid, parol);

Bir DHCP serveri də var, buna görə narahat olmayın. Varsayılan olaraq, IP 192.168.1.4 -dir (niyə belə bir fikir yoxdur, məhz seçildiyi budur). Veb serveri biraz daha hiyləgərdir və bir az araşdırma tələb edir. Əsasən, asinxron bir veb serveri istəyirsən ki, canlı məlumatları yeniləyə bilsin. Xoşbəxtlikdən bunun üçün bir kitabxana var. Mən javascript tərtibçisi deyiləm, buna görə də hamar qrafiklərdə büdrəyənə qədər bir çox qrafik və kitabxana kitabxanası ilə məşğul oldum. Bir çox digər kitabxana kitabları, bir səhifə göstərildikdə dinamik olaraq yüklənən vebdəki digər kitabxanalardan hər cür kodu miras alacaq şəkildə yazılmışdır. Bunun internetdən asılı olmayaraq işləməsini istədim, bu böyük bir tapıntı idi. İkincisi, arduinoya sığacaq qədər kiçik olmalı idi və kodda gördüyünüz kimi tək bir char massivinə uyğundur.

Webserver bəyannamələri: #incynde asyncTCp.h #include ESPAsyncWebServer.h… AsyncWebServer server (80); // onu yaradın və port seçin (80 http üçün standartdır)… server.on ("/", HTTP_GET, (AsyncWebServerRequest *sorğusu) {sorğu-> göndər (200, "text/html", "… //) veb səhifəsi + hamar kitabçalar kitabxanası böyük bir cərgədə}); server.on ("/val", HTTP_GET, (AsyncWebServerRequest *sorğusu) {// ilk səhifə əslində yalnız dəyər sorğusunu qaytaran bu kiçik səhifəni çağırır -> göndər (200, "text/html", Sboost);}); server.begin ();

Addım 2: Avadanlıq və Kablolama

Avadanlıq və naqillər
Avadanlıq və naqillər
Avadanlıq və naqillər
Avadanlıq və naqillər
Avadanlıq və naqillər
Avadanlıq və naqillər

Qalereyada istifadə etdiyim iki sensordur. Böyük qızıl rəngli Autometer 2242 yağ təzyiqi sensoru. Bu sensorun gövdəsi və ipi torpaqdır və terminal müqavimət göstəricisi olaraq oxunur.

Avtometr, hər hansı bir sensoru üçün təzyiqə və ya temperatura müqavimət əyrisi təmin edəcək. Bunu gərginlik bölücü istifadə edərək gərginliyə çevirdim (bağlama sxeminə baxın).

MPX4250AP hava təzyiqi sensoru üç canlı pin və bir neçə istifadə olunmamış sancağa malikdir. Bunlar V giriş, torpaq və sensor çıxışıdır. Mikro nəzarətçi tərəfindən oxuna bilən 0-5v oxu çıxarır (və ya bu vəziyyətdə 0-3 volt mcu olduqda. Beləliklə, sensorun oxunması bir gərginlik bölücü istifadə edərək kiçildilir). Xüsusi hesabatı burada tapa bilərsiniz:

Məntiqi 5v -dən 3v -ə endirməkdə bir neçə problem var. Mənim vəziyyətimdə sadəlik üçün gərginlik ayırıcıdan istifadə etdim və iş masamın ətrafındakı hissələrə sahib oldum. Əlavə komponentlərin (iki rezistor) mümkün səhvinə əsaslanaraq oxunuşlara bir az səhv təqdim edəcəksiniz. Bu, bəzi hallarda oxularınızı 10% endirə bilər. Bununla yaşaya bilərəm. Bunu edə bilmirsinizsə, bir opamp və rezistorlar və ya məntiq səviyyəsi çeviricisi istifadə etmək istəyə bilərsiniz (müxtəlif elektronika satıcılarında mövcuddur. Sparkfun burada var: https://www.sparkfun.com/products/12009 Bəzən bu ölçü cihazında yüksək oxunuşlar alıram (əslində bu məhsulu məftil diaqramımda göstərmişəm).

ESP32 -ni USB vasitəsilə işə saldım. Bura belə bir birbaşa şarj cihazının bağlanması da daxil idi: https://www.amazon.com/gp/product/B00U2DGKOK/ref=p… maşına və sonra ayırmaq üçün USB hubdan istifadə etməklə. Hər şeyin kiçik bir sahədə işləməsini təmin etmək üçün düz açılı usb kabellərindən istifadə etdiyimi görə bilərsiniz (https://www.amazon.com/gp/product/B00ENZDFQ4/ref=p…).

Digər fotoşəkillərdə çuxur kəsdiyim və ya tel çəkdiyim yerlər göstərilir. Hər maşın fərqli olacaq. Ehtiyatlı olun, bıçaqlar və qayçı itidir, elektrik təhlükəli ola bilər, buna görə də telləri bağlamadan əvvəl batareyanı ayırın.

Addım 3: 3D çaplı mənzil

3D çaplı mənzil
3D çaplı mənzil

Bunun üçün bir neçə 3D çap korpusdan istifadə etdim.

  • Ümumi böyük 2 ekranlı dəyirmi ölçü. Bunu ilk səhifədəki şəkillərdə görə bilərsiniz. Çubuğumda saatımın yanına qoydum.
  • Təxminən 2008-2014-cü illərdə subaru impreza (wrx, sti və s.) Saat sahəsinə uyğun olan tək ölçülü paz tərzi.
  • Sükan sütunlarına və digər yuvarlaq səthlərə uyğun olan ikiqat ölçü parçası:

Bunları ehtiyaclarınıza uyğun olaraq kopyalaya və dəyişdirə bilərsiniz. Heç biri mükəmməl deyil və hamısı bir az düzəliş tələb edəcək.

Bəzi qeydlər:

  • Mən plastidip ilə mina bitirdim; tənbəllərin üstünlük verdiyi üsuldur.
  • Zımpara plastikləri sizin üçün yaxşı olmayan incə hissəciklər əmələ gətirir, uyğun bir maska istifadə edin.
  • Evlərim üçün PETG istifadə etdim. ABS də yaxşıdır. PLA, tablosunda isti günəşdə əyiləcək.
IoT Challenge
IoT Challenge
IoT Challenge
IoT Challenge

IoT Challenge -da İkinci Mükafat