Taula de continguts:

ESP32 ADXL345 DATALOGGER AMB GPS_EXT RAM_EXT_RTC: 8 passos
ESP32 ADXL345 DATALOGGER AMB GPS_EXT RAM_EXT_RTC: 8 passos

Vídeo: ESP32 ADXL345 DATALOGGER AMB GPS_EXT RAM_EXT_RTC: 8 passos

Vídeo: ESP32 ADXL345 DATALOGGER AMB GPS_EXT RAM_EXT_RTC: 8 passos
Vídeo: Accelerometer sensor(ADXL345) with ESP32 2024, De novembre
Anonim
ESP32 ADXL345 DATALOGGER AMB GPS_EXT RAM_EXT_RTC
ESP32 ADXL345 DATALOGGER AMB GPS_EXT RAM_EXT_RTC
ESP32 ADXL345 DATALOGGER AMB GPS_EXT RAM_EXT_RTC
ESP32 ADXL345 DATALOGGER AMB GPS_EXT RAM_EXT_RTC
ESP32 ADXL345 DATALOGGER AMB GPS_EXT RAM_EXT_RTC
ESP32 ADXL345 DATALOGGER AMB GPS_EXT RAM_EXT_RTC

Per als que jugueu amb el tauler Wemos 32 LOLIN, vaig pensar que començaria a documentar algunes de les meves troballes fins ara.

El projecte actual és la interfície amb un acceleròmetre ADXL345 i, tal com es mostra a la foto, l'he connectat amb èxit al lolin i he configurat l'ADXL com a sensor de xoc.

Els registres de l’ADXL s’han configurat com el fitxer pdf adjunt i la interrupció que he configurat al codi per escopir el codi al port sèrie un cop detectat un xoc.

També he configurat el registre d'inactivitat com a interrupció i, després de comprovar quina interrupció s'ha activat, escup les mateixes dades.

Estic fent servir el port I2c del LOLIN i veureu que tinc una rutina per escopir els registres de l'ADXL perquè pugui comprovar la configuració mentre es depura. Aquesta funció s’executa en una funció de temporitzador mitjançant la biblioteca de marcadors. Aquesta és una funció útil per configurar per depurar i comprovar els registres en cas que hi escriviu alguna cosa que misteriosament faci que les dades facin coses estranyes.

He normalitzat les dades de compliment dels dos al LOLIN i els he formatat perquè es puguin importar a Excel.

Feu un cop d'ull al PDF adjunt amb algunes dades que he importat i he representat gràficament en Excel mostrant alguns tocs a l'ADXL que es desencadenen per una interrupció al registre de disparadors mitjançant el mode FIFO.

El mode FIFO és una característica útil que no lliga el micro i emmagatzema 32 mostres en un gatell. Torneu a mirar els abocaments de dades i podeu veure per on comencem a zero i l’última mostra és a 9,8 ms o aproximadament. La línia X del gràfic mostra el temps en microsecs que augmenta d’esquerra a dreta.

NOTA, DES DE QUÈ HE ESMENjat L’ÚLTIM GRÀFIC PER MOSTRAR EL TEMPS DE MÍNIM DE 9800 microsegments. El primer llançament de FIFO és la primera dada que la resta és més antiga. La visualització hauria de ser de dreta a esquerra.

Tingueu en compte els tres cables a la placa ADXL. SDA / SCL i l’INT de INT 1. Una vegada més, si observeu la configuració del registre i creueu el full de dades, tindrà sentit.

La mostra de dades és totalment inclinable a 3200 mostres, cosa que dóna 3125 segons entre una mostra i una captura prèvia de 4 mostres. Mireu el pdf de les dades del dispositiu en excel i cadascun dels gràfics que he representat mostrant-me movent la finestra de captura.

Vaig a posar un codi de la configuració i les interrupcions si algú està interessat.

Per a I2C estic utilitzant la biblioteca de cables i he escrit algunes funcions al voltant d'això.

Fixeu-vos en el petit sniffer de dades que he connectat a SDA / SDL i que amb Sigrok puc descodificar el bus I2C en temps real.

El següent pas és desar al disc SAN, tot i que ja he demostrat que funciona. Un cop fet això, em connectaré a la xarxa sense fils i la penjaré a un lloc web.

Hi afegiré més a mesura que el projecte s’ampliï.

NOTA DE PEU:

Per als observadors que hi hagi, observareu una gran abolladura a la llauna que protegeix el xip esp i un pont al pcb. Això s'ha degut al Cocker Spaniel resident que va inspeccionar el correu i va decidir mastegar el tauler abans de deixar-me tenir accés. Crec que no és una fan no expressiva !.

Per descomptat, com sempre, sempre estic pendent de preguntes, així que pregunteu.

Pas 1: SIGROK I PULSEVIEW

SIGROK I PULSEVIEW
SIGROK I PULSEVIEW
SIGROK I PULSEVIEW
SIGROK I PULSEVIEW

Només fer una menció ràpida de pulseview i sigrok.

Es tracta de programari gratuït de la xarxa i la petita placa d’interfície amb 8 entrades lògiques és barata a ebay et al. Notareu un parell d’imatges que vaig agafar del bus mentre funcionava l’ADXL i torna a ser tan útil per a la depuració té un descodificador incorporat per a I2C.

Un abast és ideal per comprovar els nivells de senyal, però la descodificació manual d'I2c és molesta, en el millor dels casos, tot i que he configurat un bucle abans i depurat manualment. Heu de tenir un reconeixement a la petita esclafada a nivell de port que he fet en molts projectes de fotos, però consumeix molt de temps i és propens a errors … sobretot a la nit!

Gràcies als nois que van escriure aquesta aplicació. És un enviament de Déu per a projectes en i2c, Tingueu en compte la línia D4 que controla la línia d’interrupció des de l’ADXL.

Pas 2: Afegir al sensor de xoc

Addició al sensor de xoc
Addició al sensor de xoc
Addició al sensor de xoc
Addició al sensor de xoc
Addició al sensor de xoc
Addició al sensor de xoc
Addició al sensor de xoc
Addició al sensor de xoc

Ok, aquí he afegit alguns perifèrics al sensor de xoc per demostrar el concepte.

Disculpeu el niu de les rates per ara un cop funcioni, dissenyaré el PCB que enllaça tots els components i ho posaré tot en una bonica caixa. Tots els elements adjunts, excepte la targeta SD, funcionen a l'i2c que es troba al bus spi.

Es deixa connectar el mòdul GPS que és WIP, però espero tenir una solució a finals d’aquesta setmana.

Per tant, el projecte actual consisteix en:

Taula ESP32 LOLIN amb connexió sense fils.

Rellotge en temps real PCF. Manté un seguiment de la data i l'hora actuals. He soldat en brut a un tauler de projecte antic que he gravat anteriorment.

Flash extern. Conté les dades de configuració de l’acceleròmetre, entre d’altres. Capacitat 132 k i pot bolcar-hi algunes dades web per facilitar els menús, etc.

Targeta SD SPI per emmagatzemar dades i registres de l’acceleròmetre de fitxers. 8 GB però es poden ampliar.

Pantalla OLED per mostrar menús i algunes coses més.

Això és el que farà [eventualment]

Superviseu els xocs i l'activitat que superen els antecedents.

Registre els xocs a la targeta SD amb hora i data des del rellotge incorporat.

Segmenteu la ubicació des del GPS a la targeta SD si és possible

Mitjançant un punt d’accés pengeu les dades a un servidor web per analitzar-les … pot ser un telèfon mòbil.

| L'exploració de punts d'accés és una capacitat del LOLIN32, ja que és allotjar un servidor web per obtenir comandes i connectar-se com a client al servidor web al núvol. Sempre podeu desconnectar la targeta SD i penjar-la.

Encara hi ha molt per fer, però continua.

Pas 3: ADREÇAMENT ADXL

ADREÇAMENT ADXL
ADREÇAMENT ADXL

Heus aquí una cosa divertida: he comprat el xip ADXL 345 com una petita placa perquè era més barat que adquirir un xip tot sol … com funciona això? De totes maneres, després vaig començar a connectar-lo al bus i2c i vaig trobar un xoc amb l'eeprom amb adreces que efectivament comencen a 0x53, que es tradueix en una escriptura a A6 i una lectura a A7.

Així que llegint el bumf resulta que si agafeu l’ADREÇA SDO / ALT HIGH el podeu forçar a 1D

Resulta que el meu tauler petit està connectat a terra al pin 12 de l’ADXL tot i el pin SDO que sembla que el pugueu pujar. No ho intenteu a casa sense una font d'alimentació limitada actual … per sort, el que em va provocar que tregués el multímetre i que comprovés el pas a terra.. Això funciona i et fa sortir del xoc de ball de final. Per sort, no van fer el curt sota el xip, o bé hauria estat snooker i hauria de treure el xip del tauler. L’EEprom, que és un recanvi dues pàgines de 64k com a adreça 0x52 i 53. Un cop fet això, el meu problema es va resoldre.

En tornar a llegir la pàgina web, diu que està definit com a 0x53, però està en lletra petita, així que vés amb compte!

Pas 4: Impressions esquemàtiques de PCB

Aquí teniu un recorregut ràpid pel circuit i els components. Aquest és molt el meu disseny i encara WIP [Work In Progress] L’esquema es va dissenyar i després es va traduir a la il·lustració de les pistes. He verificat que tots els components funcionen tal com s’esperava mitjançant el meu niu de rates s'aproxima i ara estic muntant sobre un tauler que s'adapta a una caixa petita [Detall a seguir]

Referint-se a shocker.pdf.

El tauler consta de 8 components principals

  1. EMMAGATZEMATGE DE TARGETES SD
  2. ACCELEROMMETRE ADXL
  3. MOSTRA OLED
  4. 3,3 V REG
  5. M MODDUL GPS1
  6. EEPROM
  7. TIMER RTC
  8. ESPIP LOLIN XIP AMB INTERFACCIÓ SENSE FILS

Tot depèn de l’acceleròmetre.

L’ADXL està configurat per interrompre el processador a INT1 que s’encamina al pin 14 del processador. El codi del micro està configurat per interceptar aquesta interrupció i establir un indicador que s’actua a la rutina principal. Afegiré el codi esbossant el registre de la rutina d’interrupcions i la funció de devolució de trucada més endavant.

L'ADXL admet interrupcions en diferents estats, com ara un xoc o la inactivitat més alguns altres. Podeu emmascarar els que us pessigolles en funció del que intenteu fer. L'ADXL funciona en mode FIFO de manera que emmagatzemi 32 mostres. per capturar l'esdeveniment de xoc com XYZ [96 valors]

Les pantalles ADXL RTC i EEPROM es condueixen des d'I2C. La targeta SD està connectada a la E / S SPI i el mòdul GPS es connecta als ports sèrie del LOLIN marcat X12 X11.

La seqüència és la següent: agafeu constantment les dades 232 de la unitat GPS i filtreu-les. Si teniu GPS Time vàlid, actualitzeu el RTC a intervals establerts. complement brut de format 2 i complement de no 2. Totes les dades estan delimitades per comes.

Tingueu en compte també que hi ha un pin de restabliment connectat al pin 13. Aquest pin iniciarà el servidor web integrat que us permetrà connectar-vos al configurador per configurar un punt d’accés que s’emmagatzemi a l’EEPROM. En reiniciar, el processador es connectarà al punt d’accés i accedirà a Internet per penjar fitxers des de la targeta SD. Si no hi ha dades i no hi ha cap punt de connexió, la unitat només realitza el procés de registre de dades a la targeta SD que podeu interrogar mitjançant el programa [ShockerView.exe] [WIP] Al servidor les dades s’emmagatzemen en una base de dades SQL i es mostren [WIP]

Les impressions de PCB s’adjunten a la part superior i inferior.

Pas 5: prototipus de gravat d'obres d'art

Prototip de gravat d’obres d’art
Prototip de gravat d’obres d’art
Prototip de gravat d’obres d’art
Prototip de gravat d’obres d’art
Prototip de gravat d’obres d’art
Prototip de gravat d’obres d’art

Heus aquí com produeixo els meus prototips

Imprimiu l'obra d'art sobre un paper de calç pesat. Utilitzo 63 GSM de ferrers, econòmic i alegre. La impressora és la clau aquí. El que voleu és el més opac i possible el més net possible. La impressora làser s’està posant en marxa ara, però és bo per imprimir fins a 10 milers de dòlars, menys que necessiteu material especialitzat a mesura que el gra del paper calixant comença a dificultar-se. Podeu comprar paper especialitzat, però vaja, és massa bo per a mi. De qualsevol manera, refino constantment els meus dissenys, de manera que resultaria massa car per a mi. Si necessiteu un consell adequat, demaneu als experts que ho facin.

Normalment faig un prototip dels meus taulers per seccions i després produeixo un final amb gerbers perquè una empresa d’Internet produeixi. El prototip resol tots aquests errors i omissions abans de cometre diners reals.

Després d'imprimir les imatges en dos fulls de traçat A4 separats, talleu-les de manera que les superposin i les vendin a la seva posició. Deixeu prou espai perquè el tauler de doble cara es pugui estendre entre les capes i assegureu-vos que la cara impresa estigui contra la placa base. Feu un parell de ranures per permetre lliscar les taules i vendre-les temporalment. Si teniu cura, podeu superposar la cinta adhesiva per permetre-la desenganxar-la sense destruir la imatge de seguiment.

Col·loqueu el tauler amb un costat cap avall a la caixa UV. NB: Vaig fer la meva amb quatre llums UV de 13W noves i alguns equips de control antics i vaig fer una caixa amb un panell de vidre transparent. L'espaiat era experimental. La tapa es retalla i exprimeix l’escuma a la part posterior del tauler forçant la màscara contra el vidre. Si no ho feu, la llum reduirà la resistència a l'etch. Enceneu i exposeu el tauler durant 1 minut 40 segons per costat. Utilitzeu el rellotge. De fet, he de modificar-lo amb un temporitzador … oh, no hi ha cap altre projecte … potser en compraré un … ja sabeu que no ho fareu! La resistència a l’etch de vegades és una mica irregular, però tinc algunes taules que tinc des de fa quatre anys i encara produeixen bones taules per prototipar.

Amb compte quan gireu el tauler, no el deixeu relliscar o tindreu una mica de brossa.

Ara prepara el desenvolupador. Faig servir 2 taps a 18: 1, de manera que són dos taps de revelador i 36 taps d’aigua de l’aixeta pura sense adulterar. El desenvolupador es presenta en forma d’ampolla o pols i una ampolla sol durar-me uns 6 anys !!. Barregeu-lo en un recipient de gelats I PORTEU GUANTS. No hi poseu els dits, ja que el greix afectarà. La temperatura pot ser un problema a l’hivern. Mantingueu l’aigua a 20 graus o per aquí, no és crític, però si fa fred, els resultats poden ser imprevisibles. Ho he fet al gener al meu garatge amb un bullidor d'aigua perquè pugueu compensar.

Mou suaument el contenidor d’un costat a l’altre un cop hi hagis posat el tauler, si ho has fet bé veuràs que un raig Magenta d’aiguafort es resisteix a retirar-se del coure revelant un encantador coure brillant entre les vies. Gireu-lo amb els guants per comprovar l’altre costat. Aquest procés normalment triga aproximadament un minut a la part superior, de manera que, quan estigui complet, traieu la taula i esbandiu-la bé amb aigua tèbia. Si és avorrit, és probable que falli.

Ho he tingut un parell de vegades, però normalment perquè no he utilitzat guants o la temperatura era massa baixa o he desordenat el temps d’exposició a causa d’una certa distracció … per què ho fan enmig d’alguna cosa crítica …

Mostra’m els teus aiguaforts

D’acord, doncs, ara teniu un tauler amb belles pistes verdes protegides per resistència a l’etch i ara necessiteu formar el clorur fèrric. Ara faig servir el mateix recipient de gelats per minimitzar els residus i barrejar les notes del paquet. Compro el clorur fèrric en paquets de boles que peseu i dissoleu en una solució. Feu-ne prou per omplir la tina de gelats aproximadament 1/3 de la pujada. Si componeu el suficient per a la feina, podeu abocar-ho en un recipient de plàstic i es mantindrà durant molt de temps.

HEM DE PORTAR GUANTS … no per greixos, sinó perquè si no teniu les mans taronja brillant durant quinze dies. Una vegada ho vaig fer abans d’una reunió important a Londres i semblava que m’havien tenyit. Utilitzeu roba vella perquè si s’hi posa queda escombrera. S’adhereix a les piques d’acer inoxidable i en general taca tot. Feu-ho fora o a fora de tot. No aboqueu les restes per les clavegueres, és ideal per matar bacteris, cosa que l’autoritat de l’aigua no voldria promoure a les seves fosses sèptiques. Per a algunes autoritats, això també és il·legal, així que no ho feu.

Quan submergiu el tauler per primera vegada en la solució, tindrà un bonic color vermell bronze a mesura que s’ataca el coure. Si no és així, és possible que tingueu una capa de resistència a etch que impedeixi que funcioni l'echantant o la vostra solució sigui incorrecta. Si aquest és el cas, torno a tornar al tauler de dibuix, però és probable que no estigueu equivocat si seguiu les destruccions.

De totes maneres, si tot està bé, teniu algunes pistes perfectes protegides per etch resist.

Normalment, en aquest punt, el professional utilitzava un conjunt de màscares per desenvolupar-se al voltant dels forats i coixinets i produir la via coure mitjançant més una pantalla de seda per pintar números de components, etc. utilitzar una mica de fil de coure de capa en capa … òbviament, la capa múltiple és un no, no per aquest mètode. Si estic d’humor, afegiré minuciosament números de components a la capa d’impressió per gravar-los també. Pot estalviar una mica de temps en el muntatge, però depèn de la ocupació de la junta.

Ara exposo les pistes durant uns altres 2 minuts aproximadament per banda i submergeixo al desenvolupador per eliminar tota la resistència a l’etch.

Ara perforo les vies i els forats passants i estanyo totes les vies i comprovo la continuïtat amb un multímetre. Aquesta part és un dolor de pilota i no ho faríeu normalment per una placa produïda per professionals amb autèntiques vies, però val la pena fer-la per evitar el cable via només estar soldat per un costat … va passar tantes vegades!

Pas 6: Muntatge de la Junta

Muntatge de la Junta
Muntatge de la Junta
Muntatge de la Junta
Muntatge de la Junta
Muntatge de la Junta
Muntatge de la Junta

D'acord, ara tinc una placa preparada i he perforat totes les vies i forats.

Enfileu totes les vies amb filferro i soldeu els dos costats. M'agrada estanyar totes les pistes com a protecció, no he de fer-ho, però atura l'oxidació del coure.

Vaig adjuntar la targeta sd que es munta a la superfície i hi vaig afegir dues terres per aconseguir una punta de soldadura i, a més, té un parell de pins a la part inferior per ancorar-la.

A continuació es va afegir la EEPROM ADXL, etc.

Potencialment, el pla és agafar el 5V de l’USB o el bat extern i alimentar-lo a través del reg de 3,3V a la placa. Tinc una mica de reg que he comprat a Ebay, que està muntat com a mòdul i té una potència de 800 mA … això és 300 gretaer del que USB pot proporcionar. Encara no he fet cap mesura de potència, ja que pot modificar el programari … pot utilitzar interrupcions INACTIVITY d'ADXL per tractar-les. [WIP]

… cal afegir imatges a mesura que avança la construcció.

Pas 7: CODIFICACIÓ

D'acord, no passaré per tots els arduino configurats, ja que algú ho ha fet molt millor en altres llocs.

Simplement aniré escollint els bits pertinents que podem utilitzar en un projecte propi.

Això encara està en curs pel que fa a la pujada al lloc web, però permet passar per part del codi.

La idea és que la funcionalitat normal sigui iniciar els dispositius que consisteixen en GPS / pantalla / targeta sd / rellotge en temps real / ext_flashmemory i acceleròmetre.

Després entrem en un bucle esperant a veure si es prem la tecla d'interrupció sw. Si és així, aneu al menú del configurador per configurar la xarxa wifi per iniciar sessió automàticament en un dispositiu especificat com a entrada al configurador de pàgines web. En primer lloc, escaneja tots els dispositius per trobar un ssid i, a continuació, us permet seleccionar-ne un i desar-lo al flash amb un indicador per indicar que en la propera arrencada carregueu els paràmetres des del flash. Sempre podeu anul·lar-ho introduint l’adreça IP i escrivint / killbill per iniciar una sortida neta del flash i carregar per defecte.

aquí teniu la funció d'interrupció definida al codi per a l'acceleròmetre adxl i el salt al configurador en dos pins separats. Estem fent servir la interrupció ADXL per interrompre l’esdeveniment SHOCK. Per a les dues interrupcions establim un indicador que es restableix al “bucle” principal. això és el que sembla:

mireu el codi adjunt

Pas 8: trobar pins SDL SCA

utilitzeu aquest codi:

Serial.println (SDA);

Serial.println (SCL);

imprimeix els pins actualment configurats a l'ESP per a SDL i SCL

Hi ha un fitxer que s’utilitza per assignar pins a funcions com ara ports sèrie a l’ESP32

Recomanat: