Pelacak Perjalanan Mudah Canggih dengan Arduino: GPS, Sensor & Baterai
Komponen dan perlengkapan
Arduino 101
Baterai AA
Tampung baterai 4xAA
Accessory Shield
Sensor tekanan Adafruit BMP180
Breakout GPS Adafruit Ultimate
Sensor magnetik 3 sumbu Adafruit
Sensor kelembaban Adafruit AM2320
Baterai koin Adafruit CR2012 (2 buah)
Resistor 10k ohm
Resistor 3.9 k
Alat dan mesin yang diperlukan
Pistol lem panas
Pemolot
Aplikasi dan layanan online
Arduino IDE digunakan untuk pemrograman.
Tentang proyek ini
Apa itu Pelacak Perjalanan Mudah?
Pelacak Perjalanan Mudah adalah perangkat untuk merasakan perubahan di lingkungan sekitar seorang pemandu perjalanan mudah selama berjalan kaki.
Ide adalah untuk mengamati perubahan suhu, tekanan, kelembaban, ketinggian, lokasi, arah dll. Ini memberikan wawasan menarik tentang berjalan kaki.
Di pegungan di mana dingin, kering, udara kepadatan rendah dibandingkan dengan daratan lebih rendah, banyak orang merasa sulit untuk bernapas. Beberapa mengalami iritasi kulit kering. Perangkat ini memungkinkan orang yang tertarik dengan berjalan kaki untuk mengetahui batas mereka. Ada juga kegiatan pergi ke tempat ketinggian tinggi. Dapat mengetahui ketinggian adalah hal yang menyenangkan!
Tidak hanya pegungan tetapi juga menjelajahi rawa, gurun, hutan - dengan masing-masing memiliki profil lingkungan yang unik, dapat memantau lingkungan saat bepergian adalah cara yang lebih baik untuk memahami alam.
Video demonstrasi
Langkah 1: Perangkat keras, untuk apa?
Ada banyak pemantauan yang berlangsung dengan proyek ini
Accessory Shield dilengkapi dengan beberapa perangkat I2C papan:
Sensor suhu LM 75B untuk mengukur suhu lingkungan
Accelerometer 3 sumbu ADXL345 untuk mengirimkan kemiringan dan gravitasi
RTC presisi tinggi DS3231 untuk mengukur waktu
Sensor magnetik 3 sumbu HMC5883 untuk mengukur arah kompas
Sensor kelembaban AM2320 untuk mengukur % RH udara
Sensor tekanan BMP180 untuk mengukur tekanan atmosfer dan ketinggian
Sensor GPS MTK3339 untuk mengukur lokasi dan jarak yang ditempuh
Pada Arduino Uno:
Pembagi tegangan 3.9k + 22k untuk mengukur tegangan baterai 4 AA
OLED 1306 untuk melihat data
Buzzer untuk bunyi alarm
LED RGB tidak diperlukan untuk proyek ini
Antarmuka XBee tidak digunakan tetapi pin Arduino D2, D3, D9, D10 dapat dihasilkan dari antarmuka ini untuk proyek lain, D2 terhubung ke reset, yang memungkinkan mereset Arduino dari kode !
Joystick 5 arah tidak digunakan
Potensiometer 101 tidak digunakan
Langkah 2: Memodifikasi & Menghubungkan Perangkat Keras
Beberapa modifikasi dilakukan pada Arduino Uno. Ia dipasang pada tampung baterai 4 AA dengan standoff baut dan lem panas.
4 AA dan CR1220 (untuk RTC) dipasang pada tampung baterai.
Ada ruang di antara tampung baterai dan papan Arduino Uno di mana sensor tekanan, kelembaban, magnetik dan GPS dapat ditempatkan.
Sensor I2C disolder bersama pada potongan papan pref dan ditempatkan di ruang ini
Sensor ini terhubung ke Arduino Uno dari sisi bawah:
Pembagi tegangan ditambahkan untuk mengukur tegangan baterai 4 baterai AA.
Garir pengukuran tegangan paket baterai AA pergi ke pin ADC A1:
Joystick pada shield dipetakan ke pin ACD A1 melalui A5. Itulah sebabnya joystick dilepas dan dilepas.
Dengan menghubungkan beberapa pad pada Accessory Shield (untuk skematik lihat referensi) dengan jembatan solder D2 (untuk reset lunak), D3, D9, D10 pin Arduino dibuat tersedia pada antarmuka Xbee.
Komponen bertumpuk seperti ini:
Lapisan atas : Accessory Shield pada Arduino
Lapisan tengah : Sensor lain dan GPS akan pergi antara Uno dan Kotak Baterai
Lapisan bawah : Tampung Baterai 4 AA dengan baterai
Dan koneksi terlihat seperti ini:
Langkah 3 : Memprogram Perangkat
Arduino IDEBuild 1.8.5 digunakan untuk memprogram perangkat. Pertama semua pustaka berikut disertakan atau diunduh menggunakan pengelola pustaka.
Dengan mengetik nama sensor pada kotak pencarian pengelola pustaka, pustaka yang sesuai akan muncul.
Beberapa pustaka Accessory Shield (lihat referensi) ditambahkan melalui opsi zip.file
Setelah menambahkan pustaka yang diperlukan, kode contoh untuk setiap sensor ditinjau untuk menemukan API untuk sensor yang terkait.
Selanjutnya, semua header pustaka disertakan dalam satu sketsa Arduino kosong.
Setelah beberapa edit, kompilasi dan debug (termasuk koneksi longgar, di mana saya menemukan BMP180 bekerja tanpa Vcc karena daya bocoran untuk pin I2C mungkin ) dan unggah - akhirnya kode siap.
Peringatan
Perhitungan ketinggian berdasarkan penurunan tekanan udara, hanya berlaku selama kondisi cuaca normal.
Kode kompas tidak dikompensasi kemiringan dalam perangkat lunak, perangkat harus dipegang di bidang rata. Ada lingkaran kompas tetap, di dalamnya ada lingkaran variabel radius lain. Ketika perangkat miring, lingkaran dalam akan meningkat. Ketika dalam posisi rata (yakni kedua komponen x dan y accelerometer hampir 0) lingkaran dalam akan menyusut menjadi titik. Ini adalah saat arah kompas lebih akurat.
Sudut deklinasi kompas tergantung pada lokasi dan variasi medan magnet Bumi. Yang mungkin terpengaruh oleh badai matahari. Jika sudut deklinasi tidak disertakan, arah kompas akan keluar beberapa derajat.
Cari deklinasi untuk daerah Anda : https://www.magnetic-declination.com
Arah kompas rentan terhadap objek magnet di dekat, seperti kehadiran mineral magnet kuat di pegungan.
Tegangan operasi minimum perangkat sekitar 4,5 volt. Ini saat baterai AA harus diganti.
Waktu dan Tanggal diprogram dari kode, jika waktu perlu diubah baterai koin harus dicabut dan dipasang kembali. Unggah program baru dengan waktu baru dalam kode akan mengubah waktu.
Selama pengembangan modul GPS tidak tersedia. Oleh karena itu, koordinat demo ditempatkan di Lat-Long. Jika seseorang ingin mereplikasi proyek ini, diperlukan untuk menyertakan pustaka GPS dan kode terkait.
Bidang XY Accelerometer dan Magnetometer tergantung pada pemasangan pada PCB. Kode diperlukan untuk disesuaikan sesuai.
Bacaan accelerometer rentan terhadap getaran. Disarankan untuk menggunakan perangkat dalam kondisi diam.
Ruang lingkup perbaikan
Perbaikan dapat dilakukan dari sisi firmware untuk beberapa fitur tambahan:
Pencatatan berkala parameter pada EEPROM
Bunyi alarm buzzer saat mencapai tragu ketinggian/lokasi
Pengingat minum air
Pengingat istirahat
Alarm baterai rendah
Peringatan suhu rendah, kelembaban
Kalibrasi kompas perangkat lunak untuk kompensasi kemiringan (banyak trigonometri)
Pengambilan deklinasi otomatis menggunakan GPS dan konektivitas IoT melalui aplikasi Gateway
Seperti untuk bagian perangkat keras perbaikan:
Saklar input pengguna untuk pengaturan waktu, deklinasi dll.
Kotak 3D khusus untuk perangkat
Menggunakan baterai LiPo rechargeable
Desain PCB papan tunggal kompak untuk lebih banyak portabilitas
Kesimpulan
Berpergian & Berjalan kaki adalah menyenangkan, saat Anda dapat memeriksa perubahan di lingkungan sekitar, itu membuat hal-hal lebih menarik. Khususnya, memeriksa perubahan ketinggian, kelembaban, tekanan dan suhu dalam jam-jam saat berjalan kaki. Perangkat ini memberi tahu Anda pada ketinggian apa Anda merasa sakit ketinggian, tingkat kelembaban apa yang membuat kulit Anda kering - hal-hal seperti itu. Meskipun ada ruang untuk perbaikan dalam tata letak sirkuit dan kode untuk menangani peringatan, masih menyenangkan untuk memiliki perangkat seperti ini saat pergi ke wilayah liar!
Sumber daya eksternal
https://www.waveshare.com/wiki/Accessory_Shield
Perangkat keras yang direkomendasikan untuk versi yang lebih baik dari proyek ini