Daftar Isi:

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, Juli
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 pikir saya akan mulai mendokumentasikan beberapa temuan saya sejauh ini.

Proyek saat ini adalah antarmuka ke accelerometer ADXL345 dan seperti yang ditunjukkan foto di atas saya telah berhasil menghubungkannya ke lolin dan mengkonfigurasi ADXL sebagai sensor kejut.

Register pada ADXL telah diatur sebagai pdf terlampir dan interupsi yang telah saya konfigurasikan dalam kode untuk mengeluarkan kode pada port serial setelah kejutan terdeteksi.

Saya juga mengatur register tidak aktif sebagai interupsi dan setelah memeriksa interupsi mana yang telah dipicu kemudian memuntahkan data yang sama.

Saya menggunakan port I2c pada LOLIN dan Anda akan melihat saya memiliki rutinitas untuk mengeluarkan register pada ADXL sehingga saya dapat memeriksa konfigurasi saat debugging. Fungsi ini berjalan dalam fungsi pengatur waktu menggunakan perpustakaan ticker. Ini adalah fungsi yang berguna untuk mengatur debugging dan memeriksa register jika Anda menulis sesuatu di sana yang secara misterius menyebabkan data melakukan beberapa hal aneh.

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

Lihat PDF terlampir dengan beberapa data yang telah saya impor dan saya telah membuat grafik di excel yang menunjukkan beberapa ketukan pada ADXL yang dipicu oleh interupsi di register pemicu menggunakan mode FIFO.

Mode FIFO adalah fitur yang berguna yang tidak mengikat mikro dan menyimpan 32 sampel pada pemicu. Sekali lagi lihat dump data saya dan Anda dapat melihat di mana kita mulai dari titik nol dan sampel terakhir pada 9.8ms atau sekitar itu. Garis X pada grafik menunjukkan waktu dalam mikrodetik meningkat dari kiri ke kanan.

CATATAN SAYA TELAH MENGUBAH GRAFIK TERAKHIR UNTUK MENUNJUKKAN TIMELINE DARI MINUS 9800 mikrodetik. Pop pertama FIFO adalah data paling awal sisanya lebih tua. Tampilan harus dari kanan ke kiri.

Perhatikan tiga kabel ke papan ADXL. SDA/SCL dan INT dari INT 1. Sekali lagi jika Anda melihat pengaturan register dan referensi silang lembar data, itu akan masuk akal.

Sampel data dimiringkan penuh pada 3200 sampel yang memberikan 3125 udetik antara sampel.dan pengambilan 4 sampel sebelumnya. Lihatlah pdf data dari perangkat di excel dan masing-masing grafik yang saya gambarkan menunjukkan saya memindahkan jendela pengambilan.

Saya akan memasang beberapa kode konfigurasi dan menyela jika ada yang tertarik.

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

Perhatikan sniffer data kecil yang saya hubungkan ke SDA/SDL dan menggunakan Sigrok saya dapat memecahkan kode bus I2C secara real time.

Langkah selanjutnya adalah menyimpan ke disk SAN meskipun saya sudah membuktikannya berfungsi. Setelah selesai, saya akan menghubungkan ke nirkabel dan mengunggah ke situs web.

Saya akan menambahkan ini saat proyek berkembang.

CATATAN KAKI:

Untuk yang jeli di luar sana, Anda akan melihat penyok besar di kaleng yang melindungi chip esp dan jumper pada PCB. Ini karena penduduk Cocker Spaniel yang memeriksa surat dan memutuskan untuk mengunyah papan sebelum mengizinkan saya mengaksesnya. Saya pikir dia adalah penggemar non-espressif!.

Tentu saja seperti biasa saya selalu siap untuk pertanyaan jadi silakan bertanya.

Langkah 1: SIGROK DAN PULSEVIEW

SIGROK DAN PULSAVIEW
SIGROK DAN PULSAVIEW
SIGROK DAN PULSAVIEW
SIGROK DAN PULSAVIEW

Hanya dengan cepat menyebutkan pulseview dan sigrok.

Ini adalah perangkat lunak gratis dari internet dan papan antarmuka kecil dengan 8 input logika murah dari ebay dkk. Anda akan melihat beberapa gambar yang saya ambil dari bus saat ADXL sedang berjalan dan ini sangat berguna lagi untuk debugging karena memiliki dekoder bawaan untuk I2C.

Lingkup sangat bagus untuk memeriksa level sinyal tetapi decoding tangan I2c paling melelahkan meskipun saya telah menyiapkan loop sebelumnya dan melakukan debug tangan. Anda harus menghargai sedikit membenturkan pada tingkat port yang telah saya lakukan pada banyak proyek gambar tetapi memakan waktu dan rentan terhadap kesalahan…terutama di malam hari!!

Terima kasih kepada orang-orang yang menulis aplikasi ini. Ini adalah pengiriman dewa untuk proyek di i2c, Perhatikan jalur D4 yang memantau jalur interupsi dari ADXL.

Langkah 2: Menambahkan ke Sensor Kejut

Menambahkan ke Sensor Kejut
Menambahkan ke Sensor Kejut
Menambahkan ke Sensor Kejut
Menambahkan ke Sensor Kejut
Menambahkan ke Sensor Kejut
Menambahkan ke Sensor Kejut
Menambahkan ke Sensor Kejut
Menambahkan ke Sensor Kejut

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

Maaf sarang tikus untuk saat ini setelah berhasil saya akan merancang PCB yang menghubungkan semua komponen dan memasukkan semuanya ke dalam kotak yang cantik. Semua item yang terpasang kecuali kartu SD bekerja pada i2c yang ada di spi bus.

Yang tersisa untuk dilampirkan adalah modul GPS yang merupakan WIP tetapi saya berharap dapat menemukan solusi pada akhir minggu ini.

Jadi proyek saat ini terdiri dari:

Papan ESP32 LOLIN dengan nirkabel.

Jam waktu nyata PCF. Melacak tanggal dan waktu saat ini. Saya telah menyolder kasar ke papan proyek lama yang telah saya ukir sebelumnya.

Lampu kilat eksternal. Menyimpan data setup untuk Accelerometer antara lain. Kapasitas 132k dan mungkin membuang beberapa data web di dalamnya untuk memfasilitasi menu dll

Kartu SD SPI untuk menyimpan data dan log akselerometer file. 8 GB tetapi dapat diperluas.

Layar OLED untuk menampilkan menu dan beberapa hal lainnya.

Inilah yang akan [akhirnya] lakukan

Pantau guncangan dan aktivitas yang melebihi latar belakang.

Daftarkan guncangan ke kartu SD dengan waktu dan tanggal dari jam onboard.

Cap lokasi dari GPS ke kartu SD jika tersedia

Menggunakan titik akses, unggah data ke server web untuk menganalisis data…ini bisa berupa ponsel.

|Memindai titik akses adalah kemampuan LOLIN32 sebagai hosting server web untuk perintah dan kemudian menghubungkan sebagai klien ke server web cloud. Anda selalu dapat mencabut kartu sd dan mengunggahnya!

Masih banyak yang harus dilakukan tetapi terus berlanjut.

Langkah 3: ALAMAT ADXL

ALAMAT ADXL
ALAMAT ADXL

Sekarang inilah hal yang lucu. Saya membeli chip ADXL 345 sebagai papan kecil karena lebih murah daripada membeli chip sendiri…..bagaimana cara kerjanya? Bagaimanapun setelah itu saya mulai menghubungkannya ke bus i2c dan menemukan saya memiliki bentrokan dengan eeprom dengan alamat yang secara efektif mulai dari 0x53 yang diterjemahkan menjadi menulis di A6 dan membaca di A7.

Jadi baca bumfnya ternyata kalo ambil SDO/ALT ALAMAT HIGH bisa di paksa ke 1D

Ternyata papan kecil saya terhubung ke ground pada pin 12 ADXL meskipun pin SDO terlihat seperti Anda dapat menariknya tinggi. Jangan coba ini di rumah tanpa catu daya terbatas saat ini …. untungnya saya punya yang menyebabkan saya mengeluarkan multimeter dan memeriksa pin ke ground. [Dead short] yang berarti Anda harus memotong trek dan pin jumper 12 ke 3.3v. Ini bekerja dan membuat Anda keluar dari bentrokan prom. Untungnya mereka tidak melakukan short di bawah chip atau saya akan tertipu dan harus menghapus chip dari papan. EEprom yang merupakan cadangan yang saya miliki diatur sebagai dua halaman 64k sebagai alamat 0x52 dan 53. Setelah saya melakukan ini, masalah saya terpecahkan.

Membaca halaman web lagi itu mengatakan set ke 0x53 tetapi dalam cetakan kecil jadi hati-hati!

Langkah 4: Cetakan PCB Skema

Berikut ini adalah rangkaian cepat dan komponen. Ini sangat banyak desain saya dan masih WIP [Bekerja Dalam Proses] Skema dirancang dan kemudian diterjemahkan ke dalam karya seni untuk trek. Saya telah memverifikasi semua komponen berfungsi seperti yang diharapkan menggunakan sarang tikus saya mendekat dan sekarang saya sedang merakit ke papan yang akan masuk ke dalam kotak kecil [Rincian untuk diikuti]

Mengacu pada shocker.pdf.

Papan terdiri dari 8 komponen utama

  1. PENYIMPANAN KARTU SD
  2. ADXL ACCELEROMETER
  3. TAMPILAN OLED
  4. 3.3 V REG
  5. MODUL GPS1
  6. EEPROM
  7. TIMER RTC
  8. ESP32 LOLIN CHIP DENGAN RF NIRKABEL ANTARMUKA

Semuanya bergantung pada akselerometer.

ADXL diatur untuk menginterupsi prosesor pada INT1yang dirutekan ke pin 14 pada prosesor. Kode di mikro diatur untuk mencegat interupsi ini dan menetapkan tanda yang ditindaklanjuti dalam rutinitas utama. Saya akan menambahkan kode menguraikan mendaftarkan rutin interupsi dan fungsi panggilan balik nanti.

ADXL mendukung interupsi pada keadaan yang berbeda seperti kejutan atau ketidakaktifan ditambah beberapa lainnya. Anda dapat menutupi yang menggelitik kesukaan Anda berdasarkan apa yang Anda coba lakukan. ADXL dioperasikan dalam mode FIFO sehingga menyimpan 32 sampel untuk menangkap peristiwa kejutan sebagai XYZ [96 nilai]

Tampilan ADXL RTC dan EEPROM semuanya digerakkan dari I2C. SD CARD terhubung ke SPI I/O dan modul GPS terhubung ke port serial pada LOLIN bertanda X12 X11.

Urutannya adalah sebagai berikut Terus ambil 232 data dari unit dan filter GPS. Sementara Anda memiliki GPS Time yang valid, perbarui RTC pada interval yang ditentukan. Pada variabel penyimpanan interupsi ke Kartu SD seperti register time/Lat_Lng/Speed/Altitude/Store ADXL di pelengkap format mentah 2 dan pelengkap non 2. Semua data dipisahkan koma.

Anda juga akan mencatat bahwa ada pin reset yang terhubung ke pin 13. Pin ini akan memulai server web bawaan yang memungkinkan Anda terhubung ke konfigurator untuk mengatur titik akses yang disimpan di EEPROM. Saat Reboot prosesor akan terhubung ke access point dan mengakses internet untuk mengunggah file dari SD Card. Jika tidak ada data dan tidak ada titik koneksi maka unit hanya melakukan proses data logging ke kartu sd yang dapat Anda interogasi menggunakan program [ShockerView.exe][WIP]Di server data disimpan dalam database SQL dan ditampilkan[WIP]

Cetakan PCB dilampirkan untuk Atas dan Bawah.

Langkah 5: Prototipe Etsa Karya Seni

Prototipe Etsa Karya Seni
Prototipe Etsa Karya Seni
Prototipe Etsa Karya Seni
Prototipe Etsa Karya Seni
Prototipe Etsa Karya Seni
Prototipe Etsa Karya Seni

Inilah cara saya memproduksi papan prototipe saya

Cetak karya seni di atas kertas kalkir tebal. Saya menggunakan 63 GSM dari pandai besi, murah dan ceria. Printer adalah kuncinya di sini. Anda ingin seburam mungkin dan sebersih mungkin. Printer laser saya sedang menyala sekarang tetapi bagus untuk mencetak hingga 10 ribu, kurang dari itu Anda memerlukan beberapa peralatan khusus karena butiran kertas kalkir mulai menghalangi. Anda dapat membeli kertas khusus tapi hei itu terlalu bagus untuk orang seperti saya. Bagaimanapun saya terus menyempurnakan desain saya sehingga akan terlalu mahal untuk saya. Jika Anda membutuhkan papan yang tepat maka mintalah para ahli untuk melakukannya.

Saya biasanya membuat prototipe papan saya dalam beberapa bagian dan kemudian menghasilkan final dengan gerbers untuk diproduksi oleh perusahaan internet. Prototipe memilah semua kesalahan dan kelalaian sebelum melakukan uang nyata.

Setelah Anda mencetak gambar ke dalam dua lembar kalkir A4 yang terpisah, lalu potong sehingga keduanya melapisi dan menempelkannya pada posisinya. sisakan ruang yang cukup untuk papan dua sisi Anda untuk masuk di antara lapisan dan pastikan sisi yang dicetak menempel pada PCB. Buat beberapa celah untuk memungkinkan Anda memasukkan papan dan selotip untuk sementara. Jika Anda berhati-hati, Anda dapat menutupi selotip untuk memungkinkan Anda membukanya tanpa merusak gambar tracing.

Letakkan papan dengan satu sisi menghadap ke bawah di dalam kotak UV Anda. NB Saya membuat milik saya menggunakan empat lampu UV 13W baru dan beberapa peralatan kontrol lama dan membuat kotak dengan panel kaca bening. Spasi adalah eksperimental. Tutup klip ke bawah dan meremas busa ke bagian belakang papan memaksa topeng ke kaca. Jika Anda gagal melakukan ini, cahaya akan melemahkan resistensi etsa. Nyalakan dan paparkan papan selama 1 menit 40 detik per sisi. Gunakan jam tangan Anda. Sebenarnya saya harus memodifikasi ini dengan timer di atasnya … oh tidak ada proyek lain … mungkin saya akan membeli satu … Anda tahu Anda tidak akan! Papan yang saya beli dari Mega Electronics adalah papan prototipe murah dengan etch resist. Penolakan etsa kadang-kadang agak tambal sulam tetapi saya memiliki beberapa papan yang saya miliki selama empat tahun dan mereka masih menghasilkan papan yang bagus untuk prototyping!!

Hati-hati saat Anda membalik papan, jangan biarkan tergelincir atau Anda akan memiliki beberapa sampah.

Sekarang siapkan pengembang Anda. Saya menggunakan 2 tutup botol pada 18: 1 jadi itu dua tutup pengembang dan 36 tutup air keran murni yang tidak tercemar. Pengembang datang dalam bentuk botol atau bubuk dan botol biasanya bertahan sekitar 6 tahun!!. Campur dalam wadah es krim DAN PAKAI SARUNG TANGAN. Jangan memasukkan jari Anda ke dalamnya atau minyak akan mempengaruhinya. Suhu bisa menjadi masalah di musim dingin. Pertahankan air pada suhu 20 derajat atau sekitar itu, tidak kritis tetapi jika dingin hasilnya tidak dapat diprediksi. Saya telah melakukan ini pada bulan Januari di garasi saya dengan ketel sehingga Anda dapat mengimbanginya.

Pindahkan wadah dengan hati-hati dari sisi ke sisi setelah Anda meletakkan papan di dalamnya. Jika Anda melakukannya dengan benar, Anda akan melihat aliran Magenta dari etsa yang menolak dikeluarkan dari tembaga memperlihatkan tembaga mengkilap yang indah di antara trek. Balikkan menggunakan sarung tangan Anda untuk memeriksa sisi lainnya. Proses ini biasanya memakan waktu sekitar satu menit, jadi setelah selesai keluarkan papan dan bilas dengan air hangat. Jika membosankan maka kemungkinan gagal.

Saya telah mengalami ini beberapa kali tetapi biasanya karena saya gagal memakai sarung tangan atau suhu terlalu rendah atau saya mengacaukan waktu pemaparan karena beberapa gangguan … mengapa mereka melakukan ini di tengah-tengah sesuatu yang kritis ….

Tunjukkan Lukisan Anda

Ok jadi sekarang Anda memiliki papan dengan trek hijau yang indah yang dilindungi oleh penahan etsa dan sekarang perlu membuat Ferric Chloride. Sekarang saya menggunakan wadah es krim yang sama untuk meminimalkan limbah dan mencampurnya dengan catatan pada paket. Saya membeli Ferric Chloride dalam paket bola yang Anda timbang dan larutkan ke dalam larutan. Make up secukupnya untuk mengisi bak es krim sekitar 1/3 dari jalan. Jika Anda membuat cukup untuk pekerjaan itu maka Anda dapat menuangkan ke dalam wadah plastik dan itu akan disimpan untuk waktu yang lama.

ANDA HARUS MENGGUNAKAN SARUNG TANGAN…bukan karena minyak dll, tetapi karena jika tidak, tangan Anda akan berwarna oranye terang selama dua minggu. Saya pernah melakukan ini sebelum pertemuan penting di London dan sepertinya saya telah ditarik. Namun perlu diketahui bahwa hal-hal ini buruk di sekitar tembaga apa pun … dan apa pun sebenarnya. Kenakan pakaian lama karena jika terkena, pakaian itu akan dibuang. Itu menempel pada wastafel stainless steel dan umumnya menodai segalanya. Lakukan ini di luar atau di kakus jauh dari segalanya. Jangan tuangkan sisa makanan ke selokan, itu bagus untuk membunuh bakteri yang tidak ingin dipromosikan oleh otoritas air di septic tank mereka. Untuk beberapa otoritas ini juga ilegal jadi jangan lakukan itu.

Ketika Anda pertama kali mencelupkan papan Anda ke dalam larutan, itu akan menjadi warna perunggu merah yang indah saat tembaga diserang. Jika tidak maka Anda mungkin masih memiliki lapisan penahan etsa yang mencegah etsa bekerja atau solusi Anda salah. Jika itu yang terjadi maka kembali ke papan gambar saya khawatir, tapi tidak mungkin etsa Anda salah jika Anda mengikuti penghancuran.

Pokoknya jika semuanya baik-baik saja, Anda memiliki beberapa trek sempurna yang dilindungi oleh etsa resist.

Biasanya pada titik ini profesional akan menggunakan satu set topeng untuk berkembang di sekitar lubang dan bantalan dan menghasilkan melalui tembaga melalui plus menggunakan layar sutra untuk mengecat nomor komponen dll. Sayangnya saya tidak punya waktu atau keinginan dan membuat vias saya menggunakan beberapa kawat tembaga dari lapisan ke lapisan … jelas multi lapisan adalah tidak tidak dengan metode ini. Jika saya berminat saya akan dengan susah payah menambahkan nomor komponen ke lapisan cetak sehingga Anda mengetsa nomor komponen juga. Ini dapat menghemat waktu dalam perakitan tetapi tergantung pada seberapa sibuk papan.

Saya sekarang mengekspos trek selama 2 menit atau lebih per sisi dan mencelupkan ke pengembang untuk menghapus semua penahan etsa.

Saya sekarang mengebor vias dan lubang apa pun dan timah semua trek dan memeriksa kontinuitas dengan multimeter. Bagian ini adalah sakit bola dan Anda biasanya tidak akan melakukannya untuk papan yang diproduksi profesional dengan vias yang benar tetapi layak dilakukan untuk menghindari via kawat hanya disolder di satu sisi… terjadi berkali-kali!

Langkah 6: Merakit Papan

Perakitan Papan
Perakitan Papan
Perakitan Papan
Perakitan Papan
Perakitan Papan
Perakitan Papan

OK jadi sekarang saya memiliki papan yang siap untuk digunakan dan saya telah mengebor semua vias dan melalui lubang.

Masukkan semua vias dengan kawat dan solder kedua sisinya. saya suka timah semua trek sebagai perlindungan tidak harus melakukannya tetapi menghentikan pengoksidasi tembaga.

Saya memasang kartu sd yang merupakan pemasangan permukaan dan menambahkan dua tanah untuk mendapatkan paku payung di atasnya ditambah memiliki beberapa pin di bawah untuk menahannya.

Selanjutnya ditambahkan ADXL EEPROM dll.

Dari segi daya, rencananya adalah mengambil 5V dari USB atau Bat eksternal dan memasukkannya melalui reg 3.3V di papan. Saya memiliki sedikit reg yang saya beli dari Ebay yang dirakit sebagai modul dan diberi nilai 800mA…itu 300 lebih dari USB dapat menyediakan. Saya belum melakukan pengukuran daya apa pun karena mungkin mengubah perangkat lunak…..mungkin menggunakan interupsi INACTIVITY dari ADXL untuk menanganinya.[WIP]

…perlu menambahkan gambar saat pembangunan berlangsung.

Langkah 7: KODE

OK saya tidak akan membahas semua pengaturan arduino karena orang lain telah melakukan pekerjaan yang jauh lebih baik di tempat lain.

Saya hanya akan memilih bit terkait saat kita pergi yang dapat digunakan dalam proyek Anda sendiri.

Ini masih dalam proses sejauh pengunggahan ke situs web dipertimbangkan tetapi mari kita lihat beberapa kode.

Idenya adalah bahwa fungsi normal adalah init pada perangkat yang terdiri dari GPS /display/sd card/real time clock /ext_flashmemory dan accelerometer.

Setelah itu kita masuk ke loop menunggu untuk melihat apakah tombol interupsi sw ditekan. Jika kemudian lompat ke menu konfigurator untuk mengonfigurasi jaringan wifi untuk masuk otomatis ke perangkat yang ditentukan sebagai input ke konfigurator halaman web. Pertama, memindai semua perangkat untuk ssid dan kemudian memungkinkan Anda memilih salah satu dan menyimpannya ke flash dengan bendera untuk menunjukkan bahwa pada boot berikutnya memuat pengaturan dari flash. Anda selalu dapat mengesampingkan ini dengan memasukkan alamat ipad dan mengetik /killbill untuk memulai pembersihan flash dan memuat default.

di sini adalah fungsi interupsi yang didefinisikan dalam kode untuk akselerometer adxl dan lompat ke konfigurator pada dua pin terpisah. Kami menggunakan interupsi ADXL untuk menginterupsi acara SHOCK. Untuk kedua interupsi, kami menetapkan flag yang direset di "loop" utama. inilah tampilannya:

lihat kode terlampir

Langkah 8: Menemukan Pin SDA SCL

gunakan kode ini:

Serial.println(SDA);

Serial.println(SCL);

mencetak pin yang saat ini dikonfigurasi dalam ESP untuk SDL dan SCL

Ada file yang digunakan untuk memetakan pin ke fungsi seperti port serial di ESP32

Direkomendasikan: