Innehållsförteckning:

ESP32 ADXL345 DATALOGGER MED GPS_EXT RAM_EXT_RTC: 8 steg
ESP32 ADXL345 DATALOGGER MED GPS_EXT RAM_EXT_RTC: 8 steg

Video: ESP32 ADXL345 DATALOGGER MED GPS_EXT RAM_EXT_RTC: 8 steg

Video: ESP32 ADXL345 DATALOGGER MED GPS_EXT RAM_EXT_RTC: 8 steg
Video: ESP32 - Vibration Data Logger (Fourier Transform) 2024, Juli
Anonim
ESP32 ADXL345 DATALOGGER MED GPS_EXT RAM_EXT_RTC
ESP32 ADXL345 DATALOGGER MED GPS_EXT RAM_EXT_RTC
ESP32 ADXL345 DATALOGGER MED GPS_EXT RAM_EXT_RTC
ESP32 ADXL345 DATALOGGER MED GPS_EXT RAM_EXT_RTC
ESP32 ADXL345 DATALOGGER MED GPS_EXT RAM_EXT_RTC
ESP32 ADXL345 DATALOGGER MED GPS_EXT RAM_EXT_RTC

För er där ute som lekte med Wemos 32 LOLIN -brädet trodde jag att jag skulle börja dokumentera några av mina fynd hittills.

Nuvarande projekt är att ansluta till en ADXL345 -accelerometer och som bilden visar ovan har jag lyckats ansluta den till lolin och konfigurerat ADXL som en chocksensor.

Registren på ADXL har konfigurerats som bifogad pdf och avbrottet har jag konfigurerat i koden för att spotta ut koden på serieporten när en chock detekteras.

Jag ställde också in inaktivitetsregistret som ett avbrott och efter att ha kontrollerat vilket avbrott som har utlösts spottade jag ut samma data.

Jag använder I2c -porten på LOLIN och du kommer att se att jag har en rutin för att spotta ut registren på ADXL så att jag kan kontrollera konfigurationen när jag felsöker. Denna funktion körs i en timerfunktion med hjälp av tickerbiblioteket. Detta är en användbar funktion för att ställa in för felsökning och kontroll av registren om du skriver något där som mystiskt gör att data gör några konstiga saker.

Jag har normaliserat 2: s komplimentsdata i LOLIN och formaterat den så att den kan importeras till excel.

Ta en titt på den bifogade PDF -filen med några data jag har importerat och jag har grafat i excel som visar några kranar på ADXL som utlöses av ett avbrott i utlösarregistret med FIFO -läge.

FIFO -läget är en användbar funktion som inte knyter ihop mikrofonen och den lagrar 32 prover på en utlösare. Titta igen på mina datadumpar så kan du se var vi börjar vid marknoll och det sista urvalet är på 9,8 ms eller där ungefär. X -rad på grafen visar timingen i mikrosekunder som ökar från vänster till höger.

OBS Jag har sedan ändrat den senaste grafen för att visa tidslinje från 9800 mikrosekunder. Första pop av FIFO är den tidigaste informationen resten är äldre. Vyn ska vara från höger till vänster.

Notera de tre ledningarna till ADXL -kortet. SDA/SCL och INT från INT 1. Återigen om du tittar på registerinställningarna och korsar databladet kommer det att vara meningsfullt.

Dataprovet är fullt tiltat vid 3200 samplingar vilket ger 3125 usekunder mellan proverna. Och en pre -capture av 4 prover. Titta på pdf -filen för data från enheten i excel och var och en av graferna som jag har ritat visar mig flytta fönstret för fångst.

Jag lägger upp en kod för konfigurationen och avbryter om någon är intresserad.

För I2C använder jag trådbiblioteket och har skrivit några funktioner kring det.

Lägg märke till den lilla datasniffer som jag har anslutit till SDA/SDL och med Sigrok kan jag avkoda I2C -bussen i realtid.

Nästa steg är att spara till SAN -disk även om jag redan har bevisat att det fungerar. När det är klart kommer jag att ansluta till det trådlösa och ladda upp till en webbplats.

Jag kommer att lägga till detta när projektet expanderar.

FOTNOT:

För de observanta där ute kommer du att märka en stor buckla i burken som skyddar esp -chipet och en bygel på kretskortet. Detta har berott på den bosatta Cocker Spaniel som inspekterade posten och bestämde sig för att tugga tavlan innan jag fick tillgång till den. Jag tror att hon är ett icke -espressifant !.

Naturligtvis som alltid har jag alltid frågor, så fråga.

Steg 1: SIGROK OCH PULSEVIEW

SIGROK OCH PULSEVIEW
SIGROK OCH PULSEVIEW
SIGROK OCH PULSEVIEW
SIGROK OCH PULSEVIEW

Bara ett snabbt omnämnande av pulsvisning och sigrok.

Detta är gratis programvara från nätet och det lilla gränssnittskortet med 8 logiska ingångar är billigt från ebay et al. Du kommer att märka ett par bilder jag tog av bussen medan ADXL kördes och det är så användbart igen för felsökning som det har en inbyggd avkodare för I2C.

Ett omfång är bra för att kontrollera signalnivåer men handavkodning av I2c är i bästa fall tröttsamt, även om jag har skapat en loop innan nu och felsökt för hand. Du måste ha en uppskattning av lite smäll på portnivå som jag har gjort på många bildprojekt men det är tidskrävande och benäget för fel … särskilt på natten !!

Tack till killarna som skrev den här appen. Det är en gud skicka för projekt i i2c, Notera D4 -linjen som övervakar avbrottslinjen från ADXL.

Steg 2: Lägg till i chocksensorn

Lägger till i chocksensorn
Lägger till i chocksensorn
Lägger till chocksensorn
Lägger till chocksensorn
Lägger till i chocksensorn
Lägger till i chocksensorn
Lägger till chocksensorn
Lägger till chocksensorn

Ok här har jag lagt till några kringutrustning till chocksensorn för bevis på konceptet.

Ursäkta att råttorna häckar för nu när det fungerar ska jag designa kretskortet som länkar alla komponenter och lägga allt i en vacker låda. Alla föremål som är anslutna utom SD -kortet fungerar på i2c som finns på spi -bussen.

Vänster att bifoga är GPS -modulen som är WIP men jag hoppas få en lösning i slutet av denna vecka.

Så det aktuella projektet består av:

ESP32 LOLIN -kort med trådlöst.

PCF realtidsklocka. Håller koll på aktuellt datum och tid. Jag har grovlödt på ett gammalt projektbord som jag har etsat tidigare.

Extern blixt. Innehåller bland annat installationsdata för Accelerometer. Kapacitet 132k och kan dumpa några webbdata på den för att underlätta menyer etc.

SPI SD -kort för lagring av filaccelerometerdata och loggar. 8 GB men kan expanderas.

OLED -skärm för att visa menyer och några andra saker.

Här är vad den [så småningom] kommer att göra

Övervaka stötar och aktivitet som överstiger bakgrunden.

Registrera chockerna på SD -kortet med tid och datum från inbyggd klocka.

Stämpla platsen från GPS till SD -kort om möjligt

Ladda upp data till en webbserver för att analysera data med hjälp av en åtkomstpunkt … detta kan vara en mobiltelefon.

| Att söka efter åtkomstpunkter är en förmåga hos LOLIN32, liksom att vara värd för en webbserver för kommandon och sedan ansluta som en klient till molnwebbservern. Du kan alltid bara koppla ur SD -kortet och ladda upp det!

Fortfarande mycket att göra men det går vidare.

Steg 3: ADXL -ADRESSERING

ADXL -ADRESSERING
ADXL -ADRESSERING

Nu är här en rolig sak. Jag köpte ADXL 345 -chipet som ett litet kort eftersom det var billigare än att köpa ett chip på egen hand ….. hur fungerar det? Hur som helst efter det började jag ansluta den till i2c -bussen och upptäckte att jag hade en krock med eepromet med adresser som effektivt börjar vid 0x53, vilket översätter till ett skriv på A6 och en läsning på A7.

Så när du läser bumf visar det sig att om du tar SDO/ALT ADDRESS HIGH kan du tvinga den till 1D

Det visar sig att min lilla bräda är fastkopplad på stift 12 på ADXL trots SDO -stiftet som ser ut som att du kan dra det högt. Försök inte göra det här hemma utan en begränsad strömförsörjning ….. Detta fungerar och får dig ut ur balkampen. Lyckligtvis gjorde de inte kort under chipet annars hade jag blivit snookerad och var tvungen att ta bort chipet från brädet. EEprom som är en extra jag hade är arrangerad som två sidor på 64k som adress 0x52 och 53. När jag gjorde detta var mitt problem löst.

När du läser webbsidan igen står det att den är inställd på 0x53, men det är med småt, så se upp!

Steg 4: Schematiska PCB -utskrifter

Här är en snabb genomgång av kretsen och komponenterna. Detta är mycket min design och fortfarande WIP [Work In Progress] Schematiken utformades och översattes sedan till konstverk för spåren. Jag har verifierat att alla komponenter fungerar som förväntat med mina råttor häckar fram och nu monteras jag på en bräda som passar in i en liten låda [Detaljer följer]

Med hänvisning till shocker.pdf.

Styrelsen består av 8 huvudkomponenter

  1. LAGRING AV SD -KORT
  2. ADXL ACCELEROMETER
  3. DISPLAY OLED
  4. 3.3 V REG
  5. GPS1 -MODUL
  6. EEPROM
  7. TIMER RTC
  8. ESP32 LOLIN CHIP MED RF TRÅDLÖS GRÄNSSNIT

Allt hänger på accelerometern.

ADXL är inställd för att avbryta processorn på INT1, som dirigeras till pin 14 på processorn. beskriver hur du registrerar avbrottsrutinen och återuppringningsfunktionen senare.

ADXL stöder avbrott i olika tillstånd, till exempel en chock eller inaktivitet plus några andra. Du kan maskera de som kittlar din fantasi baserat på vad du försöker göra. ADXL drivs i FIFO -läge så att det lagrar 32 prover för att fånga chockhändelsen som XYZ [96 värden]

Displayen ADXL RTC och EEPROM drivs alla från I2C. SD -kortet är anslutet till SPI I/O och GPS -modulen är ansluten till serieportarna på LOLIN märkt X12 X11.

Sekvensen är följande Ta konstant 232 data från GPS -enheten och filtrera. Medan du har giltig GPS -tid uppdaterar du RTC med inställda intervall. På avbryt lagringsvariabler till SD -kort, såsom tid/Lat_Lng/Speed/Altitude/Store ADXL -register i råformat 2: s komplimang och icke 2: s komplement. Alla data är kommavgränsade.

Du kommer också att notera att det finns en återställningsstift som är ansluten till stift 13. Denna pin startar den inbyggda webbservern så att du kan ansluta till konfiguratorn för att skapa en åtkomstpunkt som lagras i EEPROM. Vid omstart kommer processorn att ansluta till åtkomstpunkten och få tillgång till internet för att ladda upp filer från SD -kortet. Om det inte finns någon data och ingen anslutningspunkt utför enheten bara sin dataloggningsprocess till sd -kortet som du kan förhöra med programmet [ShockerView.exe] [WIP] På servern lagras data i en SQL -databas och visas [WIP]

PCB -utskrifterna bifogas för topp och botten.

Steg 5: Konstverk Etsningsprototyp

Konstverk etsning prototyp
Konstverk etsning prototyp
Konstverk etsning prototyp
Konstverk etsning prototyp
Konstverk etsning prototyp
Konstverk etsning prototyp

Så här producerar jag mina prototypkort

Skriv ut konstverket på lite kraftigt spårpapper. Jag använder 63 GSM från smeder, billiga och glada. Skrivaren är nyckeln här. Du vill ha så ogenomskinligt som möjligt och så rent som möjligt. Min laserskrivare går igång nu men det är bra att skriva ut till 10 tusen, mindre än att du behöver lite specialutrustning när spårpappret börjar hamna i vägen. Du kan köpa specialpapper men det är för bra för mig. Jag förfinar ständigt mina mönster så det skulle bli för dyrt för lilla mig. Om du behöver en ordentlig tavla, be experterna göra det.

Jag prototyper normalt mina brädor i sektioner och producerar sedan en final med gerbers för ett internetföretag att producera. Prototypen sorterar bort alla dessa fel och utelämnanden innan de begår riktiga pengar.

När du har skrivit ut bilderna på två separata A4 -spårningsark, klipp sedan ut dem så att de både ligger över och säljer tejp på plats. lämna tillräckligt med utrymme för att din dubbelsidiga bräda kläms in mellan lagren och se till att den tryckta sidan ligger mot kretskortet. Gör ett par slitsar så att du kan skjuta in brädorna och sälja tejpen tillfälligt. Om du är försiktig kan du överlappa säljbandet så att du kan avmarkera det utan att förstöra spårbilden.

Lägg brädet med ena sidan nedåt i din UV -låda. OBS! Jag gjorde min med fyra nya 13W UV -lampor och några gamla kontrollutrustningar och gjorde en låda med en klar glaspanel. Avståndet var experimentellt. Locket kläms fast och pressar skummet på baksidan av brädan och tvingar masken mot glaset. Om du misslyckas med att göra detta kommer ljuset att underminera etsresistansen. Slå på och exponera brädet i 1 minut 40 sekunder per sida. Använd din klocka. Egentligen måste jag modifiera detta med en timer på den … åh inget annat projekt … kanske ska jag köpa en … du vet att du inte kommer att göra det! Etsmotståndet är ibland lite fläckigt men jag har några brädor som jag har haft i fyra år och de producerar fortfarande bra brädor för prototyper !!

Var försiktig när du vänder brädet, låt det inte glida eller du kommer att ha lite skräp.

Förbered nu din utvecklare. Jag använder 2 kapsyler vid 18: 1 så det är två kapsyler framkallare och 36 kepsar rent oförorenat kranvatten. Utvecklaren kommer i en flaska eller pulverform och en flaska brukar hålla mig i ca 6 år !!. Blanda den i en glassbehållare OCH BÄR HANDSKAR. Lägg inte fingrarna i det annars påverkar fettet det. Temp kan vara ett problem på vintern. Håll vattnet vid 20 grader eller däromkring, det är inte kritiskt men om det är kallt kan resultaten vara oförutsägbara. Jag har gjort detta i januari i mitt garage med en vattenkokare så att du kan kompensera.

Flytta försiktigt behållaren från sida till sida när du har lagt ditt bräda i den. Om du har gjort det rätt kommer du att se en Magenta ström av etsningsresistans som tas bort från kopparen och avslöjar ett härligt glänsande koppar mellan spåren. Vänd på den med hjälp av dina handskar för att kontrollera den andra sidan. Denna process tar normalt cirka en minuts toppar så ta ut brädet när du är klar och skölj noggrant i varmt vatten. Om det är tråkigt är chansen att det misslyckas.

Jag har haft det här ett par gånger men det beror vanligtvis på att jag inte använde handskar eller att temperaturen var för låg eller jag förstörde exponeringstiden på grund av viss distraktion … varför gör de detta mitt i något kritiskt….

Visa mig dina etsningar

Okej, så nu har du en bräda med vackra gröna spår skyddade av etsresistans och behöver nu göra upp Ferric Chloride. Nu använder jag samma glassbehållare för att minimera avfall och blanda upp till anteckningarna på paketet. Jag köper järnkloriden i paket med bollar som du väger upp och löser upp i en lösning. Fyll på tillräckligt för att fylla glasskaret ungefär 1/3 av vägen upp. Om du fyller på tillräckligt för jobbet kan du hälla i en plastbehållare så håller det länge.

DU MÅSTE BÄRA HANDSKAR … inte på grund av fett osv utan för att om du inte gör det kommer dina händer att vara ljusa orange i två veckor. Jag gjorde en gång detta före ett viktigt möte i London och det såg ut som om jag hade blivit tangerad. Var dock medveten om att det här är otäckt kring allt koppar … och vad som helst. Bär gamla kläder eftersom de kommer i papperskorgen om de kommer på dem. Den fäster sig på handfat i rostfritt stål och fläckar i allmänhet allt. Gör detta utanför eller i ett uthus bort från allt. Häll inte resterna i avloppen, det är bra att döda bakterier vilket inte är vad vattenmyndigheten skulle vilja främja i sina septiktankar. För vissa myndigheter är detta också olagligt, så gör det inte.

När du först doppar din bräda i lösningen kommer den att få en härlig röd bronsfärg när kopparen attackeras. Om det inte gör det kan du fortfarande ha ett lager etsresist som hindrar etsetet från att fungera eller din lösning är fel. Om så är fallet, tillbaka till ritbordet är jag rädd, men det är inte troligt att din etsare har fel om du följde förstörelserna.

Hur som helst, om allt är bra har du några perfekta spår skyddade av etsresist.

Normalt vid denna tidpunkt skulle proffsen använda en uppsättning masker för att utvecklas runt hålen och dynorna och producera via koppar genom plus använda en silkeskärm för att måla komponentnummer etc… Tyvärr har jag inte tid eller lust och göra mina vias med lite koppartråd från lager till lager … uppenbarligen är flerlager ett nej med denna metod. Om jag är på humör kommer jag att noggrant lägga till komponentnummer i utskriftsskiktet så att du också etsar komponentnumren. Det kan spara lite tid vid montering men beror på hur upptagen brädan är.

Jag exponerar nu spåren i ytterligare 2 minuter eller så per sida och doppar i utvecklaren för att ta bort allt etsresist.

Jag borrar nu vias och eventuella genomgående hål och tänder alla spår och kontrollerar kontinuiteten med en multimeter. Den här delen är en bollvärk och du skulle normalt inte göra för en professionellt producerad bräda med äkta vias men det är värt att göra för att undvika viatråden bara löds ena sidan … hände så många gånger!

Steg 6: Montering av styrelsen

Montering av styrelsen
Montering av styrelsen
Montering av styrelsen
Montering av styrelsen
Montering av styrelsen
Montering av styrelsen

OK så nu har jag en bräda redo att gå och jag har borrat alla vias och genom hål.

Trä alla vias med tråd och löd på båda sidor. Jag gillar att tina alla spår som ett skydd behöver inte göra det men stoppar kopparoxideringen.

Jag fäst SD -kortet som är ytmonterat och lade till två landningar för att få en lödklämma på det plus att det har ett par stift på undersidan för att förankra det.

Lägg sedan till ADXL EEPROM etc.

Planmässigt är planen att ta 5V från USB eller extern Bat och mata den genom 3.3V reg på kortet. Jag har en liten reg jag köpte från Ebay som är monterad som en modul och klassad till 800mA … det är 300 gretaer än USB kan ge. Jag har inte gjort några effektmätningar än som kan justeras i mjukvaran … kan använda INAKTIVITET avbrott från ADXL för att hantera. [WIP]

… måste lägga till bilder när bygget fortskrider.

Steg 7: KODNING

OK, jag går inte igenom alla arduinoinställningar eftersom någon annan har gjort ett mycket bättre jobb med det någon annanstans.

Jag kommer bara att plocka ut de relevanta bitarna när vi går som kan användas i ett eget projekt.

Detta pågår fortfarande så långt som uppladdning till webbplatsen anses men låter gå igenom en del av koden.

Tanken är att den normala funktionaliteten är init de enheter som består av GPS /display /sd -kort /realtidsklocka /ext_flashmemory och accelerometer.

Efter det går vi in i en slinga som väntar på att se om avbrytningsknappen sw trycks in. Om det sedan går till konfiguratormenyn för att konfigurera wifi -nätverket för att automatiskt logga in på en enhet som anges som en ingång till webbsidekonfiguratorn. Först skannar den alla enheter efter en ssid och låter dig sedan välja en och spara den för att blinka med en flagga för att indikera att vid nästa start laddas inställningarna från blixt. Du kan alltid åsidosätta detta genom att ange ipaddressen och skriva /killbill för att starta en rensning av blixt och ladda standard.

här är avbrottsfunktionen definierad i koden för adxl -accelerometern och hoppet till konfiguratorn på två separata stift. Vi använder ADXL -avbrottet för att avbryta på SHOCK -händelsen. För båda avbrotten sätter vi en flagga som återställs i huvud "loop". så här ser det ut:

titta på den bifogade koden

Steg 8: Hitta SDA SCL -stift

använd den här koden:

Serial.println (SDA);

Serial.println (SCL);

skriver ut stiften som för närvarande är konfigurerade i ESP för SDL och SCL

Det finns en fil som används för att mappa stift till funktioner som seriella portar i ESP32

Rekommenderad: