Isi kandungan:

ESP32 ADXL345 DATALOGGER DENGAN GPS_EXT RAM_EXT_RTC: 8 Langkah
ESP32 ADXL345 DATALOGGER DENGAN GPS_EXT RAM_EXT_RTC: 8 Langkah

Video: ESP32 ADXL345 DATALOGGER DENGAN GPS_EXT RAM_EXT_RTC: 8 Langkah

Video: ESP32 ADXL345 DATALOGGER DENGAN GPS_EXT RAM_EXT_RTC: 8 Langkah
Video: ESP32 - Vibration Data Logger (Fourier Transform) 2024, Julai
Anonim
ESP32 ADXL345 DATALOGGER DENGAN GPS_EXT RAM_EXT_RTC
ESP32 ADXL345 DATALOGGER DENGAN GPS_EXT RAM_EXT_RTC
ESP32 ADXL345 DATALOGGER DENGAN GPS_EXT RAM_EXT_RTC
ESP32 ADXL345 DATALOGGER DENGAN GPS_EXT RAM_EXT_RTC
ESP32 ADXL345 DATALOGGER DENGAN GPS_EXT RAM_EXT_RTC
ESP32 ADXL345 DATALOGGER DENGAN GPS_EXT RAM_EXT_RTC

Bagi anda di luar sana yang bermain dengan papan Wemos 32 LOLIN saya fikir saya akan mula mendokumentasikan beberapa penemuan saya setakat ini.

Projek semasa adalah untuk menghubungkan ke akselerometer ADXL345 dan seperti gambar di atas, saya berjaya menghubungkannya ke lolin dan mengkonfigurasi ADXL sebagai sensor kejutan.

Daftar pada ADXL telah disiapkan sebagai pdf yang dilampirkan dan gangguan yang telah saya konfigurasikan dalam kod untuk mengeluarkan kod pada port bersiri sebaik sahaja kejutan dikesan.

Saya juga menyiapkan daftar tidak aktif sebagai gangguan dan setelah memeriksa gangguan mana yang telah dicetuskan kemudian mengeluarkan data yang sama.

Saya menggunakan port I2c di LOLIN dan anda akan melihat saya mempunyai rutin untuk menyemburkan register pada ADXL sehingga saya dapat memeriksa konfigurasi semasa melakukan debug. Fungsi ini dijalankan dalam fungsi pemasa menggunakan perpustakaan ticker. Ini adalah fungsi yang berguna untuk mengatur debug dan memeriksa daftar sekiranya anda menulis sesuatu di dalamnya yang secara misterius menyebabkan data melakukan beberapa perkara aneh.

Saya telah menormalkan data pujian 2 di LOLIN dan memformatnya sehingga dapat diimport ke excel.

Lihatlah PDF yang dilampirkan dengan beberapa data yang telah saya import dan saya telah membuat grafik di excel yang menunjukkan beberapa ketukan pada ADXL yang dipicu oleh gangguan dalam daftar pencetus menggunakan mod FIFO.

Mod FIFO adalah ciri berguna yang tidak mengikat mikro dan menyimpan 32 sampel pada pencetus. Lihatlah lagi pembuangan data saya dan anda dapat melihat dari mana kita bermula dari titik sifar dan sampel terakhir berada pada jarak 9.8ms atau lebih kurang. Garis X pada grafik menunjukkan masa dalam mikrodetik meningkat dari kiri ke kanan.

CATATAN SAYA TELAH DIUBAHKAN GRAF TERAKHIR UNTUK MENUNJUKKAN WAKTU DARI MINUS 9800 mikrod. Pop pertama FIFO adalah data terawal selebihnya lebih tua. Pandangan harus dari kanan ke kiri.

Perhatikan tiga wayar ke papan ADXL. SDA / SCL dan INT dari INT 1. Sekali lagi jika anda melihat tetapan daftar dan menyeberang lembaran data itu akan masuk akal.

Sampel data adalah kecondongan penuh pada 3200 sampel yang memberikan 3125 saat antara sampel. Dan tangkapan awal sebanyak 4 sampel. Lihat pdf data dari peranti di excel dan setiap graf yang telah saya petak menunjukkan saya menggerakkan tetingkap tangkapan.

Saya akan memasukkan beberapa kod konfigurasi dan mengganggu jika ada yang berminat.

Untuk I2C saya menggunakan perpustakaan wayar dan telah menulis beberapa fungsi di sekitarnya.

Perhatikan sedikit data sniffer yang telah saya sambungkan ke SDA / SDL dan menggunakan Sigrok saya dapat menyahkod bus I2C dalam masa nyata.

Langkah seterusnya adalah menyimpan ke cakera SAN walaupun saya sudah membuktikannya berfungsi. Setelah selesai saya akan membuat sambungan ke wayarles dan memuat naik ke laman web.

Saya akan menambah ini semasa projek berkembang.

FOOTNOTE:

Bagi yang berjaga di luar sana anda akan melihat penyok besar di dalam tin melindungi cip esp dan pelompat di pcb. Ini disebabkan oleh penduduk Cocker Spaniel yang memeriksa surat itu dan memutuskan untuk mengunyah papan sebelum membiarkan saya dapat mengaksesnya. Saya rasa dia bukan peminat espressif !.

Sudah tentu seperti biasa saya selalu mengemukakan soalan, jadi sila tanya.

Langkah 1: SIGROK DAN PULSEVIEW

SIGROK DAN PULSEVIEW
SIGROK DAN PULSEVIEW
SIGROK DAN PULSEVIEW
SIGROK DAN PULSEVIEW

Sekadar sebutan ringkas mengenai pulseview dan sigrok.

Ini adalah perisian percuma dari internet dan papan antara muka kecil dengan 8 input logik adalah murah dari ebay et al. Anda akan melihat beberapa gambar yang saya ambil dari bas semasa ADXL sedang berjalan dan ia sangat berguna sekali lagi untuk melakukan debug kerana ia mempunyai decoder terbina dalam untuk I2C.

Skopnya bagus untuk memeriksa tahap isyarat tetapi penyahkodan tangan I2c sangat melelahkan walaupun saya telah menyiapkan gelung sebelum sekarang dan debug tangan. Anda harus menghargai bit banging di tingkat pelabuhan yang telah saya lakukan pada banyak projek pic tetapi memakan masa dan terdedah kepada kesilapan … terutama pada waktu malam !!

Terima kasih kepada lelaki yang menulis aplikasi ini. Ya Tuhan untuk projek di i2c, Perhatikan garis D4 yang memantau garis gangguan dari ADXL.

Langkah 2: Menambah Sensor Kejutan

Menambah Sensor Kejutan
Menambah Sensor Kejutan
Menambah Sensor Kejutan
Menambah Sensor Kejutan
Menambah Sensor Kejutan
Menambah Sensor Kejutan
Menambah Sensor Kejutan
Menambah Sensor Kejutan

Ok di sini saya telah menambahkan beberapa periferal ke sensor kejutan untuk bukti konsep.

Maaf sarang tikus buat masa ini apabila ia berfungsi, saya akan merancang pcb yang menghubungkan semua komponen dan memasukkannya ke dalam kotak yang cantik. Semua item yang dilampirkan kecuali kad SD berfungsi pada i2c yang terdapat di spi bus.

Tinggal untuk dilampirkan adalah modul GPS yang WIP tetapi saya harap dapat mempunyai penyelesaian pada akhir minggu ini.

Oleh itu, projek semasa terdiri daripada:

Papan LOLIN ESP32 dengan tanpa wayar.

Jam masa nyata PCF. Mengikuti tarikh dan masa semasa. Saya telah disisipkan kasar ke papan projek lama yang pernah saya ukir sebelumnya.

Kilat luaran. Menyimpan data persediaan untuk Accelerometer antara lain. Kapasiti 132k dan mungkin membuang beberapa data web di atasnya untuk memudahkan menu dll

Kad SD SPI untuk menyimpan data dan log pecutan fail. 8 GB tetapi boleh berkembang.

Paparan OLED untuk menunjukkan menu dan beberapa perkara lain.

Inilah yang akan [akhirnya] dilakukan

Pantau kejutan dan aktiviti yang melebihi latar belakang.

Daftarkan kejutan ke kad SD dengan waktu dan tarikh dari jam onboard.

Setem lokasi dari GPS ke kad SD jika ada

Menggunakan titik akses memuat naik data ke pelayan web untuk menganalisis data … ini boleh menjadi telefon bimbit.

| Mengimbas titik akses adalah kemampuan LOLIN32 seperti menghosting pelayan web untuk perintah dan kemudian menyambung sebagai klien ke pelayan web awan. Anda hanya boleh mencabut kad sd dan memuat naiknya!

Masih banyak yang perlu dilakukan tetapi ia terus berjalan.

Langkah 3: ALAMAT ADXL

ALAMAT ADXL
ALAMAT ADXL

Sekarang di sini adalah perkara yang lucu. Saya membeli cip ADXL 345 sebagai papan kecil kerana ia lebih murah daripada sumber cip sendiri….. bagaimana ia berfungsi? Bagaimanapun selepas itu saya mula menghubungkannya dengan bas i2c dan mendapati bahawa saya bertembung dengan eeprom dengan alamat yang berkesan bermula pada 0x53 yang diterjemahkan menjadi tulisan di A6 dan bacaan di A7.

Oleh itu, membaca bumf ternyata bahawa jika anda mengambil SDO / ALT ALAMAT TINGGI anda boleh memaksanya ke 1D

Ternyata papan kecil saya dilekatkan pada pin 12 ADXL walaupun pin SDO kelihatan seperti anda boleh menariknya tinggi. Jangan mencuba ini di rumah tanpa bekalan kuasa terhad sekarang …. mujurlah yang menyebabkan saya mengeluarkan multimeter dan memeriksa pin ke tanah. [Mati pendek] yang bermaksud anda perlu memotong trek dan jumper pin 12 hingga 3.3v. Ini berfungsi dan membuat anda keluar dari pertembungan prom. Nasib baik mereka tidak melakukan pendek di bawah cip atau jika tidak, saya pasti akan snookered dan terpaksa mengeluarkan cip dari papan. EEprom yang merupakan ganti yang saya ada diatur sebagai dua halaman 64k sebagai alamat 0x52 dan 53. Setelah saya melakukan ini masalah saya telah diselesaikan.

Membaca laman web sekali lagi ia mengatakan ia ditetapkan ke 0x53 tetapi dalam bentuk kecil sehingga berhati-hati!

Langkah 4: Cetakan PCB Skematik

Berikut adalah litar cepat dan komponen. Ini adalah reka bentuk saya dan masih WIP sarang tikus saya menghampiri dan sekarang sedang memasang papan yang akan dimasukkan ke dalam kotak kecil [Detail untuk diikuti]

Merujuk kepada shocker.pdf.

Papan terdiri daripada 8 komponen utama

  1. PENYIMPANAN KAD SD
  2. ACCELEROMETER ADXL
  3. TAMPILKAN OLED
  4. 3.3 V REG
  5. MODUL GPS1
  6. EEPROM
  7. RTC PEMASA
  8. ESP32 LOLIN CHIP DENGAN INTERFACE WIRELESS RF

Segala-galanya bergantung pada pecutan.

ADXL disiapkan untuk mengganggu pemproses di INT1 yang disalurkan ke pin 14 pada pemproses. Kod dalam mikro disediakan untuk memintas gangguan ini dan menetapkan bendera yang bertindak pada rutin utama. Saya akan menambahkan kod menggariskan mendaftarkan rutin gangguan dan fungsi panggilan balik kemudian.

ADXL menyokong gangguan pada keadaan yang berlainan seperti kejutan atau tidak aktif serta beberapa yang lain. Anda boleh menyembunyikan yang menggelitik minat anda berdasarkan apa yang anda cuba lakukan. ADXL dikendalikan dalam mod FIFO sehingga menyimpan 32 sampel untuk menangkap peristiwa kejutan sebagai XYZ [96 nilai]

Paparan ADXL RTC dan EEPROM semuanya dipacu dari I2C. SD CARD disambungkan ke SPI I / O dan modul GPS disambungkan ke port bersiri pada LOLIN bertanda X12 X11.

Urutannya adalah seperti berikut: Dapatkan data 232 dari unit GPS dan penapis secara berterusan. Semasa anda mempunyai Masa GPS yang sah, kemas kini RTC pada selang masa yang ditetapkan. Pada pemboleh ubah stor gangguan ke Kad SD seperti daftar masa / Lat_Lng / Kelajuan / Ketinggian / Kedai ADXL di pujian format mentah 2 dan pelengkap bukan 2. Semua data dibatasi dengan koma.

