Isi kandungan:

Alat Ukur Kereta OLED ESP32 Wifi Diaktifkan: 3 Langkah (dengan Gambar)
Alat Ukur Kereta OLED ESP32 Wifi Diaktifkan: 3 Langkah (dengan Gambar)

Video: Alat Ukur Kereta OLED ESP32 Wifi Diaktifkan: 3 Langkah (dengan Gambar)

Video: Alat Ukur Kereta OLED ESP32 Wifi Diaktifkan: 3 Langkah (dengan Gambar)
Video: Proyecto de heliostato Templastat / Templastat Heliostat Project: improvements, updates and test 2024, November
Anonim
Image
Image
Wifi diaktifkan OLED ESP32 Car Gauges
Wifi diaktifkan OLED ESP32 Car Gauges

Perkenalan terlebih dahulu…

Saya membina alat pengukur kereta sebagai hobi berulang-ulang. Lihat https://www.instructables.com/id/Remote-Car-Monit… dan https://www.instructables.com/id/Remote-Car-Monit… untuk dua contoh terkini. Saya sangat suka yang sesuai dengan bahagian asal kereta. Jadi, mengapa ini berbeza dan apa yang memberi inspirasi kepada saya untuk membinanya. Jawapannya adalah dua perkara:

1) ESP32 - Saya ingin mencuba anak baru di cip blok, terutamanya kerana rantai alat berasaskan arduino untuknya cukup matang. Salah satu perkara menarik yang diaktifkan oleh ESP32 adalah IOT dengan kemampuan wifi dan bluetooth terbina dalam. Komuniti telah menulis banyak perpustakaan untuk menjadikannya agak mudah (pelayan web, AP, klien wifi, mDNS, dll., Dll.).

2) Skrin OLED murah - Kembali pada tahun 2007 saya membuat pengukur menggunakan TFT yang berada di tempat jam pada GD (2004-2007) WRX. TFT terdapat dalam pelbagai rasa. Ada yang bekerja lebih baik pada waktu malam, ada yang bekerja dengan lebih baik pada waktu siang, dll. Tetapi tidak ada yang bekerja dalam semua keadaan. Saya tidak menyedari kesilapan cara saya sehingga salah satu alat pengukur yang saya gunakan tidak berguna semasa hari trek cerah ahli forum. Masukkan OLED, yang hebat untuk aplikasi automotif. Mereka tidak terlalu terang pada waktu malam dan (yang lebih penting) kelihatan dalam kebanyakan keadaan cahaya matahari.

Ini adalah petunjuk untuk dua kerana saya menulis semuanya untuk dua alat pengukur kereta biasa, tekanan minyak dan tekanan turbo. Kedua-duanya pada dasarnya sama: tolok faktor bentuk kecil dengan paparan OLED analog-beranimasi dengan bilangan diskrit dan maksimum yang dipaparkan. Kedua-duanya juga berfungsi sebagai wifi AP dan pelayan web. Apabila seseorang berhubung dengan mereka melalui komputer atau telefon bimbit, carta stail EKG bergerak dapat dilihat (ini adalah bahagian yang agak inovatif).

Bekalan

Modul HELTEC ESP32 - dapatkan varian wifi

Bahagian khusus Tekanan Minyak:

Sensor Tekanan Minyak - Saya menggunakan alat penyambung sensor tekanan minyak 5222 automator - ini berbeza mengikut kereta dan lokasi pemasangan. Sila baca manual servis, forum, mesin, dll dan lakukan dengan betul agar tidak ada kebocoran minyak

Bahagian tertentu tolok tolak:

  • Sensor tekanan udara (hanya jika anda ingin membuat tolok penguat) -
  • Hos udara
  • Kelengkapan T

Perpustakaan yang saya gunakan sangat diperlukan:

Smoothiecharts - https://smoothiecharts.org/ Carta kemas kini langsung yang sangat baik dan ringan. Sangat disesuaikan dan tidak bergantung pada merujuk perpustakaan js di tempat lain di internet. Ini memungkinkan untuk penyediaan jenis "local-IOT" dan seluruh perpustakaan sesuai dengan rentetan tunggal untuk penyataan pelayan web dalam kod!

ESPAsyncWebServer -https://github.com/me-no-dev/ESPAsyncWebServer- melakukan apa yang tertulis di kotak dan melakukannya dengan baik

Perpustakaan grafik ThingPulse OLED (kadang-kadang memanggil perpustakaan squix) - https://github.com/ThingPulse/esp8266-oled-ssd130… - grafik yang sangat cekap dan mudah untuk cip ESP. Membolehkan saya melakukan pengaturcaraan yang malas dan masih mendapat animasi yang meyakinkan.

Alat / misc:

solder - digunakan untuk membuat kabel panjang untuk sensor, memasang header di atas kapal, shrink shrink wrap, dll.

pemutar skru / soket / alat kereta lain - diperlukan untuk memasang sensor pada kereta

pita dua sisi - untuk memasang alat pengukur di perumahan dan memasang perumahan di dalam kereta (gam panas dan perkara lain mungkin berfungsi, tetapi saya lebih suka pita trim luaran dua sisi 3M. Ia berpegang teguh dan dapat ditarik tanpa merosakkan barang.)

gunting - untuk pita dan pemotongan tiub dan tali zip

ikatan zip - untuk menyatukan sesuatu, menyatukan wayar di bawah dash dan di ruang enjin, menahan sensor di tempat, dll.

Langkah 1: Kod Pertama / Perkakasan Kedua

Kod Pertama / Perkakasan Kedua
Kod Pertama / Perkakasan Kedua
Kod Pertama / Perkakasan Kedua
Kod Pertama / Perkakasan Kedua

Kod boleh dimuat turun di sini:

Tekanan Minyak -

Meningkatkan Tekanan -

Tingkatkan Tekanan dengan muka dan bukannya alat pengukur analog -

Kod grafik: Perpustakaan ThingPulse sangat cekap sehingga anda dapat menarik xbms satu sama lain dan mendapat hasil yang meyakinkan!

Imej pengukur sebenarnya berasal dari repositori grafik sumber terbuka (https://thenounproject.com/). Artis Ikon, CY (https://thenounproject.com/icon/490005/).

Saya menggunakan gimp untuk menghasilkan 20 bingkai yang berbeza dengan jarum menunjuk ke setiap tanda centang. Ikon wajah tersenyum oleh NOVITA ASTRI, ID dan ada di sini:

Kemudian saya mengubah semua ini menjadi tatasusunan uint8_t menggunakan teknik ini (petunjuk: jika warna terbalik semasa anda memaparkannya, ubah warna pada yang asal): https://blog.squix.org/2015/05/esp8266- nodemcu-ho…

Kod animasi langsung cukup mudah:

  • Dapatkan bacaan dari sensor
  • Pembacaan skala (saya menjadikannya 1 hingga 1 untuk nilai dorongan positif dan hanya menggerakkan jarum ketika berada dalam rangsangan bukan ketika berada dalam vakum)
  • Lukiskan xbm dan kemudian masukkan aksara nombor untuk yang lain.
  • bilas dan ulangi

Kod sensor: Saya menggunakan semula kod sensor yang telah saya gunakan untuk kedua-dua sensor ini untuk beberapa projek lain. Saya menambah rata-rata untuk menjauhkan diri dari sensor melompat. Ini termasuk membaca setiap "bacaan" yang rata-rata 5 bacaan.

Boost code (sensor memberikan val analog dari 0-5 volt yang mana ADC berubah menjadi langkah dari 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; // cuti /6.89 untuk kpa float ResultPSI = (((rboost / 4095) + 0.04) / 0.004) * 0.145 - atmo; // oleh 0.145 untuk mengira psi // 4096 nilai pada esp32 / * rBoost = rBoost + 1; jika (rBoost> = 20) {rBoost = 0; } * / pulangan (ResultPSI); }

Kod tekanan minyak (sensor mengubah rintangannya berdasarkan tekanan yang dirasakannya sehingga pembahagi voltan diperlukan untuk mengubahnya menjadi voltan dari 0-5v lihat: https://electronics.stackexchange.com/questions/3…https:/ /www.instructables.com/id/Remote-Car-Monito…(ke arah bawah) untuk maklumat lanjut):

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

Fungsi Pelayan Web dan AP: Fungsi AP cukup mudah - buat objek dan objek AP dengan ESSID yang anda mahu siarkan dan kata laluan dan anda boleh pergi.

const char * ssid = "boost_gauge_ap"; const char * kata laluan = "kata laluan";

WiFi.softAP (ssid, kata laluan);

Ia bahkan mempunyai pelayan DHCP sehingga anda tidak perlu risau. Secara lalai IP adalah 192.168.1.4 (tidak tahu mengapa, hanya itu yang dipilih). Pelayan web sedikit lebih sukar dan memerlukan sedikit kajian. Pada dasarnya anda mahukan pelayan web async sehingga dapat memperoleh data kemas kini secara langsung. Nasib baik ada perpustakaan untuk itu. Saya bukan pembangun javascript, jadi saya bermain-main dengan banyak pustaka grafik dan grafik sehingga saya tersandung pada carta smoothie. Sebilangan besar perpustakaan charting ditulis sedemikian rupa sehingga mewarisi semua jenis kod dari perpustakaan lain dari seluruh web yang dimuat secara dinamik ketika halaman diberikan. Saya mahu ini berfungsi bebas dari internet jadi ini adalah satu penemuan besar. Kedua, ia harus cukup kecil sehingga sesuai dengan arduino dan seperti yang anda lihat dalam kodnya sesuai dengan array char tunggal.

Perisytiharan pelayan laman web: #masuk AsyncTCP.h #masuk ESPAsyncWebServer.h… pelayan AsyncWebServer (80); // buat contoh dan pilih port (80 adalah standard untuk http)… server.on ("/", HTTP_GET, (AsyncWebServerRequest * request) {request-> send (200, "text / html", "… // // halaman web + perpustakaan chart smoothie dalam array char yang besar}); server.on ("/ val", HTTP_GET, (AsyncWebServerRequest * request) {// halaman pertama sebenarnya memanggil halaman yang sangat kecil ini yang hanya mengembalikan permintaan nilai -> hantar (200, "text / html", Sboost);}); server.begin ();

Langkah 2: Perkakasan dan Pendawaian

Perkakasan dan Pendawaian
Perkakasan dan Pendawaian
Perkakasan dan Pendawaian
Perkakasan dan Pendawaian
Perkakasan dan Pendawaian
Perkakasan dan Pendawaian

Bergambar di galeri adalah dua sensor yang saya gunakan. Yang berwarna emas besar adalah sensor tekanan minyak Autometer 2242. Badan dan benang sensor ini dibumikan dan terminal adalah bacaan dalam rintangan.

Autometer akan memberi anda lekukan daya tahan terhadap tekanan atau ketahanan terhadap suhu untuk mana-mana sensornya. Saya telah menukarnya kepada voltan menggunakan pembahagi voltan (lihat gambarajah pendawaian).

Sensor tekanan udara MPX4250AP mempunyai tiga pin hidup dan beberapa pin yang tidak digunakan. Mereka adalah output V, ground, dan sensor. Ia menghasilkan bacaan 0-5v yang dapat dibaca oleh mikrokontroler (atau dalam hal ini mcu 0-3 volt. Jadi, bacaan sensor diperkecil dengan menggunakan pembahagi voltan.). Lembaran spesifikasi boleh didapati di sini:

Terdapat beberapa masalah dalam pengurangan dari logik 5v ke 3v. Dalam kes saya, saya menggunakan pembahagi voltan untuk kesederhanaan dan saya mempunyai bahagian di sekitar meja kerja saya. Anda akan memasukkan sedikit kesalahan ke dalam pembacaan berdasarkan kemungkinan kesalahan komponen tambahan (dua perintang). Ini dapat menjadikan pembacaan anda diskaun 10% dalam beberapa kes. Saya boleh hidup dengan ini. Sekiranya anda tidak boleh, anda mungkin ingin menggunakan opamp dan perintang atau penukar tahap logik (tersedia dari pelbagai vendor elektronik. Sparkfun mempunyai satu di sini: https://www.sparkfun.com/products/12009 Saya boleh menukarnya sebagai Kadangkala saya mendapat bacaan yang tinggi pada ukuran ini (sebenarnya saya telah menunjukkan produk ini pada rajah pendawaian saya).

Saya menggerakkan ESP32 melalui USB. Ini termasuk memasang pengecas langsung seperti ini: https://www.amazon.com/gp/product/B00U2DGKOK/ref=p… ke kereta dan kemudian menggunakan hab USB untuk memisahkannya. Anda dapat melihat bahawa saya menggunakan kabel usb sudut tepat untuk memastikan semuanya berfungsi di kawasan kecil (https://www.amazon.com/gp/product/B00ENZDFQ4/ref=p…).

Foto-foto lain menunjukkan tempat saya memotong lubang atau mengikat wayar. Setiap kereta akan berbeza. Berhati-hati, pisau dan gunting tajam, elektrik boleh membahayakan, jadi lepaskan bateri sebelum memasang kabel.

Langkah 3: Perumahan Bercetak 3D

Perumahan Bercetak 3D
Perumahan Bercetak 3D

Saya telah menggunakan beberapa rumah bercetak 3D untuk ini.

  • Tolok bulat 2 skrin besar generik. Anda dapat melihatnya di gambar halaman pertama ini. Saya meletakkannya di sebelah jam di dash saya.
  • Gaya baji tolok tunggal yang sesuai dengan kawasan jam dari subaru impreza (wrx, sti, dll.) Dari sekitar 2008 hingga 2014.
  • Sekeping tolok dwi yang sesuai dengan tiang roda stereng dan permukaan lain yang sedikit bulat:

Anda dipersilakan untuk menyalin dan mengubahnya agar sesuai dengan keperluan anda. Tidak ada yang sempurna dan mereka semua memerlukan sedikit penyesuaian.

Beberapa nota:

  • Saya menyelesaikan tambang dengan plastidip; ia adalah kaedah pilihan orang yang malas.
  • Mengamplas plastik menjadikan partikulat halus yang tidak baik untuk anda, gunakan topeng yang sesuai.
  • Saya menggunakan PETG untuk tempat tinggal saya. ABS juga bagus. PLA akan melengkung di bawah terik matahari di papan pemuka.
Cabaran IoT
Cabaran IoT
Cabaran IoT
Cabaran IoT

Hadiah Kedua dalam Cabaran IoT

Disyorkan: