Talaan ng mga Nilalaman:

Pinagana ng Wifi ang OLED ESP32 Mga Car Gauge: 3 Hakbang (na may Mga Larawan)
Pinagana ng Wifi ang OLED ESP32 Mga Car Gauge: 3 Hakbang (na may Mga Larawan)

Video: Pinagana ng Wifi ang OLED ESP32 Mga Car Gauge: 3 Hakbang (na may Mga Larawan)

Video: Pinagana ng Wifi ang OLED ESP32 Mga Car Gauge: 3 Hakbang (na may Mga Larawan)
Video: Control Position and Speed of Stepper motor with L298N module using Arduino 2024, Nobyembre
Anonim
Image
Image
Pinagana ng Wifi ang OLED ESP32 Mga Car Gauge
Pinagana ng Wifi ang OLED ESP32 Mga Car Gauge

Pagpapakilala muna …

Bumubuo ako ng mga gauge ng kotse bilang isang uri ng muli at off na libangan. Tingnan ang https://www.instructables.com/id/Remote-Car-Monit… at https://www.instructables.com/id/Remote-Car-Monit… para sa dalawa pang mga kamakailang halimbawa. Lalo na gusto ko ang mga nagsasama sa mga orihinal na bahagi ng kotse. Kaya, bakit naiiba ang isang ito at kung ano ang nagbigay inspirasyon sa akin na itayo ito. Ang sagot ay dalawang bagay:

1) ESP32 - Nais kong subukan ang bagong bata sa block chip, lalo na dahil ang arduino-based toolchain para dito ay medyo may sapat na gulang. Isa sa mga kagiliw-giliw na bagay na nagbibigay-daan sa ESP32 ay ang IOT kasama ang built in na wifi at mga kakayahan ng bluetooth. Ang komunidad ay nagsulat ng maraming mga aklatan upang gawin itong medyo prangka (mga webserver, AP's, wifi client, mDNS, atbp.).

2) Mga murang screen ng OLED - Bumalik noong 2007 gumawa ako ng isang gauge gamit ang isang TFT na nakaupo sa lugar ng orasan sa isang GD (2004-2007) WRX. Ang TFT ay may iba't ibang lasa. Ang ilan ay mas mahusay na gumagana sa gabi, ang ilan ay mas mahusay na gumagana sa araw, atbp. Ngunit wala sa kanila ang gumagana sa lahat ng mga kondisyon. Hindi ko namalayan ang error ng aking mga paraan hanggang sa ang isa sa mga gauge na ginamit ko ay walang silbi sa maaraw na araw ng track ng isang miyembro ng forum. Ipasok ang OLED, na kung saan ay kahanga-hangang para sa mga automotive application. Ang mga ito ay hindi masyadong maliwanag sa gabi at (mas mahalaga) ay nakikita sa karamihan ng mga kondisyon ng sikat ng araw.

Ito ay isang dalawa para sa isang itinuturo habang isinulat ko ang lahat para sa dalawang karaniwang mga gauge ng kotse, presyon ng langis at presyon ng turbo. Parehas na kapareho ang parehong bagay: isang maliit na sukat ng factor ng form na may animate na analog na hitsura na OLED display na may mga discrete na numero at maximum na ipinakita. Parehas ding gumana ang wifi AP's at webservers. Kapag kumonekta sa kanila sa pamamagitan ng isang computer o cell phone ang isang gumagalaw na tsart ng stk ng EKG ay makikita (ito ang medyo makabagong bahagi).

Mga gamit

Module ng HELTEC ESP32 - kunin ang variant ng wifi

Mga tukoy na bahagi ng Pressure ng Langis:

Oil Pressure sensor - Gumamit ako ng isang automter na 5222 Mga bahagi ng hookup ng sensor ng presyon ng langis - nag-iiba ito sa pamamagitan ng kotse at lokasyon ng pag-install. Mangyaring kumunsulta sa mga manwal ng serbisyo, forum, mechnics, atbp at gawin ito nang tama upang walang mga paglabas ng langis

Palakasin ang mga tiyak na bahagi:

  • Air pressure sensor (tanging kung nais mong gumawa ng isang boost gauge) -
  • Hose ng hangin
  • Mga kabit

Ginamit ko ang mga silid-aklatan na kailangang-kailangan:

Smoothiecharts - https://smoothiecharts.org/ Magaling at magaan ang live na pag-update ng mga tsart. Napaka-napapasadyang at hindi umaasa sa pagsangguni sa isang js library sa ibang lugar sa internet. Pinapayagan nito ang isang pag-set up na uri ng "lokal-IOT" at magkasya ang buong library sa iisang string para sa pahayag ng web server sa code!

Ginagawa ng ESPAsyncWebServer -https://github.com/me-no-dev/ESPAsyncWebServer- ang sinasabi sa kahon at mahusay itong ginagawa

ThingPulse OLED graphics library (minsan tawagan ang library ng squix) - https://github.com/ThingPulse/esp8266-oled-ssd130… - napakahusay at prangkahang graphics para sa mga chips ng ESP. Pinapayagan akong gumawa ng ilang tamad na programa at makakuha pa rin ng mga nakakumbinsi na mga animasyon.

Mga tool / misc:

panghinang na bakal - ginamit upang gumawa ng mahabang pagpapatakbo ng cable para sa mga sensor, pag-install ng mga header sa board, pag-urong ng shrink wrap, atbp.

distornilyador / sockets / iba pang mga tool sa kotse - kinakailangan upang mag-install ng mga sensor sa kotse

double sided tape - upang mai-install ang mga gauge sa mga pabahay at mai-install ang pabahay sa kotse (maaaring gumana ang mainit na pandikit at iba pang mga bagay, ngunit mas gusto ko ang 3M na dobleng panig na trim na pantlo. Mahigpit ang hawak nito at maaaring hilahin nang hindi nakakasira ng mga bagay.)

gunting - para sa tape at cutting tubing at zip ties

mga kurbatang zip - para sa pagsasama-sama ng mga bagay, pag-bundle ng mga wire sa ilalim ng dash at sa kompartimento ng engine, pagpigil sa mga sensor sa lugar, atbp.

Hakbang 1: Pangunahin ang Code / Pangalawa sa Hardware

Code Una / Pangalawa sa Hardware
Code Una / Pangalawa sa Hardware
Code Una / Pangalawa sa Hardware
Code Una / Pangalawa sa Hardware

Maaaring mai-download ang code dito:

Pressure ng Langis -

Pressure ng Boost -

Palakasin ang presyon na may mga mukha sa halip na mga gauge ng analog na hitsura -

Graphics code: Ang ThingPulse library ay napakahusay na maaari kang gumuhit ng xbms mismo sa tuktok ng isa't isa at makakuha ng kapani-paniwala na mga resulta!

Ang mga imahe ng gauge ay talagang nagmula sa isang bukas na mapagkukunan ng graphics repository (https://thenounproject.com/). Ang artist na Iconic, CY (https://thenounproject.com/icon/490005/).

Gumamit ako ng gimp upang makabuo ng 20 magkakaibang mga frame na may karayom na tumuturo sa bawat marka ng tick. Ang mga smiley na mukha ng Icon ay ni NOVITA ASTRI, ID at narito:

Pagkatapos ay nai-convert ko ang lahat ng ito sa mga const uint8_t arrays gamit ang diskarteng ito (pahiwatig: kung ang mga kulay ay inverted kapag ipinakita mo ang mga ito, baligtarin lamang ang mga kulay sa orihinal): https://blog.squix.org/2015/05/esp8266- nodemcu-ho…

Ang live na code ng animasyon ay medyo prangka:

  • Kumuha ng pagbabasa mula sa sensor
  • Pagbabasa ng iskala (Ginawa ko itong 1 hanggang 1 para sa mga positibong halaga ng pagpapalakas at ilipat lamang ang karayom kapag nasa boost hindi kapag nasa vacuum)
  • Gumuhit ng xbm at pagkatapos ay ilagay ang mga character na numero para sa lahat ng iba pa.
  • banlawan at ulitin

Sensor code: Gumagamit ulit ako ng sensor code na ginamit ko para sa dalawang sensor na ito para sa ilang iba pang mga proyekto. Nagdagdag ako ng ilang pag-average upang makalayo mula sa mga nakakatalon na sensor. Kasama rito ang pagbabasa ng bawat "pagbasa" na isang average ng 5 pagbasa.

Boost code (nagbibigay ang sensor ng isang analog val mula 0-5 volts kung saan ang ADC ay naging mga hakbang mula 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 - atmo; // leave of /6.89 for kpa float ResultPSI = ((((rboost / 4095) + 0.04) / 0.004) * 0.145 - atmo; // by 0.145 to calc psi // 4096 mga halaga sa esp32 / * rBoost = rBoost + 1; kung (rBoost> = 20) {rBoost = 0; } * / return (ResultPSI); }

Code ng presyon ng langis (nag-iiba ang sensor ng paglaban nito batay sa presyon na nararamdaman nito kaya kinakailangan ng isang divider ng boltahe upang gawin itong boltahe mula sa 0-5v tingnan ang: https://electronics.stackexchange.com/questions/3…https:/ /www.instructables.com/id/Remote-Car-Monito…(patungo sa ibaba) para sa karagdagang impormasyon):

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

Pag-andar ng Web Server at AP: Ang pag-andar ng AP ay medyo simple - magsimula at AP na object sa ESSID na nais mong i-broadcast at ang password at mahusay kang pumunta.

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

WiFi.softAP (ssid, password);

Mayroon pa itong server ng DHCP kaya hindi mo na kailangang magalala tungkol doon. Bilang default ang IP ay 192.168.1.4 (walang ideya kung bakit, iyon lamang ang napili). Ang bit ng webserver ay medyo mahirap at nangangailangan ng kaunting pagsasaliksik. Karaniwang nais mo ang isang async webserver upang makakuha ito ng live na pag-update ng data. Sa kabutihang palad mayroong isang silid-aklatan para doon. Hindi ako isang developer ng javascript, kaya't tinkered ako sa isang grupo ng mga charting at graphing library hanggang sa madapa ako sa mga chart ng smoothie. Karamihan sa iba pang mga library sa pag-chart ay nakasulat nang sa gayon ay minana nila ang lahat ng mga uri ng code mula sa iba pang mga aklatan mula sa buong web na dinamikong na-load kapag naibigay ang isang pahina. Nais kong gumana ito na malaya sa internet kaya't ito ay isang malaking paghahanap. Pangalawa kailangan itong maging maliit na sapat upang magkasya ito sa isang arduino at tulad ng nakikita mo sa code na umaangkop sa isang solong char array.

Mga deklarasyon ng Webserver: # isama ang AsyncTCP.h # isama ang ESPAsyncWebServer.h… AsyncWebServer server (80); // instantiate it and pick port (80 is standard for http)… server.on ("/", HTTP_GET, (AsyncWebServerRequest * request) {request-> send (200, "text / html", "… // ang webpage + ang smoothiecharts library sa isang malaking char array}); server.on ("/ val", HTTP_GET, (AsyncWebServerRequest * kahilingan) {// tinawag talaga ng unang pahina ang napakaliit na pahinang ito na nagbabalik lamang ng kahilingan sa halaga -> ipadala (200, "text / html", Sboost);}); server.begin ();

Hakbang 2: Hardware at Mga Kable

Hardware at Kable
Hardware at Kable
Hardware at Kable
Hardware at Kable
Hardware at Kable
Hardware at Kable

Makikita sa gallery ang dalawang sensor na ginagamit ko. Ang isang malaking kulay ng ginto ay isang sensor ng presyon ng langis ng Autometer 2242. Ang katawan at thread ng sensor na ito ay ground at ang terminal ay ang pagbabasa sa paglaban.

Magbibigay sa iyo ang Autometer ng isang curve ng paglaban sa presyon o paglaban sa temperatura para sa alinman sa kanilang mga sensor. Na-convert ko ito sa boltahe gamit ang isang voltage divider (tingnan ang diagram ng mga kable).

Ang MPX4250AP air pressure sensor ay may tatlong live na mga pin at maraming mga hindi nagamit na pin. Ang mga ito ay V sa, lupa, at output ng sensor. Nagpapalabas ito ng isang 0-5v na pagbabasa na maaaring mabasa ng microcontroller (o sa kaso ng mcu 0-3 volts na ito. Kaya, ang pagbasa ng sensor ay na-scale down gamit ang isang voltner divider.). Ang spec sheet para dito ay matatagpuan dito:

Mayroong maraming mga isyu sa pag-scale pababa mula sa 5v hanggang 3v na lohika. Sa aking kaso ginamit ko ang divider ng boltahe para sa pagiging simple at mayroon akong mga bahagi sa paligid ng aking workbench. Ipapakilala mo ang kaunting error sa mga pagbabasa batay sa posibleng error ng mga karagdagang sangkap (ang dalawang resistors). Maaari nitong gawing 10% ang iyong mga pagbasa sa ilang mga kaso. Mabubuhay ako dito. Kung hindi mo maaaring gusto mong gumamit ng isang opamp at resistors o isang converter ng antas ng lohika (magagamit mula sa iba't ibang mga vendor ng electronics. Ang Sparkfun ay mayroon dito: https://www.sparkfun.com/products/12009 Maaari akong lumipat dito bilang Nakakakuha ako ng matataas na pagbabasa minsan sa gauge na ito (sa katunayan ipinakita ko ang produktong ito sa aking diagram ng mga kable).

Pinagana ko ang ESP32's sa pamamagitan ng USB. Kasama dito ang mga kable ng isang direktang charger na tulad nito: https://www.amazon.com/gp/product/B00U2DGKOK/ref=p… sa kotse at pagkatapos ay gumagamit ng isang USB hub upang hatiin ito. Maaari mong makita na gumamit ako ng mga tamang anggulo na usb cable upang matiyak na ang lahat ay gumagana sa isang maliit na lugar (https://www.amazon.com/gp/product/B00ENZDFQ4/ref=p…).

Ipinapakita ng ibang mga larawan ang mga lugar na pinutol ko ang mga butas o nag-run wire. Ang bawat kotse ay magkakaiba. Gumamit ng pag-iingat, matalim ang mga kutsilyo at gunting, maaaring mapanganib ang kuryente kaya't mangyaring idiskonekta ang baterya bago mag-wire ang mga bagay.

Hakbang 3: 3D Naka-print na Pabahay

3D na naka-print na Pabahay
3D na naka-print na Pabahay

Gumamit ako ng maraming mga naka-print na 3D na bahay para dito.

  • Isang generic na malaking 2 screen round gauge. Maaari mo itong makita sa mga larawang ito ng unang pahina. Inilagay ko ito sa tabi ng aking orasan sa aking dash.
  • Isang solong-style ng gauge wedge na umaangkop sa lugar ng orasan ng isang subaru impreza (wrx, sti, atbp.) Mula sa tinatayang 2008 hanggang 2014.
  • Isang piraso ng dalang gauge na umaangkop sa mga haligi ng manibela at iba pang mga bahagyang bilugan na ibabaw:

Malugod kang kopyahin at baguhin ang mga ito upang magkasya sa iyong mga pangangailangan. Wala sa kanila ang perpekto at lahat sila ay mangangailangan ng kaunting pagsasaayos.

Ang ilang mga tala:

  • Natapos ko ang akin sa plastidip; ito ang ginustong pamamaraan ng tamad.
  • Ang pag-send ng mga plastik ay gumagawa ng mainam na maliit na butil na hindi mabuti para sa iyo, gumamit ng angkop na maskara.
  • Gumamit ako ng PETG para sa aking mga pabahay. Magaling din ang ABS. Ang PLA ay magbubulok sa mainit na araw sa isang dashboard.
IoT Hamon
IoT Hamon
IoT Hamon
IoT Hamon

Pangalawang Gantimpala sa IoT Hamon

Inirerekumendang: