INHOUDSOPGAWE:
- Stap 1: SIGROK EN PULSEVIEW
- Stap 2: Voeg by die skok sensor
- Stap 3: ADXL ADRESSE
- Stap 4: Skematiese PCB -afdrukke
- Stap 5: Kunswerk -prototipe
- Stap 6: Die samestelling van die bord
- Stap 7: KODERING
- Stap 8: Soek SDA SCL -penne
Video: ESP32 ADXL345 DATALOGGER MET GPS_EXT RAM_EXT_RTC: 8 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:26
Vir die van julle daar buite wat met die Wemos 32 LOLIN -bord speel, het ek gedink ek sal 'n paar bevindings van my tot dusver begin dokumenteer.
Die huidige projek is om aan te sluit op 'n ADXL345 versnellingsmeter, en soos op die foto hierbo getoon, het ek dit suksesvol aan die lolin gekoppel en die ADXL as 'n skok sensor opgestel.
Die registers op die ADXL is opgestel as die aangehegte pdf en die onderbreking wat ek in die kode opgestel het om die kode op die seriële poort uit te spoeg sodra 'n skok bespeur word.
Ek het die onaktiwiteitsregister ook as 'n onderbreking opgestel en nadat ek gekyk het watter onderbreking veroorsaak is, spoeg ek dieselfde data uit.
Ek gebruik die I2c -poort op die LOLIN, en u sal sien dat ek 'n roetine het om die registers op die ADXL uit te spoeg, sodat ek die konfigurasie kan nagaan tydens ontfouting. Hierdie funksie werk in 'n timerfunksie met behulp van die tickerbiblioteek. Dit is 'n nuttige funksie om op te spoor en die registers na te gaan as u iets daar skryf wat die data op 'n geheimsinnige manier vreemde dinge laat doen.
Ek het die 2 se komplimentdata in die LOLIN genormaliseer en dit geformateer sodat dit in Excel ingevoer kan word.
Kyk na die aangehegte PDF met 'n paar data wat ek ingevoer het, en ek het 'n grafiek van Excel met 'n paar krane op die ADXL wat veroorsaak word deur 'n onderbreking in die snellerregister in die FIFO -modus.
Die FIFO -modus is 'n nuttige funksie wat die mikro nie bind nie en dit stoor 32 monsters op 'n sneller. Kyk weer na my data -stortings, en u kan sien waar ons by grondnul begin en die laaste steekproef is ongeveer 9.8ms of daar. X -lyn op die grafiek toon die tydsberekening in mikrosekondes wat van links na regs toeneem.
LET WEL: EK HET SEDERT DIE LAASTE GRAFIE GEWYSIG OM 'N TYDLYN VAN MINUS 9800 mikrosek te wys. Die eerste pop van FIFO is die vroegste data, die res is ouer. Die aansig moet van regs na links wees.
Let op die drie drade na die ADXL -bord. SDA/SCL en die INT van INT 1. As u weer na die registerinstellings kyk en die datablad kruis, sal dit sinvol wees.
Datamonster is ten volle kantel na 3200 monsters, wat 3125 sekondes tussen monsters gee. En 'n voorafopname van 4 monsters. Kyk na die pdf van die data van die Excel -toestel en elk van die grafieke wat ek geteken het, wys hoe ek die venster van opname beweeg.
Ek sal 'n kode van die config opsit en onderbreek as iemand belangstel.
Vir I2C gebruik ek die draadbiblioteek en het ek 'n paar funksies daaroor geskryf.
Let op die klein gegewens wat ek aan SDA/SDL gekoppel het en met Sigrok kan ek die I2C -bus intyds dekodeer.
Die volgende stap is om op SAN -skyf te stoor, alhoewel ek al bewys het dat dit werk. Sodra dit klaar is, skakel ek na die draadlose en laai dit op na 'n webwerf.
Ek sal hierby voeg namate die projek uitbrei.
VOETNOTE:
Vir die oplettendes daar buite sal u 'n groot duik in die blik sien wat die esp -chip beskerm en 'n trui op die printplaat. Dit was te wyte aan die inwonende Cocker Spaniel wat die pos nagegaan het en besluit het om die bord te kou voordat ek toegang daartoe kon kry. Ek dink sy is 'n nie -espressif fan!
Natuurlik, soos altyd, is ek altyd op soek na vrae, so vra asb.
Stap 1: SIGROK EN PULSEVIEW
Net 'n vinnige melding van pulseview en sigrok.
Dit is gratis sagteware van die internet en die klein koppelvlakbord met 8 logiese insette is goedkoop van ebay et al. U sal 'n paar beelde sien wat ek uit die bus gryp terwyl die ADXL loop, en dit is weer so handig om te ontfout het 'n ingeboude dekodeerder vir I2C.
'N Reikwydte is baie goed vir die kontrole van seinvlakke, maar die hand -ontsyfering van I2c is op sy beste vermoeiend, alhoewel ek voorheen 'n lus opgestel het en met die hand ontfout het. U moet 'n waardering hê vir 'n bietjie gebons op hawe -vlak, wat ek by baie foto -projekte gedoen het, maar dit is tydrowend en vatbaar vir foute … veral snags!
Dankie aan die ouens wat hierdie app geskryf het. Dit is 'n god stuur vir projekte in i2c, Let op die D4 -lyn wat die onderbrekingslyn vanaf die ADXL monitor.
Stap 2: Voeg by die skok sensor
Ok, ek het 'n paar randapparatuur by die skoksensor gevoeg vir 'n bewys van die konsep.
Verskoon die rotte nes vir eers as dit werk, sal ek die PCB ontwerp wat alle komponente verbind en dit in 'n mooi boks sit. Alle aangehegte items behalwe die SD -kaart werk op i2c wat op die spi -bus is.
Die GPS -module is WIP, maar ek hoop om teen die einde van hierdie week 'n oplossing te hê.
Die huidige projek bestaan dus uit:
ESP32 LOLIN -bord met draadloos.
PCF real time klok. Hou die huidige datum en tyd dop. Ek het grof gesoldeer op 'n ou projekbord wat ek voorheen geëts het.
Eksterne flits. Bevat onder meer opstellingsdata vir versnellingsmeter. Kapasiteit 132k en kan 'n paar webdata daarop gooi om spyskaarte ens te vergemaklik
SPI SD -kaart om data en logboeke vir lêerversnelling te stoor. 8 GB, maar kan uitgebrei word.
OLED -skerm om spyskaarte en 'n paar ander dinge te wys.
Hier is wat dit [uiteindelik] sal doen
Monitor skokke en aktiwiteite wat die agtergrond oorskry.
Registreer die skokke op die SD -kaart met die tyd en datum vanaf die ingeboude klok.
Stempel die ligging van GPS na SD -kaart indien moontlik
Laai die data op met 'n toegangspunt na 'n webbediener om die data te ontleed … dit kan 'n selfoon wees.
| Om toegangspunte te soek, is die vermoë van die LOLIN32, net soos om 'n webbediener vir opdragte te huisves en dan as kliënt aan te sluit by die wolkwebbediener. U kan die sd -kaart altyd ontkoppel en dit oplaai!
Nog baie om te doen, maar dit gaan aan.
Stap 3: ADXL ADRESSE
Hier is 'n snaakse ding. Ek het die ADXL 345 -chip gekoop as 'n klein bordjie, want dit was goedkoper as om 'n chip op sy eie te koop … hoe werk dit? In elk geval, daarna het ek dit gaan aansluit by die i2c -bus en gevind dat ek 'n botsing met die eeprom gehad het met adresse wat effektief begin by 0x53, wat beteken dat dit by 'n skryf op A6 en 'n voorlesing by A7 gelees het.
As u die bumf lees, blyk dit dat as u die SDO/ALT -ADRES HOOG neem, u dit tot 1D kan dwing
Dit blyk dat my bordjie vasgemaak is op pen 12 van die ADXL ten spyte van die SDO -pen, wat lyk asof u dit hoog kan trek. Moet dit nie tuis probeer sonder 'n beperkte kragtoevoer nie. Gelukkig het ek die multimeter uitgehaal en die pen na die grond gekontroleer.. Dit werk en kry jou uit die prom botsing. Gelukkig het hulle nie die kort onder die chip gedoen nie, anders sou ek snoeker gewees het en die chip van die bord moes verwyder. Die EEprom wat ek het, is as twee bladsye van 64k as adres 0x52 en 53. Sodra ek dit gedoen het, is my probleem opgelos.
As u die webblad weer lees, word die stel op 0x53 gestel, maar in die klein lettertjies, let op!
Stap 4: Skematiese PCB -afdrukke
Hier is 'n vinnige deurloop van die kring en komponente. Dit is baie my ontwerp en nog steeds WIP [Werk aan die gang] Die skematiese ontwerp is ontwerp en dan vertaal in die kunswerke vir die snitte. Ek het geverifieer dat al die komponente funksioneer soos verwag met behulp van my rotte nes en kom nou bymekaar op 'n bord wat in 'n klein boksie pas [Detail volg]
Verwys na shocker.pdf.
Die bord bestaan uit 8 hoofkomponente
- SD KAARTBERGING
- ADXL ACCELEROMETER
- WYS OLED
- 3.3 V REG
- GPS1 MODULE
- EEPROM
- TIMER RTC
- ESP32 LOLIN CHIP MET RF DRAADLOZE Koppelvlak
Alles hang af van die versnellingsmeter.
Die ADXL is opgestel om die verwerker op INT1 te onderbreek, wat na pin 14 op die verwerker gestuur word. uiteensetting van die registrasie van die onderbreekroetine en die terugbelfunksie later.
Die ADXL ondersteun onderbrekings in verskillende toestande, soos 'n skok of onaktiwiteit, plus 'n paar ander. U kan diegene wat u wil prikkel, masker, gebaseer op wat u probeer doen. Die ADXL word in FIFO -modus bedryf, sodat dit 32 monsters stoor om die skokgebeurtenis as XYZ vas te lê [96 waardes]
Die skerm ADXL RTC en EEPROM is almal aangedryf vanaf I2C. Die SD CARD is gekoppel aan die SPI I/O en die GPS -module is gekoppel aan die seriële poorte op die LOLIN gemerk X12 X11.
Die volgorde is soos volg Gryp konstant die 232 data van die GPS -eenheid af en filter. Terwyl u 'n geldige GPS -tyd het, moet u die RTC op 'n vaste tydstip opdateer. Onderbreek die winkelveranderlikes na die SD -kaart, soos tyd/Lat_Lng/Spoed/Hoogte/winkel ADXL -registers in ruwe formaat 2 se kompliment en nie 2 se kompliment. Alle data is deur kommas afgebaken.
U sal ook opmerk dat daar 'n resetpen is wat aan pin 13 gekoppel is. Hierdie pin sal die ingeboude webserver begin sodat u met die konfigurator kan koppel om 'n toegangspunt op te stel wat in die EEPROM gestoor is. By herlaai verbind die verwerker met die toegangspunt en maak toegang tot die internet om lêers vanaf die SD -kaart op te laai. die program [ShockerView.exe] [WIP] Op die bediener word die data in 'n SQL -databasis gestoor en [WIP] vertoon
Die PCB -afdrukke word aangeheg vir bo en onder.
Stap 5: Kunswerk -prototipe
Hier is hoe ek my prototipe borde vervaardig
Druk die kunswerk op 'n paar swaar papier. Ek gebruik 63 GSM van smede, goedkoop en vrolik. Die drukker is hier die sleutel. U wil so ondeursigtig as moontlik en so skoon as moontlik wees. My laserprinter is nou aan die gang, maar dit is goed om af te druk tot 10 duisend, minder as dat u 'n spesialisuitrusting nodig het, aangesien die korrel van die naspeurpapier in die pad val. U kan spesialispapier koop, maar dit is te goed vir mense soos ek. Ek verfyn my ontwerpe voortdurend, sodat dit vir my klein kind te duur sal wees. As u 'n behoorlike bord benodig, vra die kundiges om dit te doen.
Ek prototipeer normaalweg my planke in afdelings en vervaardig dan 'n finale met gerbers vir 'n internetonderneming om te vervaardig. Die prototipe sorteer al die foute en weglatings voordat ek regte geld begaan.
Nadat u die beelde op twee aparte A4 -velle opgedruk het, het u dit afgesny sodat dit beide oor mekaar lê en dit in plak verkoop. laat genoeg ruimte sodat u dubbelblad tussen die lae kan druk en maak seker dat die gedrukte kant teen die print is. Maak 'n paar splete sodat u die planke kan inskuif en dit tydelik kan plak. As u versigtig is, kan u die verkoopband oorvleuel sodat u dit kan verwyder sonder om die opsporingsbeeld te vernietig.
Plaas die bord met die een kant na onder in u UV -boks. LET WEL: ek het myne gemaak met vier nuwe 13W UV -lampe en 'n paar ou kontroletoerusting en 'n boks met 'n deurskynende glaspaneel gemaak. Spasiëring was eksperimenteel. Die deksel knyp vas en druk die skuim aan die agterkant van die bord vas en dwing die masker teen die glas. As u dit nie doen nie, onderbreek die lig die etsweerstand. Skakel aan en stel die bord bloot vir 1 minuut 40 sekondes aan elke kant. Gebruik jou horlosie. Eintlik moet ek dit aanpas met 'n timer daarop … nee, 'n ander projek … miskien koop ek een … jy weet dat jy dit nie sal doen nie! Die borde wat ek by Mega Electronics koop, is die goedkoop prototipe met etsweerstand. Die etsweerstand is soms 'n bietjie taai, maar ek het 'n paar borde wat ek al vier jaar gehad het, en dit lewer nog steeds goeie borde vir prototipering !!
Wees versigtig as u die bord omdraai, moenie dit laat gly nie, anders sal u rommel hê.
Berei nou u ontwikkelaar voor. Ek gebruik 2 doppies om 18: 1, dus twee doppies ontwikkelaar en 36 doppies suiwer onvervalste kraanwater. Ontwikkelaar kom in 'n bottel- of poeiervorm, en 'n bottel hou gewoonlik ongeveer 6 jaar !! Meng dit in 'n roomyshouer en dra handskoene. Moenie u vingers daarin steek nie, anders beïnvloed die vet dit. Temperatuur kan in die winter 'n probleem wees. Hou die water op ongeveer 20 grade, dit is nie kritiek nie, maar as dit koud is, kan die resultate onvoorspelbaar wees. Ek het dit in Januarie in my motorhuis met 'n ketel gedoen, sodat u kan vergoed.
Beweeg die houer liggies van kant tot kant sodra u die bord daarin geplaas het. As u dit reg gedoen het, sien u 'n Magenta -stroom etsweerstand wat uit die koper verwyder word en 'n pragtige blink koper tussen die spore onthul. Draai dit om met u handskoene om die ander kant te kontroleer. Hierdie proses duur gewoonlik ongeveer 'n minuut, dus neem die bord uit en spoel dit deeglik met warm water. As dit dof is, is die kans nie moontlik nie.
Ek het dit al 'n paar keer gehad, maar dit is gewoonlik omdat ek nie handskoene gedra het nie of die temperatuur te laag was, of ek die blootstellingstyd deurmekaar gemaak het weens 'n afleiding … waarom doen hulle dit te midde van iets krities …
Wys my u etse
Ok, nou het u 'n bord met pragtige groen bane beskerm deur etsweerstand en moet u nou die Ferric Chloride opmaak. Nou gebruik ek dieselfde roomyshouer om afval te verminder en meng tot by die aantekeninge op die pakkie. Ek koop die Ferric Chloride in pakkies balle wat jy weeg en in 'n oplossing oplos. Maak genoeg om die roomysbak ongeveer 1/3 van die pad op te vul. As jy net genoeg opmaak vir die taak, kan jy dit in 'n plastiekhouer gooi en dit sal lank bly.
U MOET HANDSKOENE dra … nie as gevolg van vet ens nie, maar as u dit nie doen nie, sal u hande vir twee weke helder oranje wees. Ek het dit een keer gedoen voor 'n belangrike ontmoeting in Londen, en dit het gelyk asof ek in 'n tango was, maar wees bewus dat hierdie dinge vieslik is oor alles wat koper is … Dra ou klere, want as dit op hulle kom, word dit in die asblik gegooi. Dit heg aan wasbakke van vlekvrye staal en vlek gewoonlik alles. Doen dit buite of in 'n buitekamer weg van alles. Moenie die oorblyfsels in die riool gooi nie, dit is baie goed om bakterieë dood te maak, wat nie die waterowerheid in hul septiese tenks wil bevorder nie. Vir sommige owerhede is dit ook onwettig, so moenie dit doen nie.
As u die bord eers in die oplossing doop, sal dit 'n pragtige rooi brons kleur kry as die koper aangeval word. As dit nie die geval is nie, het u moontlik nog steeds 'n laag etsweerstand wat verhoed dat die etser werk, of u oplossing is verkeerd. As dit die geval is, dan is ek terug na die tekenbord, maar ek is onwaarskynlik dat u etser verkeerd is as u die vernietigings gevolg het.
In elk geval, as alles goed is, het u 'n paar perfekte snitte beskerm deur etsweerstand.
Normaalweg sou die professionele persoon op hierdie stadium 'n stel maskers gebruik om rondom die gate en kussings te ontwikkel en via koper te vervaardig, en 'n syskerm te gebruik om komponentgetalle ens te skilder. met behulp van 'n paar koperdraad van laag tot laag … natuurlik is multi -laag 'n nee nee deur hierdie metode. As ek in die bui is, sal ek komponentgetalle noukeurig by die afdruklaag voeg, sodat u ook die komponentgetalle kan ets. Dit kan tyd bespaar, maar hang af van hoe besig die bord is.
Ek stel nou die snitte bloot vir nog 2 minute per kant en duik in die ontwikkelaar om al die etsweerstand te verwyder.
Ek boor nou die vias en enige deurgate en maak al die spore vas en kontroleer die kontinuïteit met 'n multimeter. Hierdie deel is 'n balpyn, en u sou dit normaalweg nie doen vir 'n professionele bord met ware vias nie, maar dit is die moeite werd om die deurdraad te vermy. net aan die een kant gesoldeer is … het soveel keer gebeur!
Stap 6: Die samestelling van die bord
OK, so nou het ek 'n bord gereed om te gaan en ek het al die vias en deur gate geboor.
Ryg al die vias met draad en soldeer beide kante. Ek hou daarvan om al die spore te blik, omdat dit nie nodig is om dit te beskerm nie, maar dit keer dat die koper oksideer.
Ek het die SD -kaart wat op die oppervlak gemonteer is, aangeheg en twee lande bygevoeg om soldeer te kry, plus 'n paar penne aan die onderkant om dit vas te anker.
Voeg vervolgens die ADXL EEPROM, ens.
Kragtig is die plan om die 5V van die USB of eksterne bat te neem en dit deur die 3.3V reg op die bord te voer. as wat USB kan voorsien. Ek het nog geen kragmetings gedoen nie, aangesien sagteware moontlik aangepas kan word … kan die INAKTIWITEIT onderbreking van ADXL gebruik. [WIP]
… moet foto's byvoeg namate die bou vorder.
Stap 7: KODERING
OK, ek gaan nie deur al die arduino's nie, want iemand anders het dit elders baie beter gedoen.
Ek sal eers die relevante stukke kies wat in 'n eie projek gebruik kan word.
Dit is nog steeds aan die gang, sover dit oorweeg word om op te laai na die webwerf, maar laat ons deur die kode gaan.
Die idee is dat die normale funksionaliteit die toestelle is wat bestaan uit GPS /display /sd -kaart /intydse klok /ext_flashmemory en versnellingsmeter.
Daarna gaan ons 'n lus binne en wag om te sien of die onderbreek -toets sw ingedruk word. As dit dan na die konfigurasiekieslys gaan, kan die wifi -netwerk gekonfigureer word om outomaties aan te meld op 'n toestel wat as 'n invoer van die webbladsy -konfigurator gespesifiseer is. Eerstens skandeer dit alle toestelle vir 'n ssid en laat u dan een kies en stoor dit om te flits met 'n vlag om aan te dui dat die volgende instellings vanaf flits laai. U kan dit altyd ignoreer deur die ipaddress in te voer en te tik /killbill om 'n skoonmaak van die flits te begin en die standaard te laai.
hier is die onderbrekingsfunksie gedefinieer in die kode vir die adxl -versnellingsmeter en die sprong na die konfigurator op twee afsonderlike penne. Ons gebruik die ADXL interrupt om te onderbreek by SHOCK event. For beide interrupts stel ons 'n vlag wat in die hoof "lus" herstel word. so lyk dit:
kyk na die aangehegte kode
Stap 8: Soek SDA SCL -penne
gebruik hierdie kode:
Serial.println (SDA);
Serial.println (SCL);
druk die penne uit wat tans in die ESP vir SDL en SCL gekonfigureer is
Daar is 'n lêer wat gebruik word vir die kartering van penne na funksies soos seriële poorte in die ESP32
Aanbeveel:
GPS -datalogger: 7 stappe (met foto's)
GPS Cap Data Logger: Hier is 'n wonderlike naweekprojek, as u op stap is of lang fietstogte wil neem, en 'n GPS -datalogger benodig om tred te hou van al u trekke/ritte wat u geneem het … Sodra u die bou voltooi het en het die data afgelaai van die GPS -module van die tr
DIY GPS -datalogger vir u volgende rit/staproete: 11 stappe (met foto's)
DIY GPS -datalogger vir u volgende rit/staproete: dit is 'n GPS -datalogger wat u vir verskeie doeleindes kan gebruik, sê as u die langrit wat u die naweek geneem het, wil aanteken om na die herfskleure te kyk. of het u 'n gunsteling roete wat u elke jaar tydens die herfs besoek en u
3-as versnellingsmeter, ADXL345 met framboos Pi met behulp van Python: 6 stappe
3-as versnellingsmeter, ADXL345 met framboos pi met behulp van python: dink aan 'n gadget wat die punt kan bepaal waarheen u offroader gekantel word om te vertoef. Sou dit nie aangenaam wees as iemand aangepas word as daar 'n kans is om om te keer nie? Duidelik ja. Dit sou waar wees
Alaska Datalogger: 5 stappe (met foto's)
Alaska Datalogger: Alaska is aan die rand van klimaatsverandering. Die unieke posisie dat dit 'n taamlik onaangeraakte landskap met 'n verskeidenheid kanarie -kanaries het, bied baie navorsingsmoontlikhede. Ons vriend Monty is 'n argeoloog wat help met
Maak 'n datalogger met die Raspberry Pi: 3 stappe (met foto's)
N Datalogger maak met die Raspberry Pi: Hierdie eenvoudige datalogger neem gereelde ligmetings met 'n analoog LDR (fotoresistor) en stoor dit in 'n tekslêer op u Raspberry Pi. Hierdie datalogger meet elke 60 sekondes die ligvlak en teken dit op, sodat u die