Sadržaj:

ESP32 ADXL345 DATALOGGER S GPS_EXT RAM_EXT_RTC: 8 koraka
ESP32 ADXL345 DATALOGGER S GPS_EXT RAM_EXT_RTC: 8 koraka

Video: ESP32 ADXL345 DATALOGGER S GPS_EXT RAM_EXT_RTC: 8 koraka

Video: ESP32 ADXL345 DATALOGGER S GPS_EXT RAM_EXT_RTC: 8 koraka
Video: How To Track Orientation with Arduino | ADXL345 Accelerometer Tutorial 2024, Juli
Anonim
ESP32 ADXL345 DATALOGGER S GPS_EXT RAM_EXT_RTC
ESP32 ADXL345 DATALOGGER S GPS_EXT RAM_EXT_RTC
ESP32 ADXL345 DATALOGGER S GPS_EXT RAM_EXT_RTC
ESP32 ADXL345 DATALOGGER S GPS_EXT RAM_EXT_RTC
ESP32 ADXL345 DATALOGGER S GPS_EXT RAM_EXT_RTC
ESP32 ADXL345 DATALOGGER S GPS_EXT RAM_EXT_RTC

Za one od vas koji se igraju s Wemos 32 LOLIN pločom, mislio sam da ću početi dokumentirati neke svoje nalaze do sada.

Trenutni projekt je povezivanje s ADXL345 akcelerometrom, a kako prikazuje gornja fotografija, uspješno sam ga spojio na lolin i konfigurirao ADXL kao senzor udara.

Registri na ADXL -u su postavljeni kao priloženi pdf i prekid koji sam konfigurirao u kodu da ispljune kôd na serijski port nakon što se otkrije šok.

Registar neaktivnosti sam također postavio kao prekid i nakon provjere koji je prekid pokrenut, onda izbacujem iste podatke.

Koristim I2c port na LOLIN -u i vidjet ćete da imam rutinu za izbacivanje registara na ADXL -u tako da mogu provjeriti konfiguraciju tijekom otklanjanja pogrešaka. Ova funkcija radi u vremenskoj funkciji pomoću biblioteke oznaka. Ovo je korisna funkcija za postavljanje za otklanjanje pogrešaka i provjeru registara u slučaju da tamo upišete nešto što misteriozno uzrokuje da podaci čine neke čudne stvari.

Normalizirao sam podatke o komplimentima 2 u LOLIN -u i formatirao ih tako da se mogu uvesti u Excel.

Pogledajte priloženi PDF s nekim podacima koje sam uvezao i grafički sam prikazao u excelu prikazujući neke dodire na ADXL -u koji se pokreću prekidom u registru okidača pomoću načina FIFO.

FIFO način rada je korisna funkcija koja ne povezuje mikro i sprema 32 uzorka na okidač. Ponovno pogledajte moje deponije podataka i možete vidjeti gdje počinjemo od nule, a zadnji uzorak je na 9,8 ms ili otprilike tamo. X linija na grafikonu prikazuje vrijeme u mikrosekundama koje se povećava slijeva nadesno.

NAPOMENA JA SAM OD DOPUNE POSLJEDNJE GRAFIKE POKAZALA ROK OD MINUS 9800 mikrosek. Prvi skok FIFO -a je najraniji podatak, ostali su stariji. Prikaz treba biti zdesna nalijevo.

Zabilježite tri žice na ADXL ploči. SDA/SCL i INT iz INT -a 1. Opet, ako pogledate postavke registra i uporedite listu sa podacima, to će imati smisla.

Uzorak podataka je pun nagib na 3200 uzoraka što daje 3125 upotrebnih sekundi između uzoraka. I pred snimanje 4 uzorka. Pogledajte pdf podatke s uređaja u excelu i svaki od grafikona koje sam iscrtao prikazujući kako pomičem prozor snimanja.

Stavit ću neki kod konfiguracije i prekida ako nekoga zanima.

Za I2C koristim žičanu biblioteku i napisao sam neke funkcije oko toga.

Primijetite mali sniffer podataka koji sam spojio na SDA/SDL i pomoću Sigroka mogu dekodirati I2C sabirnicu u stvarnom vremenu.

Sljedeći korak je spremanje na SAN disk iako sam već dokazao da radi. Nakon što to učinim, povezat ću se s bežičnom mrežom i postaviti je na web stranicu.

Dodaću ovo kako se projekat bude širio.

NAPOMENA:

Za one koji su pažljiviji vani primijetit ćete veliku udubljenje u limenci koja štiti esp čip i kratkospojnik na PCB -u. To je zbog rezidentnog koker španijela koji je pregledao poštu i odlučio sažvakati ploču prije nego što mi je dao pristup. Mislim da nije fan espressifa !.

Naravno, kao i uvijek, uvijek sam spreman za pitanja pa pitajte.

Korak 1: SIGROK I PULSEVIEW

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

Samo kratko spominjanje pulsview -a i sigrok -a.

Ovo je besplatni softver s mreže, a mala ploča sa sučeljem sa 8 logičkih ulaza jeftina je od ebaya i drugih. Primijetit ćete nekoliko slika koje sam uzeo sa sabirnice dok je ADXL radio, a opet je toliko korisno za ispravljanje pogrešaka ima ugrađen dekoder za I2C.

Opseg je odličan za provjeru nivoa signala, ali ručno dekodiranje I2c je u najboljem slučaju zamorno, iako sam već postavio petlju i ručno otklonio greške. Morate cijeniti pomalo lupanje na lučkom nivou što sam učinio na mnogim projektima sa slikama, ali oduzima puno vremena i podložan je greškama … posebno noću !!

Hvala momcima koji su napisali ovu aplikaciju. Bog ga šalje za projekte u i2c, Obratite pažnju na liniju D4 koja prati liniju prekida iz ADXL -a.

Korak 2: Dodavanje senzora udara

Dodavanje senzoru udara
Dodavanje senzoru udara
Dodavanje senzoru udara
Dodavanje senzoru udara
Dodavanje senzoru udara
Dodavanje senzoru udara
Dodavanje senzoru udara
Dodavanje senzoru udara

Ovdje sam dodao neke periferne uređaje senzoru šoka za dokaz koncepta.

Oprostite gnijezdu štakora za sada kad proradi, dizajnirat ću PCB koji povezuje sve komponente i sve to staviti u lijepu kutiju. Sve stavke priložene osim SD kartice rade na i2c koji se nalazi na spi magistrali.

Ostaje za priključivanje GPS modul koji je WIP, ali nadam se da ću imati rješenje do kraja ove sedmice.

Dakle, trenutni projekat se sastoji od:

ESP32 LOLIN ploča sa bežičnom vezom.

PCF sat u realnom vremenu. Prati trenutni datum i vrijeme. Grubo sam lemljen na staru projektnu ploču koju sam prethodno gravirao.

Spoljašnji blic. Sadrži između ostalog podatke o postavkama za Accelerometer. Kapacitet 132k i može na njega ispisati neke web podatke radi olakšavanja izbornika itd.

SPI SD kartica za spremanje podataka i evidencija akcelerometra datoteka. 8 GB, ali se može proširiti.

OLED ekran za prikaz menija i nekoliko drugih stvari.

Evo šta će [na kraju] učiniti

Pratite šokove i aktivnosti koji prelaze pozadinu.

Registrirajte šokove na SD karticu s vremenom i datumom sa ugrađenog sata.

Označite lokaciju s GPS -a na SD karticu ako postoji

Korištenjem pristupne točke prenesite podatke na web server za analizu podataka … ovo može biti mobilni telefon.

| Skeniranje pristupnih tačaka je mogućnost LOLIN32 -a jer ugošćuje web poslužitelj za naredbe, a zatim se povezuje kao klijent s web serverom u oblaku. Uvijek možete samo odspojiti SD karticu i učitati je!

Ima još puno posla, ali ide se dalje.

Korak 3: ADXL ADRESIRANJE

ADXL ADRESIRANJE
ADXL ADRESIRANJE

Evo jedne smiješne stvari. Kupio sam čip ADXL 345 kao malu ploču jer je to bilo jeftinije od samog nabavljanja čipa … … kako to funkcionira? U svakom slučaju, nakon toga sam krenuo s povezivanjem na i2c sabirnicu i otkrio da sam imao sukob sa eeprom -om sa adresama koje efektivno počinju na 0x53, što znači prepisivanje na A6 i čitanje na A7.

Čitajući bumf ispada da ako uzmete SDO/ALT ADDRESS HIGH možete ga prisiliti na 1D

Ispostavilo se da je moja mala ploča ožičena na pin 12 ADXL -a uprkos SDO pin -u koji izgleda kao da ga možete visoko povući. Ne pokušavajte ovo kod kuće bez trenutnog ograničenog napajanja ….na sreću imao sam zbog čega sam izvadio multimetar i provjerio pin na masu. [Dead short] što znači da morate presjeći stazu i kratkospojnik 12 na 3,3 V. Ovo funkcionira i izvlači vas iz okršaja na maturalnoj večeri. Srećom, nisu napravili kratki spoj ispod čipa ili bih ja bio izbačen i morao sam ukloniti čip s ploče. EEprom koji je rezervni koji sam imao uređen je kao dvije stranice od 64k kao adrese 0x52 i 53. Kada sam to učinio, moj problem je riješen.

Čitajući ponovo web stranicu, stoji da je postavljena na 0x53, ali je ispisana sitnim slovima pa pazite!

Korak 4: Shematski PCB otisci

Evo kratkog pregleda kruga i komponenti. Ovo je u velikoj mjeri moj dizajn i još uvijek WIP [Work In Progress] Shema je dizajnirana, a zatim prevedena u umjetničko djelo za pjesme. Provjerio sam sve komponente kako se očekuje koristeći prilazi mi gnijezdo štakora i sada se sastavljam na dasku koja će stati u malu kutiju [Detalji slijede]

Pozivajući se na shocker.pdf.

Ploča se sastoji od 8 glavnih komponenti

  1. SKLADIŠTENJE SD KARTICE
  2. ADXL AKCELEROMETAR
  3. EKRAN OLED
  4. 3.3 V REG
  5. MODUL GPS1
  6. EEPROM
  7. TIMER RTC
  8. ESP32 LOLIN ČIP S RF BEŽIČNIM INTERFEJSOM

Sve zavisi od akcelerometra.

ADXL je postavljen tako da prekida procesor na INT1 koji je usmjeren na pin 14 na procesoru. Kôd u mikro postavljen je tako da presretne ovaj prekid i postavi zastavicu na koju se djeluje u glavnoj rutini. Dodati ću kôd koji opisuje kasnije registriranje rutine prekida i funkcije povratnog poziva.

ADXL podržava prekide u različitim stanjima, kao što su šok ili neaktivnost, kao i nekoliko drugih. Možete maskirati ona koja vam se dopadnu na temelju onoga što pokušavate učiniti. ADXL radi u načinu FIFO tako da pohranjuje 32 uzorka snimiti šok kao XYZ [96 vrijednosti]

Ekran ADXL RTC i EEPROM pokreću se iz I2C. SD KARTICA je spojena na SPI I/O, a GPS modul je spojen na serijske portove na LOLIN -u označenom X12 X11.

Slijed je sljedeći. Stalno preuzimajte 232 podataka iz GPS jedinice i filtera. Dok imate važeće GPS vrijeme, ažurirajte RTC u postavljenim intervalima. Na prekidu spremite varijable na SD karticu, kao što su vrijeme/Lat_Lng/Brzina/Nadmorska visina/Pohranite ADXL registre u kompliment sirovog formata 2 i komplement koji nije 2. Svi podaci su razdvojeni zarezima.

Također ćete primijetiti da postoji pin za resetiranje koji je spojen na pin 13. Ovaj pin će pokrenuti ugrađeni web poslužitelj omogućavajući vam da se povežete s konfiguratorom za postavljanje pristupne točke koja je pohranjena u EEPROM -u. Prilikom ponovnog pokretanja procesor će se povezati s pristupnom točkom i pristupiti internetu za postavljanje datoteka sa SD kartice. Ako nema podataka i nema točke povezivanja, jedinica samo provodi svoj proces evidentiranja podataka na SD karticu koju možete ispitati pomoću program [ShockerView.exe] [WIP] Na serveru se podaci pohranjuju u SQL bazu podataka i prikazuju [WIP]

PCB otisci su pričvršćeni za Gornju i Donju.

Korak 5: Prototip graviranja umjetničkog djela

Prototip graviranja umjetničkih djela
Prototip graviranja umjetničkih djela
Prototip graviranja umjetničkih djela
Prototip graviranja umjetničkih djela
Prototip graviranja umjetničkih djela
Prototip graviranja umjetničkih djela

Evo kako proizvodim svoje prototipne ploče

Odštampajte umetničko delo na teškom paus papiru. Koristim 63 GSM -a od kovača, jeftin i veseo. Štampač je ovdje ključan. Želite što je moguće neprozirnije i što je moguće čistije. Moj laserski štampač se sada uključuje, ali je dobar za štampanje do 10 hiljada, manje od toga vam je potrebna neka specijalistička oprema jer zrnce paus -papira počinje da vam smeta. Možete kupiti specijalizirani papir, ali hej, to je previše dobro za mene. U svakom slučaju, stalno usavršavam svoje dizajne kako bi to bilo preskupo za mene. Ako vam je potrebna odgovarajuća ploča, zamolite stručnjake da to učine.

Obično prototipiram svoje ploče u odjeljcima, a zatim izrađujem finale sa gerberima za izradu jedne internetske kompanije. Prototip sortira sve te greške i propuste prije nego što počini pravi novac.

Nakon što odštampate slike na dva odvojena A4 lista za iscrtavanje, izrežite ih tako da ih prekriju i selotejpiraju na svoje mjesto. ostavite dovoljno prostora da se vaša dvostrana ploča ugura između slojeva i provjerite je li ispisana strana naslonjena na ploču. Napravite nekoliko proreza koji će vam omogućiti da umetnete ploče i privremeno je zalijepite. Ako ste oprezni, možete preklopiti selotejp kako biste ga mogli odvojiti bez uništavanja slike praćenja.

Položite ploču jednom stranom prema dolje u svoju UV kutiju. Napomena: Ja sam napravio svoj koristeći četiri nove 13W UV lampe i nešto starog upravljačkog uređaja i napravio kutiju sa prozirnom staklenom pločom. Razmak je bio eksperimentalan. Poklopac se spušta i istiskuje pjenu na stražnju stranu ploče prisiljavajući masku na staklo. Ako to ne učinite, svjetlo će potkopati otpor graviranja. Uključite i izložite ploču 1 minutu 40 sekundi po strani. Koristite sat. Zapravo, moram to izmijeniti s tajmerom … oh, nema drugog projekta … možda ću ga kupiti … znate da nećete! Ploče koje kupujem od Mega Electronics -a su jeftine prototipne ploče otporne na graviranje. Otpornost na graviranje ponekad je pomalo neujednačena, ali imam neke ploče koje imam već četiri godine i još uvijek proizvode dobre ploče za izradu prototipova !!

Oprezno dok okrećete ploču, ne dopustite joj da sklizne ili ćete imati nešto smeća.

Sada pripremite svog programera. Koristim 2 zatvarača u omjeru 18: 1, dakle dvije kapi razvijača i 36 kapa čiste, neokrnjene vode iz slavine. Developer dolazi u obliku bočice ili praha, a bočica mi obično traje oko 6 godina !!. Pomiješajte ga u posudi za sladoled i nosite rukavice. Ne stavljajte prste u njega jer će mast utjecati na njega. Temperatura može predstavljati problem zimi. Držite vodu na 20 stepeni ili oko nje, nije kritično, ali ako je hladna, rezultati mogu biti nepredvidljivi. To sam učinio u siječnju u svojoj garaži s kuhalom za vodu, tako da možete nadoknaditi.

Pažljivo pomaknite spremnik s jedne na drugu stranu nakon što ste u njega stavili dasku. Ako ste to učinili kako treba, vidjet ćete kako se s bakra uklanja magentasti mlaz graviranja koji otkriva lijepi sjajni bakar između tračnica. Okrenite ga koristeći rukavice da provjerite drugu stranu. Ovaj proces obično traje oko minute, pa kad završite, izvadite dasku i temeljito isperite u toploj vodi. Ako je dosadan, šanse su male.

Imao sam ovo par puta, ali obično zato što nisam nosio rukavice ili je temperatura bila preniska ili sam zabrljao vrijeme izlaganja zbog neke smetnje … zašto to rade usred nečeg kritičnog …

Pokaži mi svoje ureze

U redu, sada imate ploču s prekrasnim zelenim pjesmama zaštićenim graviranjem i sada morate sastaviti željezni klorid. Sada koristim istu posudu za sladoled kako bih smanjio otpad i pomiješao do bilješki na pakiranju. Kupujem željezni klorid u paketima kuglica koje izvagate i otopite u otopini. Napunite dovoljno da napunite kadu sa sladoledom otprilike 1/3 do kraja. Ako nadoknadite tek toliko za posao, onda možete sipati u plastičnu posudu i trajat će dugo.

MORATE NOSITI RUKAVICE … ne zbog masti itd. Već zato što ako ne radite ruke će vam biti svijetlo narančaste dvije sedmice. Jednom sam to učinio prije važnog sastanka u Londonu i izgledalo je kao da sam u tangu. Međutim, imajte na umu da su ove stvari gadne oko svega bakrenog … i bilo čega zaista. Nosite staru odjeću jer će, ako dospije na nju, biti bačena u otpad. Pričvršćuje se na sudopere od nehrđajućeg čelika i općenito sve zaprlja. Učinite to vani ili u toaletu daleko od svega. Ne izlijevajte ostatke u kanalizaciju, odlično ubija bakterije, što nije ono što bi vodne vlasti željele promovirati u svojim septičkim jamama. Za neke vlasti to je također nezakonito pa nemojte to činiti.

Kada prvi put umočite ploču u otopinu, ona će dobiti lijepu crvenu brončanu boju dok je bakar napadnut. Ako se to ne dogodi, možda ćete i dalje imati sloj otpora graviranja koji sprječava djelovanje nagrizanja ili je vaše rješenje pogrešno. Ako je to slučaj, bojim se da se vraćam na ploču za crtanje, ali nije vjerojatno da je vaše graviranje pogrešno ako ste slijedili uništenja.

U svakom slučaju, ako je sve u redu, imate neke savršene numere zaštićene graviranjem.

Obično bi u ovom trenutku profesionalac koristio set maski za razvijanje rupa i jastučića i izradu prozirnog bakra, plus koristio sito za slikanje brojeva komponenti itd. koristeći neku bakrenu žicu od sloja do sloja … očito je višeslojna metoda ne ne. Ako sam raspoložen, mukotrpno ću dodati brojeve komponenti u sloj za štampanje, tako da i vi nanesete brojeve komponenti. Može uštedjeti neko vrijeme pri sastavljanju, ali ovisi o tome koliko je ploča zauzeta.

Sada izlažem pjesme još oko 2 minute po strani i uranjam u programer kako bih uklonio sav otpor graviranja.

Sada izbušim vijase i sve prolazne rupe te poravnam sve tračnice i provjerim kontinuitet multimetrom. Ovaj dio boli kugla i obično ne biste to učinili za ploču profesionalne proizvodnje s pravim vijasama, ali vrijedi učiniti kako biste izbjegli spojnu žicu lemljenje samo s jedne strane … dogodilo se toliko puta!

Korak 6: Sastavljanje odbora

Sastavljanje odbora
Sastavljanje odbora
Sastavljanje odbora
Sastavljanje odbora
Sastavljanje odbora
Sastavljanje odbora

U redu, sada imam ploču spremnu za rad i izbušio sam sve vijase i rupe.

Provucite sve čepove žicom i lemite s obje strane. Volim pokositi sve tragove jer zaštita to ne mora raditi, ali zaustavlja oksidaciju bakra.

Priključio sam SD karticu koja se montira na površinu i dodao dva uloška kako bih dobio lemljenje na njoj plus ima donju stranu igle za pričvršćivanje.

Zatim je dodan ADXL EEPROM itd.

Što se tiče napajanja, plan je uzeti 5V sa USB -a ili vanjskog Bat -a i napajati ga putem 3.3V reg -a na ploči. Imam malo reg -a koji sam kupio od Ebaya -a koji je sastavljen kao modul i ocijenjen na 800mA … to je 300 gretaer nego što USB može pružiti. Još nisam napravio nikakva mjerenja snage jer bi se moglo promijeniti softver …..mogao bih koristiti INACTIVITY prekid iz ADXL -a za rješavanje. [WIP]

… potrebno je dodavati slike kako napreduje izgradnja.

Korak 7: KODIRANJE

U redu, neću prolaziti kroz sve arduino postavke jer je to neko drugi učinio mnogo boljim poslom na drugom mjestu.

U nastavku ću samo izdvojiti bitne dijelove koji se mogu koristiti u vašem vlastitom projektu.

Što se tiče učitavanja na web stranicu, ovo je još uvijek u tijeku, ali prolazimo kroz neke kodove.

Ideja je da je normalna funkcionalnost unutar uređaja koji se sastoje od GPS -a /zaslona /SD kartice /sata u stvarnom vremenu /ext_flashmemory i mjerača ubrzanja.

Nakon toga ulazimo u petlju koja čeka da vidi je li pritisnut prekidač sw. Ako je tada skočite na izbornik konfiguratora kako biste konfigurirali WiFi mrežu za automatsko prijavljivanje na uređaj koji je naveden kao ulaz u konfigurator web stranice. Prvo skenira sve uređaje radi pronalaska ssida, a zatim vam omogućuje da odaberete jedan i spremite ga na bljeskalicu sa zastavicom koja označava da pri sljedećem pokretanju učitavaju postavke s blica. Ovo uvijek možete nadjačati unošenjem ipad adrese i upisivanjem /killbill -a kako biste pokrenuli brisanje bljeskalice i učitavanje zadanih postavki.

ovdje je funkcija prekida definirana u kodu za adxl akcelerometar i skok na konfigurator na dva odvojena pina. Koristimo ADXL prekid za prekid SHOCK događaja. Za oba prekida postavljamo zastavicu koja se resetira u glavnoj "petlji". evo kako to izgleda:

pogledajte priloženi kod

Korak 8: Pronalaženje SDA SCL pinova

upotrijebite ovaj kod:

Serial.println (SDA);

Serial.println (SCL);

ispisuje pinove koji su trenutno konfigurirani u ESP -u za SDL i SCL

Postoji datoteka koja se koristi za mapiranje pinova na funkcije kao što su serijski portovi u ESP32

Preporučuje se: