Taula de continguts:
- Subministraments
- Pas 1: Codi primer / Maquinari segon
- Pas 2: maquinari i cablejat
- Pas 3: habitatge imprès en 3D
Vídeo: Indicadors de cotxes OLED ESP32 habilitats per Wifi: 3 passos (amb imatges)
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:13
Introduccions primer …
Construeix mesuradors de cotxes com una mena d’afició de tornada i apagada. Consulteu https://www.instructables.com/id/Remote-Car-Monit… i https://www.instructables.com/id/Remote-Car-Monit… per obtenir dos exemples més recents. M'agraden especialment les que es combinen amb les parts originals del cotxe. Per tant, per què és diferent i què em va inspirar a construir-lo? La resposta és dues coses:
1) ESP32: volia provar el nou noi del bloc, sobretot perquè la cadena d’eines basada en arduino és bastant madura. Una de les coses interessants que permet l’ESP32 és l’IOT amb les seves funcions integrades de wifi i bluetooth. La comunitat ha escrit diverses biblioteques per fer-ho una mica senzill (servidors web, AP’s, clients wifi, mDNS, etc., etc.).
2) Pantalles OLED barates: el 2007 vaig fer un indicador amb un TFT que estava al lloc del rellotge en un GD (2004-2007) WRX. Els TFT tenen diversos sabors. Alguns funcionen millor de nit, d’altres de dia, etc. Però cap d’ells funciona en totes les condicions. No em vaig adonar de l’error dels meus camins fins que un dels indicadors que vaig fer servir va ser inútil durant el dia assolellat de pista d’un membre del fòrum. Introduïu OLED, que és increïble per a aplicacions d’automoció. No són massa brillants a la nit i (el que és més important) són visibles en la majoria de les condicions del sol.
Es tracta d’un dos per un que es pot instruir, ja que ho vaig escriure tot per a dos indicadors de cotxe habituals, la pressió d’oli i la pressió turbo. Tots dos són essencialment el mateix: un petit indicador de factor de forma amb una pantalla OLED d'aspecte analògic animat amb números i màxims discrets. Tots dos també funcionen com a AP wifi i servidors web. Quan es connecta a ells mitjançant un ordinador o un telèfon mòbil, es pot veure un gràfic de tipus EKG en moviment (aquesta és la part una mica innovadora).
Subministraments
Mòdul HELTEC ESP32: obteniu la variant wifi
Parts específiques de pressió d’oli:
Sensor de pressió d’oli: he utilitzat un component de connexió del sensor de pressió d’oli automter 5222: varia segons el cotxe i la ubicació de la instal·lació. Consulteu manuals de servei, fòrums, tècniques, etc. i feu-ho correctament perquè no hi hagi fuites d’oli
Parts específiques de l'indicador d'augment:
- Sensor de pressió d'aire (només si voleu fer un manòmetre d'augment) -
- Mànega d'aire
- Accessoris T
Les biblioteques que he utilitzat eren indispensables:
Smoothiecharts - https://smoothiecharts.org/ Gràfics d'actualització en viu excel·lents i lleugers. Molt personalitzable i no depèn de fer referència a una biblioteca js en cap altre lloc d'Internet. Això permet una configuració de tipus "IOT local" i tota la biblioteca encaixa en una sola cadena per a la declaració del servidor web en codi.
ESPAsyncWebServer -https://github.com/me-no-dev/ESPAsyncWebServer- fa el que diu a la caixa i ho fa bé
Biblioteca de gràfics OLED de ThingPulse (de vegades anomenada biblioteca de squix) - https://github.com/ThingPulse/esp8266-oled-ssd130… - gràfics molt eficients i directes per als xips ESP. Em va permetre fer una programació mandrosa i continuar obtenint animacions convincents.
Eines / misc:
soldador: s’utilitza per fer llargues tirades de cables per als sensors, instal·lar capçaleres a bord, encongir-se, etc.
tornavís / endolls / altres eines per al cotxe: necessaris per instal·lar sensors al cotxe
cinta de doble cara: per instal·lar calibres a les carcasses i instal·lar carcasses al cotxe (la cola calenta i altres coses poden funcionar, però prefereixo la cinta de recobriment exterior de doble cara 3M. Es manté bé i es pot treure sense danyar les coses).
tisores: per a cinta i tall de tubs i llaços amb cremallera
tirants amb cremallera: per mantenir les coses juntes, agrupar cables sota el tauler i al compartiment del motor, mantenir els sensors al seu lloc, etc.
Pas 1: Codi primer / Maquinari segon
El codi es pot descarregar aquí:
Pressió d’oli:
Augmentar la pressió:
Augmenteu la pressió amb cares en lloc d’indicadors d’aspecte analògics:
Codi de gràfics: la biblioteca ThingPulse és tan eficaç que podeu dibuixar xbms els uns sobre els altres i obtenir resultats convincents.
Les imatges de calibre provenien realment d’un dipòsit de gràfics de codi obert (https://thenounproject.com/). L’artista Iconic, CY (https://thenounproject.com/icon/490005/).
He utilitzat gimp per generar 20 marcs diferents amb l’agulla apuntant a cada marca. Les icones de la cara somrient són de NOVITA ASTRI, ID i són aquí:
A continuació, els he convertit en matrius const uint8_t mitjançant aquesta tècnica (suggeriment: si els colors s’inverteixen quan els mostreu, només inverteu els colors de l’original): https://blog.squix.org/2015/05/esp8266- nodemcu-ho …
El codi d'animació en directe és força senzill:
- Obteniu la lectura des del sensor
- Lectura de l’escala (l’he fet de 1 a 1 per obtenir valors d’augment positiu i només mou l’agulla quan està en augment, no quan està al buit)
- Dibuixa xbm i després posa caràcters numèrics per a la resta.
- esbandida i repeteix
Codi del sensor: reutilitzo el codi del sensor que he utilitzat per a aquests dos sensors per a alguns altres projectes. Vaig afegir una mica de mitjana per allunyar-me dels sensors saltadors. Això inclou la lectura de cada "lectura" que suposa una mitjana de 5 lectures.
Codi d’augment (el sensor proporciona un valor analògic de 0-5 volts que l’ADC converteix en passos de 0-1024):
int getBoost () {float rboost = ((analogRead (36) + analogRead (36) + analogRead (36) + analogRead (36) + analogRead (36)) / 5); // Resultat flotant PSI = (rboost * (. 00488) / (. 022) +20) /6,89 - atmo; // sortida del / 6,89 per kpa flotant Resultat PSI = (((rboost / 4095) + 0,04) / 0,004) * 0,115 - atmo; // per 0.145 a calc psi // 4096 valors a esp32 / * rBoost = rBoost + 1; if (rBoost> = 20) {rBoost = 0; } * / return (ResultPSI); }
Codi de pressió d’oli (el sensor varia la seva resistència en funció de la pressió que detecta, de manera que cal un divisor de voltatge per convertir-lo en un voltatge de 0-5v. Vegeu: https://electronics.stackexchange.com/questions/3…https:/ /www.instructables.com/id/Remote-Car-Monito… (cap a la part inferior) per obtenir més informació):
int getOilPSI () {float psival = ((analogRead (36) + analogRead (36) + analogRead (36) + analogRead (36) + analogRead (36)) / 5); psival = -0,0601 * psival + 177,04 - 14,5; tornar psival; }
Funcionalitat de servidor web i AP: la funcionalitat AP és bastant senzilla: introduïu objectes AP i instantanis amb l’ESSID que vulgueu emetre i la contrasenya i esteu bé.
const char * ssid = "boost_gauge_ap"; const char * password = "contrasenya";
WiFi.softAP (ssid, contrasenya);
Fins i tot té un servidor DHCP, de manera que no us haureu de preocupar. De manera predeterminada, la IP és 192.168.1.4 (ni idea de per què, això és el que heu escollit). El bit del servidor web és una mica més complicat i requereix una mica d’investigació. Bàsicament voleu un servidor web asíncron perquè pugui obtenir dades d’actualització en directe. Per sort, hi ha una biblioteca per a això. No sóc un desenvolupador de javascript, de manera que vaig jugar amb un munt de biblioteques de gràfics i gràfics fins que vaig ensopegar amb gràfics de batuts. La majoria de les altres biblioteques de gràfics s’escriuen de manera que hereten tot tipus de codi d’altres biblioteques de tot el web que es carreguen dinàmicament quan es representa una pàgina. Volia que això funcionés independentment d'Internet, de manera que això va ser una gran troballa. En segon lloc, havia de ser prou petit perquè encaixés en un arduino i, com podeu veure al codi, encaixa en una única matriu de caràcters.
Declaracions del servidor web: #include AsyncTCP.h #include ESPAsyncWebServer.h … Servidor AsyncWebServer (80); // instancieu-lo i trieu el port (80 és estàndard per a http) … server.on ("/", HTTP_GET, (sol·licitud AsyncWebServerRequest *) {request-> send (200, "text / html", "… // la pàgina web + la biblioteca smoothiecharts en una enorme matriu de caràcters}); server.on ("/ val", HTTP_GET, (sol·licitud AsyncWebServerRequest *) {// la primera pàgina realment crida aquesta petita pàgina que només retorna la sol·licitud de valor -> enviar (200, "text / html", Sboost);}); server.begin ();
Pas 2: maquinari i cablejat
A la galeria apareixen els dos sensors que faig servir. El gran color daurat és un sensor de pressió d’oli Autometer 2242. El cos i el fil d’aquest sensor estan connectats a terra i el terminal té la resistència de lectura.
L’autòmetre us proporcionarà una corba de resistència a la pressió o resistència a la temperatura per a qualsevol dels seus sensors. Ho he convertit en tensió mitjançant un divisor de tensió (vegeu el diagrama de cablejat).
El sensor de pressió d’aire MPX4250AP té tres pins actius i diversos pins no utilitzats. Són sortida d'entrada V, terra i sensor. Emet una lectura de 0-5v que pot llegir el microcontrolador (o en aquest cas 0-3 volts mcu. Per tant, la lectura del sensor es redueix mitjançant un divisor de tensió). El full d’especificacions es pot trobar aquí:
Hi ha diversos problemes en reduir la lògica de 5v a 3v. En el meu cas, he utilitzat el divisor de tensió per simplicitat i tenia les parts al voltant del meu banc de treball. Introduireu una mica d’error a les lectures en funció del possible error dels components addicionals (les dues resistències). Això podria fer que les vostres lectures tinguin un 10% de descompte en alguns casos. Puc conviure amb això. Si no podeu, és possible que vulgueu utilitzar un opamp i resistències o un convertidor de nivell lògic (disponible a diversos proveïdors d’electrònica. Sparkfun en té un aquí: https://www.sparkfun.com/products/12009 Puc canviar-hi com De vegades tinc lectures elevades en aquest indicador (de fet, he mostrat aquest producte al meu diagrama de cablejat).
Vaig alimentar els ESP32 mitjançant USB. Això incloïa connectar un carregador directe com aquest: https://www.amazon.com/gp/product/B00U2DGKOK/ref=p… al cotxe i després utilitzar un concentrador USB per dividir-lo. Podeu veure que he utilitzat cables USB d’angle recte per garantir que tot funcioni en una àrea reduïda (https://www.amazon.com/gp/product/B00ENZDFQ4/ref=p…).
Altres fotos mostren llocs on vaig tallar forats o vaig fer filferro. Cada cotxe serà diferent. Aneu amb compte, els ganivets i les tisores són esmolades, l’electricitat pot ser perillosa, així que desconnecteu la bateria abans de connectar-la.
Pas 3: habitatge imprès en 3D
Per a això he utilitzat diversos allotjaments impresos en 3D.
- Un ample genèric de 2 pantalles rodones. Ho podeu veure en aquestes imatges de la primera pàgina. El vaig posar al costat del meu rellotge al tauler.
- Un estil de falca d’un sol calibre que s’adapta a la zona del rellotge d’un subaru impreza (wrx, sti, etc.) des del 2008 fins al 2014 aproximadament.
- Una peça de doble calibre que s’adapta a les columnes del volant i a altres superfícies lleugerament arrodonides:
Podeu copiar-los i modificar-los per adaptar-los a les vostres necessitats. Cap d’ells no és perfecte i tots necessitaran una mica d’ajust.
Algunes notes:
- Vaig acabar la meva amb plastidip; és el mètode preferit dels mandrosos.
- Lijar els plàstics produeix partícules fines que no us són bones, feu servir una màscara adequada.
- Vaig utilitzar PETG per a les meves cases. L’ABS també és bo. El PLA es deformarà sota el sol calent sobre un tauler de control.
Accèssit a l'IoT Challenge
Recomanat:
Indicadors de nivell d'aigua / alimentació: 10 passos (amb imatges)
Indicadors de nivell d’aigua / alimentació: en aquest instructiu us mostraré com he creat un indicador de nivell d’aigua sense fer servir microprocessadors, micro controladors, Raspberry Pi, Arduino, etc. Quan es tracta d’electrònica, sóc un " maniquí ". Faig servir alguns components electrònics
Interfície sense fils Bluetooth per a pinzas i indicadors Mitutoyo: 8 passos (amb imatges)
Interfície sense fils Bluetooth per a indicadors i indicadors Mitutoyo: actualment hi ha milions de calibradors, micròmetres, indicadors i altres dispositius Mitutoyo Digimatic al món. Molta gent com jo utilitza aquests dispositius per recopilar dades directament en un PC. Això elimina haver de registrar i escriure centenars de vegades
Feu habilitats Alexa amb Cloud9: no es requereix cap targeta de crèdit ni maquinari: 7 passos (amb imatges)
Feu habilitats Alexa amb Cloud9: no es requereix cap targeta de crèdit ni maquinari: hola, avui us mostraré com crear la vostra pròpia habilitat d’Amazon Alexa mitjançant Cloud9. Per a aquells que no ho sàpiguen, Cloud9 és un IDE en línia que admet molts idiomes i és gratuït al cent per cent; no requereix cap targeta de crèdit
Protecció universal (robatori) per a equips electrònics o cotxes amb interruptor invisible: 4 passos (amb imatges)
Protecció universal (antirobatori) per a equips electrònics o cotxes amb interruptor invisible: mostraré com podeu utilitzar un interruptor reed com a protecció universal per a equips electrònics o cotxes. Tot el que necessiteu és un interruptor de canya i un imant. Per als cotxes, necessitareu un relé de potència per augmentar la capacitat de commutació del commutador de canya. Una imatge
Llums indicadors d'estat del bany i interruptor automàtic: 4 passos (amb imatges)
Llums indicadors d'estat del bany i interruptor automàtic: aquest projecte utilitza interruptors de proximitat i relés per controlar un banc de llums indicadors. Els llums transmeten l’estat d’ocupació de dos banys. Problema: dos banys d'un sol usuari, en una casa d'estil dormitori, són compartits per diverses persones, però