Sadržaj:
- Korak 1: SIGROK I PULSEVIEW
- Korak 2: Dodavanje senzora udara
- Korak 3: ADXL ADRESIRANJE
- Korak 4: Shematski PCB otisci
- Korak 5: Prototip graviranja umjetničkih djela
- Korak 6: Sastavljanje ploče
- Korak 7: KODIRANJE
- Korak 8: Pronalaženje SDA SCL pinova
Video: ESP32 ADXL345 DATALOGGER S GPS_EXT RAM_EXT_RTC: 8 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:36
Za one od vas koji se igraju s Wemos 32 LOLIN pločom, mislio sam da ću početi dokumentirati neke svoje dosadašnje nalaze.
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 postavljeni su kao priloženi pdf, a prekid koji sam konfigurirao u kodu izbacuje kôd na serijski port nakon što se otkrije udar.
Registar neaktivnosti postavio sam i kao prekid, a nakon provjere koji je prekid pokrenut, onda ispljunem iste podatke.
Koristim I2c port na LOLIN -u i vidjet ćete da imam rutinu za izbacivanje registara na ADXL -u kako bih mogao provjeriti konfiguraciju tijekom ispravljanja pogrešaka. Ova funkcija radi u vremenskoj funkciji pomoću knjižnice oznaka. Ovo je korisna funkcija za postavljanje za ispravljanje 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 oblikovao 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 značajka 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 OTKAD SAM DOPUNIO POSLJEDNJU GRAFIKU ZA PRIKAZ VREMENSKOG VREMENA OD MINUS 9800 mikrosekundi. Prvi skok FIFO -a je najraniji podatak, ostali su stariji. Pogled bi trebao 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 s podacima, to će imati smisla.
Uzorak podataka je pun nagib na 3200 uzoraka što daje 3125 korisničkih 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 knjižnicu žica 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 prenijeti na web stranicu.
Dodat ću ovome kako se projekt bude širio.
NAPOMENA:
Za one koji su pažljiviji vani primijetit ćete veliku udubljenje u limenci koja štiti esp čip i kratkospojnik na tiskanoj ploči. 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
Samo kratko spominjanje pulseview -a i sigrok -a.
Ovo je besplatni softver s mreže, a mala ploča sučelja s 8 logičkih ulaza jeftina je s ebaya i drugih. Primijetit ćete nekoliko slika koje sam uzeo s sabirnice dok je radio ADXL, a opet je toliko korisno za ispravljanje pogrešaka ima ugrađen dekoder za I2C.
Opseg je odličan za provjeru razine signala, ali ručno dekodiranje I2c je u najboljem slučaju zamorno, iako sam već postavio petlju i ručno otklonio pogreške. Morate cijeniti pomalo lupanje na lučkoj razini što sam učinio na mnogim projektima sa slikama, ali oduzima puno vremena i podložan je pogreškama … osobito noću !!
Hvala dečkima koji su napisali ovu aplikaciju. Bože, pošalji projekte u i2c, Obratite pozornost na liniju D4 koja prati liniju prekida iz ADXL -a.
Korak 2: Dodavanje senzora udara
Ovdje sam dodao neke periferne uređaje senzoru šoka za dokaz koncepta.
Oprostite gnijezdo štakora za sada, kad uspije, dizajnirat ću tiskanu ploču koja 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 sabirnici.
Ostaje za priključivanje GPS modul koji je WIP, ali nadam se da ću imati rješenje do kraja ovog tjedna.
Dakle, trenutni projekt sastoji se od:
ESP32 LOLIN ploča s bežičnom vezom.
PCF sat u stvarnom vremenu. Prati trenutni datum i vrijeme. Grubo sam lemljen na staru projektnu ploču koju sam prethodno gravirao.
Vanjska bljeskalica. Sadrži između ostalog podatke o postavljanju 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 zapisa mjerila ubrzanja datoteka. 8 GB, ali se može proširiti.
OLED zaslon za prikaz izbornika i nekoliko drugih stvari.
Evo što će [na kraju] učiniti
Pratite šokove i aktivnosti koji prelaze pozadinu.
Registrirajte šokove na SD karticu s vremenom i datumom s ugrađenog sata.
Označite lokaciju s GPS -a na SD karticu ako postoji
Korištenjem pristupne točke prenesite podatke na web poslužitelj za analizu podataka … ovo može biti mobilni telefon.
| Skeniranje pristupnih točaka mogućnost je LOLIN32 -a jer ugošćuje web poslužitelj za naredbe, a zatim se kao klijent povezuje s web poslužiteljem 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
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, počeo sam ga spajati na i2c sabirnicu i otkrio da sam imao sukob s eeprom -om s adresama koje učinkovito počinju od 0x53, što u prijevodu znači pisanje 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 unatoč SDO pinu 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 iglu na masu. [Mrtvo kratko] š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, inače bih 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. Nakon što sam to učinio, moj problem je riješen.
Čitajući ponovno web stranicu kaže da je postavljena na 0x53, ali je ispisana sitnim slovima pa pripazite!
Korak 4: Shematski PCB otisci
Evo kratkog pregleda kruga i komponenti. Ovo je jako moj dizajn i još uvijek WIP [Rad u tijeku] Shema je dizajnirana, a zatim prevedena u umjetničko djelo za pjesme. Provjerio sam sve komponente kako se očekuje pomoću moji štakori gnijezdo prilaze i sad 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
- ČUVANJE SD KARTICE
- ADXL AKCELEROMETAR
- EKRAN OLED
- 3.3 V REG
- MODUL GPS1
- EEPROM
- TIMER RTC
- ESP32 LOLIN ČIP S RF bežičnim sučeljem
Sve ovisi o mjeraču ubrzanja.
ADXL je postavljen 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. Ja ću dodati kod ocrtavajući kasnije registriranje rutine prekida i funkcije povratnog poziva.
ADXL podržava prekide u različitim stanjima, kao što su šok ili neaktivnost, te 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]
Zaslon 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 valjano GPS vrijeme ažurirajte RTC u postavljenim intervalima. Na prekidu spremite varijable na SD karticu kao što su vrijeme/Lat_Lng/Brzina/Nadmorska visina/Spremite ADXL registre u kompliment neobrađenog formata 2 i nadopuna ne 2. Svi su podaci 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 dopuštajuć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 spojiti na pristupnu točku i pristupiti Internetu za prijenos datoteka sa SD kartice. Ako nema podataka i nema točke povezivanja, jedinica samo provodi svoj postupak evidentiranja podataka na SD karticu koju možete ispitati pomoću program [ShockerView.exe] [WIP] Na poslužitelju se podaci pohranjuju u SQL bazu podataka i prikazuju [WIP]
Otisci s PCB -a pričvršćeni su za gornju i donju stranu.
Korak 5: Prototip graviranja umjetničkih djela
Evo kako proizvodim svoje prototipne ploče
Ispišite umjetničko djelo na neki teški papir za praćenje. Koristim 63 GSM -a od kovača, jeftin i veseo. Pisač je ovdje ključan. Želite što je moguće neprozirnije i što je moguće čistije. Moj laserski pisač se sada uključuje, ali je dobar za ispis do 10 tisuća, manje od toga potrebna vam je neka posebna oprema jer zrnce paus -papira počinje stati na putu. Možete kupiti specijalizirani papir, ali hej, to je previše dobro za mene. U svakom slučaju, stalno usavršavam svoje dizajne tako da 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 završnu obradu s gerberima za izradu internetske tvrtke. Prototip sortira sve te pogreške i propuste prije nego što počini pravi novac.
Nakon što ste ispisali slike na dva odvojena A4 lista za iscrtavanje, izrežite ih tako da ih prekriju i samoljepljuju na mjesto. ostavite dovoljno prostora da se vaša dvostrana ploča ugura između slojeva i provjerite je li ispisana strana naslonjena na tiskanu 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 s jednom stranom prema dolje u svoju UV kutiju. Napomena: Ja sam napravio svoje koristeći četiri nove 13W UV svjetiljke i neki stari upravljački uređaj i napravio kutiju s 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 ovo izmijeniti s timerom na sebi … oh, nema drugog projekta … možda ću ga kupiti … znate da nećete! Ploče koje kupujem od Mega Electronics su jeftine prototipne ploče s otporom 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 čepa u omjeru 18: 1, dakle dvije kapi razvijača i 36 kapa čiste, neokrnjene vode iz slavine. Developer dolazi u obliku boce 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 biti problem zimi. Držite vodu na 20 stupnjeva 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 ispravno, vidjet ćete kako se s bakra uklanja magentasti mlaz graviranja koji otkriva lijepi sjajni bakar između tračnica. Okrenite ga rukavicama kako biste provjerili 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 nekoliko 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 bakropise
U redu, sada imate ploču s prekrasnim zelenim pjesmama zaštićenim otporom na graviranje i sada morate sastaviti željezni klorid. Sada koristim isti spremnik za sladoled kako bih smanjio otpad i pomiješao do bilješki na pakiranju. Željezni klorid kupujem u pakiranjima kuglica koje izvagate i otopite u otopini. Napunite dovoljno da napunite kadu sa sladoledom otprilike 1/3 puta prema gore. Ako nadoknadite tek toliko za posao, možete sipati u plastičnu posudu i dugo će se držati.
MORATE NOSITI RUKAVICE … ne zbog masti itd. Nego zato što ako ne radite, vaše će ruke biti svijetlo narančaste dvije sedmice. Jednom sam to učinio prije važnog sastanka u Londonu i izgledalo je kao da sam bio u tangu. Međutim, imajte na umu da su ove stvari gadne oko svega bakrenog … i svega doista. 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, izvrsno je u ubijanju bakterija što nije ono što bi vodne vlasti željele promicati u svojim septičkim jamama. Za neke vlasti to je također nezakonito pa nemojte to činiti.
Kada prvi put umočite svoju ploču u otopinu, ona će dobiti lijepu crvenu brončanu boju dok je bakar napadnut. Ako se to ne dogodi, možda ćete još uvijek imati sloj otpora jetkanja koji sprječava djelovanje jetkanja ili je vaše rješenje pogrešno. Bojim se da je to slučaj, ali natrag na ploču za crtanje, ali nije vjerojatno da je vaše jetkanje pogrešno ako ste slijedili uništenja.
U svakom slučaju, ako je sve u redu, imate neke savršene pjesme zaštićene graviranjem.
Obično bi u ovom trenutku stručnjak koristio set maski za razvijanje rupa i jastučića te za izradu prozirnog bakra plus upotrijebio sitotisak za bojanje brojeva komponenti itd. pomoću neke bakrene žice od sloja do sloja … očito je višeslojna ova metoda ne ne. Ako sam raspoložen, mukotrpno ću dodati brojeve komponenata u sloj za ispis tako da i vi utisnete brojeve komponenti. Može uštedjeti neko vrijeme pri montaži, 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 bušim vijase i sve prolazne rupe te kosim sve tračnice i provjeravam kontinuitet multimetrom. Ovaj dio boli kugla i obično ne biste to učinili za ploču s profesionalnim proizvodima s pravim vijasama, ali vrijedi učiniti kako biste izbjegli spojnu žicu biti samo lemljen s jedne strane … dogodilo se toliko puta!
Korak 6: Sastavljanje ploče
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 kositi sve tragove jer zaštita to ne mora učiniti, ali zaustavlja oksidaciju bakra.
Priključio sam sd karticu koja se montira na površinu i dodao dvije zemlje 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 s USB -a ili vanjskog Bat -a i napajati ga kroz 3.3V reg na ploči. Imam malo reg -a koji sam kupio od Ebaya 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 mogao prilagoditi softver …..mogao bih koristiti INACTIVITY prekid iz ADXL -a za rješavanje. [WIP]
… potrebno je dodavati slike kako gradnja napreduje.
Korak 7: KODIRANJE
U redu, neću prolaziti kroz sve arduino postavke jer je netko drugi to učinio puno bolje na drugom mjestu.
U nastavku ću samo izdvojiti bitne dijelove koji se mogu koristiti u vlastitom projektu.
Što se tiče prijenosa 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 pritisnuta tipka za prekid 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 za ssid, 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 bljeskalice. To uvijek možete nadjačati unošenjem ipad adrese i upisivanjem /killbill -a kako biste pokrenuli brisanje bljeskalice i zadano učitavanje.
ovdje je funkcija prekida definirana u kodu za adxl akcelerometar i skok na konfigurator na dva odvojena pina. Za prekid događaja SHOCK koristimo ADXL prekid. 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:
Serijski.println (SDA);
Serijski.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čeni:
GPS Para Norma (Datalogger EEPROM): 5 koraka
GPS Para Norma (Datalogger EEPROM): Jednostavan GPS datalogger za kućne ljubimce na temelju arduino i EEPROM snimanja ================================ ======================== Sencillo datalogger GPS za maskote basado en arduino y grabacion i memorija EEPROM
Početak rada s ESP32 - Instaliranje ESP32 ploča u Arduino IDE - ESP32 Blink Code: 3 koraka
Početak rada s ESP32 | Instaliranje ESP32 ploča u Arduino IDE | ESP32 Blink Code: U ovom uputstvu vidjet ćemo kako započeti rad s esp32 i kako instalirati esp32 ploče u Arduino IDE i programirat ćemo esp 32 da pokrene blink kod pomoću arduino ide
Alaska Datalogger: 5 koraka (sa slikama)
Alaska Datalogger: Aljaska je na rubu napredovanja klimatskih promjena. Njegov jedinstveni položaj s prilično netaknutim krajolikom naseljenim raznim kanarincima rudnika ugljena omogućuje mnoge mogućnosti istraživanja. Naš prijatelj Monty je arheolog koji pomaže
Arduino Datalogger s RTC -om, Nokia LCD -om i koderom: 4 koraka
Arduino Datalogger s RTC-om, Nokia LCD-om i enkoderom: Dijelovi: Arduino Nano ili Arduino Pro Mini Nokia 5110 84x48 LCD DHT11 osjetnik temperature/vlažnosti DS1307 ili DS3231 RTC modul s ugrađenim AT24C32 EEPROM Jeftin koder s 3 kondenzatora za otklanjanje značajki Značajke: GUI temeljen na Nokia LCD-u i en
Arduino Datalogger: 8 koraka (sa slikama)
Arduino Datalogger: U ovom ćemo vodiču napraviti jednostavan zapisnik podataka pomoću Arduina. Poanta je naučiti same osnove korištenja Arduina za hvatanje informacija i ispis na terminalu. Ove osnovne postavke možemo upotrijebiti za dovršavanje niza zadataka. Za početak