Anda juga akan perhatikan bahawa ada pin set semula yang disambungkan ke pin 13. Pin ini akan memulakan pelayan web terbina dalam yang membolehkan anda menyambung ke konfigurasi untuk mengatur titik akses yang disimpan di EEPROM. Pada Reboot, pemproses akan menyambung ke titik akses dan mengakses internet untuk memuat naik fail dari Kad SD. Sekiranya tidak ada data dan tidak ada titik penghubung maka unit ini hanya menjalankan proses log data ke kad sd yang boleh anda soal siasat menggunakan program [ShockerView.exe] [WIP] Pada pelayan data disimpan dalam pangkalan data SQL dan dipaparkan [WIP]

Cetakan PCB dilampirkan untuk Bahagian Atas dan Bawah.

Langkah 5: Prototaip Karya Seni

Prototaip Etching Karya Seni
Prototaip Etching Karya Seni
Prototaip Etching Karya Seni
Prototaip Etching Karya Seni
Prototaip Etching Karya Seni
Prototaip Etching Karya Seni

Inilah cara saya menghasilkan papan prototaip saya

Cetak karya seni itu ke atas beberapa kertas jejak berat. Saya menggunakan 63 GSM dari pandai besi, murah dan ceria. Pencetak adalah kunci di sini. Anda mahukan sekejap mungkin dan sebersih mungkin. Pencetak laser saya kini aktif tetapi bagus untuk mencetak hingga 10 ribu, kurang daripada itu anda memerlukan beberapa peralatan khas kerana butiran kertas penjejak mula menghalangi. Anda boleh membeli kertas khas tetapi hei itu terlalu bagus untuk saya. Bagaimanapun, saya sentiasa menyempurnakan reka bentuk saya sehingga terlalu mahal untuk saya. Sekiranya anda memerlukan papan yang betul, minta pakar untuk melakukannya.

Saya biasanya membuat prototaip papan saya dalam beberapa bahagian dan kemudian menghasilkan final dengan gerbers untuk dihasilkan oleh syarikat internet. Prototaip menyelesaikan semua kesalahan dan peninggalan sebelum melakukan wang sebenar.

Selepas anda mencetak gambar ke dua helai jejak A4 yang terpisah kemudian potong sehingga kedua-duanya bertindih dan menjualnya ke kedudukannya. tinggalkan ruang yang cukup untuk papan sisi anda untuk meremas di antara lapisan dan pastikan bahagian yang dicetak bertentangan dengan pcb. Buat beberapa celah untuk membolehkan anda memasukkan papan ke dalam dan menjualnya sementara. Sekiranya anda berhati-hati, anda boleh menindih selotip untuk membolehkan anda membukanya tanpa merosakkan gambar jejak.

Letakkan papan dengan satu sisi ke bawah di kotak UV anda. NB saya membuat tambang menggunakan empat lampu UV 13W baru dan beberapa alat kawalan lama dan membuat kotak dengan panel kaca jernih. Jarak adalah eksperimen. Tudung menutup dan menekan busa ke bahagian belakang papan memaksa topeng ke atas kaca. Sekiranya anda gagal melakukan ini, lampu akan mengurangkan daya tahan. Hidupkan dan dedahkan papan selama 1 minit 40 saat setiap sisi. Gunakan jam tangan anda. Sebenarnya saya mesti mengubahnya dengan pemasa di atasnya … oh tidak ada projek lain … mungkin saya akan membelinya … anda tahu anda tidak! Papan yang saya beli dari Mega Electronics adalah papan prototaip yang murah dengan daya tahan. Kekurangan etch kadang-kadang agak tidak rata tetapi saya mempunyai beberapa papan yang saya miliki selama empat tahun dan mereka masih menghasilkan papan yang baik untuk membuat prototaip !!

Berhati-hati semasa anda membalikkan papan, jangan biarkan ia tergelincir atau anda akan mempunyai sampah.

Sekarang sediakan pembangun anda. Saya menggunakan 2 capfuls pada 18: 1 sehingga dua caps pengembang dan 36 caps air paip murni yang tidak diubah. Pembangun datang dalam bentuk botol atau serbuk dan sebotol biasanya tahan lebih kurang 6 tahun !!. Campurkannya ke dalam bekas ais krim dan pakai glove. Jangan letakkan jari anda di dalamnya atau minyak akan menjejaskannya. Temp boleh menjadi masalah pada musim sejuk. Simpan air pada suhu 20 darjah atau sekitarnya, tidak kritikal tetapi jika sejuk hasilnya tidak dapat diramalkan. Saya telah melakukannya pada Januari di garaj saya dengan cerek sehingga anda dapat mengimbangi.

Gerakkan bekas dengan perlahan dari sisi ke sisi setelah anda meletakkan papan anda di dalamnya, Sekiranya anda melakukannya dengan betul, anda akan melihat aliran etentik Magenta dikeluarkan dari tembaga yang menunjukkan tembaga berkilat yang indah di antara trek. Balikkan dengan menggunakan sarung tangan anda untuk memeriksa bahagian lain. Proses ini biasanya mengambil bahagian atas satu minit sehingga apabila selesai, ambil papan keluar dan bilas dengan bersih dalam air suam. Sekiranya membosankan maka kemungkinan ia gagal.

Saya mempunyai ini beberapa kali tetapi biasanya kerana saya gagal memakai sarung tangan atau suhu terlalu rendah atau saya merosakkan masa pendedahan kerana ada gangguan … mengapa mereka melakukan ini di tengah-tengah sesuatu yang kritikal….

Tunjukkan kepada saya Lekapan Anda

Baiklah sekarang anda mempunyai papan dengan trek hijau yang indah yang dilindungi oleh etch resist dan sekarang perlu membentuk Ferric Chloride. Sekarang saya menggunakan bekas ais krim yang sama untuk mengurangkan sisa dan mencampurkan nota pada paket. Saya membeli Ferric Chloride dalam paket bola yang anda timbang dan larut menjadi larutan. Buat cukup untuk mengisi tabung ais krim kira-kira 1/3. Sekiranya anda cukup untuk pekerjaan itu, anda boleh mencurahkan ke dalam bekas plastik dan ia akan disimpan lama.

ANDA HARUS MENGGUNAKAN sarung tangan … bukan kerana minyak dan lain-lain tetapi kerana jika anda tidak, tangan anda akan berwarna oren cerah selama dua minggu. Saya pernah melakukan ini sebelum perjumpaan penting di London dan nampaknya saya telah tersentak. Walau bagaimanapun, sedar perkara ini tidak menyenangkan di mana-mana tembaga … dan apa sahaja. Pakai pakaian lama kerana jika dipakainya, mereka akan dibuang sampah. Ia menempel pada sinki keluli tahan karat dan secara amnya mengotorkan segalanya. Lakukan ini di luar atau di rumah yang jauh dari segala-galanya. Jangan mencurahkan sisa makanan ke saluran pembuangan, sangat bagus untuk membunuh bakteria yang bukan seperti yang ingin dipromosikan oleh pihak berkuasa air di tangki septik mereka. Bagi sesetengah pihak, ini juga tidak sah, jadi jangan lakukannya.

Semasa pertama kali memasukkan papan anda ke dalam penyelesaian, warna tembaga merah akan menjadi indah kerana tembaga diserang. Sekiranya tidak, anda mungkin masih mempunyai lapisan penentangan etch yang menghalang alat kerja berfungsi atau penyelesaian anda salah. Sekiranya itu berlaku, kembali ke papan gambar, saya takut, tetapi kemungkinan besar ejen anda salah jika anda mengikuti kehancuran.

Bagaimanapun jika semuanya baik, anda mempunyai beberapa trek sempurna yang dilindungi oleh etch resist.

Biasanya pada ketika ini profesional akan menggunakan satu set topeng untuk berkembang di sekitar lubang dan alas dan menghasilkan tembaga melalui dan menggunakan skrin sutera untuk melukis nombor komponen dll. Sayangnya saya tidak mempunyai masa atau kecenderungan dan membuat vias saya menggunakan beberapa wayar tembaga dari lapisan ke lapisan … jelas multi lapisan adalah tidak ada dengan kaedah ini. Sekiranya saya berminat, saya akan menambah nombor komponen dengan cermat ke lapisan cetakan sehingga anda juga dapat membuat nombor komponen. Ia dapat menjimatkan sedikit masa dalam pemasangan tetapi bergantung pada betapa sibuknya papan.

Saya sekarang memaparkan trek selama 2 minit atau lebih setiap sisi dan mencelupkan pemaju untuk menghilangkan semua daya tahan.

Saya sekarang menggerudi vias dan melalui lubang dan timah semua trek dan periksa kesinambungan dengan multimeter. Bahagian ini adalah sakit bola dan anda biasanya tidak akan melakukan papan profesional yang dihasilkan dengan vias sebenar tetapi perlu dilakukan untuk mengelakkan wayar melalui hanya disolder satu pihak … berlaku berkali-kali!

Langkah 6: Menyusun Dewan

Menghimpunkan Lembaga
Menghimpunkan Lembaga
Menghimpunkan Lembaga
Menghimpunkan Lembaga
Menghimpunkan Lembaga
Menghimpunkan Lembaga

OK jadi sekarang saya mempunyai papan siap untuk digunakan dan saya telah menggerudi semua lubang dan melalui lubang.

Benang semua bekas dengan wayar dan pateri di kedua-dua belah pihak. saya suka mengorek semua trek kerana perlindungan tidak perlu melakukannya tetapi menghentikan pengoksidaan tembaga.

Saya melampirkan kad sd yang dipasang di permukaan dan menambahkan dua tanah untuk mendapatkan solder di atasnya dan ia mempunyai beberapa pin di bawah untuk menahannya.

Seterusnya ditambahkan ADXL EEPROM dll.

Hebatnya rencananya ialah mengambil 5V dari USB atau Bat luaran dan memasangnya melalui reg 3.3V di papan. Saya mempunyai sedikit reg yang saya beli dari Ebay yang dipasang sebagai modul dan dinilai pada 800mA… itu 300 gretaer daripada yang boleh disediakan oleh USB. Saya belum melakukan pengukuran kuasa seperti mana yang berlaku dalam perisian….. mungkin menggunakan INAKTIVITI mengganggu dari ADXL untuk menangani. [WIP]

… perlu menambah gambar semasa proses berjalan.

Langkah 7: KOD

OK Saya tidak akan menjalani semua arduino yang disiapkan kerana orang lain telah membuat pekerjaan yang lebih baik di tempat lain.

Saya hanya akan memilih bit yang sesuai semasa kita pergi yang boleh digunakan dalam projek anda sendiri.

Ini masih dalam proses sejauh memuat naik ke laman web yang dipertimbangkan tetapi mari kita melalui beberapa kod.

Ideanya adalah bahawa fungsi normal adalah pada peranti yang terdiri daripada GPS / paparan / kad sd / jam masa nyata / ext_flashmemory dan accelerometer.

Selepas itu kita memasuki gelung menunggu untuk melihat apakah kunci interrupt sw ditekan. Jika kemudian lompat ke menu konfigurator untuk mengkonfigurasi rangkaian wifi untuk log masuk secara automatik ke peranti yang ditentukan sebagai input ke konfigurasi halaman web. Pertama ia mengimbas semua peranti untuk ssid dan kemudian membolehkan anda memilih satu dan menyimpannya untuk berkelip dengan bendera untuk menunjukkan bahawa pada but seterusnya memuatkan tetapan dari denyar. Anda selalu boleh mengatasi ini dengan memasukkan ipaddress dan menaip / killbill untuk memulai membersihkan flash dan memuatkan lalai.

berikut adalah fungsi gangguan yang ditentukan dalam kod untuk pecutan adxl dan lompat ke konfigurasi pada dua pin berasingan. Kami menggunakan gangguan ADXL untuk mengganggu acara SHOCK. Untuk kedua-dua gangguan, kami menetapkan bendera yang diset semula di "gelung" utama. inilah rupanya:

lihat kod yang dilampirkan

Langkah 8: Mencari Pin SDA SCL

gunakan kod ini:

Serial.println (SDA);

Serial.println (SCL);

mencetak pin yang kini dikonfigurasikan dalam ESP untuk SDL dan SCL

Terdapat fail yang digunakan untuk memetakan pin ke fungsi seperti port bersiri di ESP32

Disyorkan: