Daftar Isi:
- Langkah 1: Suku Cadang & Aksesoris
- Langkah 2: Deskripsi Bagian: Sense Hat
- Langkah 3: Perakitan: Perekam Dampak
- Langkah 4: Perakitan: Perekam Dampak di Papan Dasbor Mobil
- Langkah 5: Perekam Dampak: Bekerja & Aplikasi
- Langkah 6: Deskripsi Perangkat Lunak: Node Red
- Langkah 7: Dasar-dasar Node-merah
- Langkah 8: Node-red: Flow _1a
- Langkah 9: Node Merah: Flow_1b
- Langkah 10: Node Merah: Flow_2a
- Langkah 11: Node Merah: Flow_2b
- Langkah 12: Node Merah; Arus_3
- Langkah 13: MQTT
- Langkah 14: MQTT: Pelanggan
- Langkah 15: MQTT: Mengedit Properties di Node-red
- Langkah 16: Kode Python:
- Langkah 17: Kode Terakhir
- Langkah 18: Memantau Video Langsung
Video: Perekam Dampak untuk Kendaraan: 18 Langkah (dengan Gambar)
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:55
Perekam Dampak dirancang untuk merekam dampak berkelanjutan ke kendaraan saat mengemudi atau stasioner. Dampak disimpan dalam database dalam bentuk bacaan serta video/gambar. Setelah dampak, pengguna jarak jauh dapat diverifikasi secara real time, dan pengguna jarak jauh dapat menonton video yang disimpan atau mengambil akses jarak jauh ke kamera pi dan menonton acara yang sesuai..
Langkah 1: Suku Cadang & Aksesoris
(1) Raspberry Pi 3 atau lebih baik: Daya komputasi diperlukan
(2) Topi rasa raspberry pi
(3) kamera Raspberry pi / kamera Usb
(4) Kartu memori dengan gambar raspbian terbaru (Harus mendukung node merah, hampir setiap gambar terbaru mendukung)
(5) Catu daya minimal 2,1 A (saya telah menggunakan bank baterai untuk operasi mandiri di dalam mobil)
Langkah 2: Deskripsi Bagian: Sense Hat
Sense HAT memiliki matriks LED 8x8 RGB, joystick lima tombol dan termasuk sensor berikut:
- Giroskop
- Akselerometer
- Magnetometer
- Suhu
- Barometrik
- tekanan
- Kelembaban
Informasi lebih lanjut tentang bekerja dengan topi akal dapat diperoleh dari tautan berikut: Sense_Hat
API untuk sense hat di-host di: Sense_hat_API
Kode untuk pemrograman sense-hat tercakup dalam langkah-langkah selanjutnya. Kode sense hat juga dapat disimulasikan pada simulator yang dihosting di: Sense-hat simulator
Langkah 3: Perakitan: Perekam Dampak
- Perakitan lebih sederhana karena topi indra perlu ditumpuk di atas pi (baut pemasangan yang ditunjuk dilengkapi dengan topi indra).
- Kamera USB atau kamera pi dapat dihubungkan. Dalam tutorial, kamera pi dipertimbangkan dan pengkodean yang sesuai dilakukan untuk hal yang sama.
- Masukkan kartu memori dan konfigurasikan kode python dan node -red (konfigurasi & kode tercakup dalam langkah selanjutnya)
Gambar di atas menunjukkan kamera-pi terhubung melalui kabel pita datar ke pi
Langkah 4: Perakitan: Perekam Dampak di Papan Dasbor Mobil
Untuk pemasangan perekam, saya telah menggunakan selotip dua sisi, keuntungannya adalah perekam dapat dengan mudah digeser ke posisi yang berbeda, mana yang paling sesuai dengan mobil Anda.
Kamera lebih lanjut dipasang secara vertikal seperti yang ditunjukkan, menggunakan pita sisi ganda yang sama, Berikutnya adalah menghubungkan sumber daya (bank daya 10.000 mAH) bersama dengan koneksi internet yang siap
Koneksi internet diperlukan untuk aplikasi MQTT (rincian untuk MQTT tercakup dalam langkah lebih lanjut)
Langkah 5: Perekam Dampak: Bekerja & Aplikasi
Dari sense hat, akselerasi dan giroskop digunakan untuk memeriksa apakah nilai mentah berada di luar batas yang ditetapkan dalam kode.
Akselerometer: Akselerometer menunjukkan jumlah gaya gravitasi (G-force) yang bekerja pada masing-masing sumbu x, y & z, jika ada sumbu yang mengukur gaya lebih dari 1G, maka gerakan cepat dapat dideteksi. (harap perhatikan sumbu yang mengarah ke bawah akan memiliki nilai 1g dan perlu dipertimbangkan sesuai dengan kode python).
Giroskop; Giroskop digunakan untuk mengukur gerakan sudut, yaitu selama belokan tajam sensor mungkin diaktifkan (tergantung pada pengaturan dalam kode), jadi seseorang yang memutar kendaraan dengan tajam akan tertangkap!!
Setiap aktivasi batas yang ditetapkan juga ditampilkan pada matriks LED topi akal sebagai "!" merah untuk akselerasi & hijau untuk aktivasi giroskop
Langkah 6: Deskripsi Perangkat Lunak: Node Red
Node-RED adalah alat pemrograman berbasis aliran, awalnya dikembangkan oleh Tim Layanan Teknologi Berkembang IBM dan sekarang menjadi bagian dari JS Foundation.
Informasi lebih lanjut tentang node merah dapat diperoleh melalui tautan berikut: node-red
Untuk kasus kami, kami akan menggunakan node -red untuk aktivitas berikut
(1) Berinteraksi dengan joystick untuk memulai fungsi kamera
(2) Memantau dampak pada kendaraan dan menyampaikan informasi kepada pengguna akhir dengan menggunakan MQTT dan selanjutnya menerima perintah pengguna akhir melalui MQTT dan memulai aplikasi yang diperlukan pada pi
(3) Melakukan beberapa hal dasar seperti mematikan pi
Langkah selanjutnya memberikan informasi rinci untuk diagram alir yang diimplementasikan pada node-red
Harap perhatikan diagram alur simpul-merah berinteraksi dengan kode python, maka bagian terakhir mencakup aspek kode python
Langkah 7: Dasar-dasar Node-merah
Langkah-langkah Dasar tertentu disorot untuk memulai Node-red dalam sekejap, tetapi ya node-red terlalu sederhana untuk memulai dan mengerjakan aplikasi.
- Mulai Node-red:
- Memulai Node-red saat pi terhubung ke internet https:// ip address>:1880
Langkah 8: Node-red: Flow _1a
Flow _1a, memantau setiap perubahan dalam file CSV dan berdasarkan perubahan tersebut, yaitu dampak terdeteksi, perekaman video kamera diatur ke mode dan selanjutnya pengguna diberitahu melalui internet bahwa dampak telah terjadi
Langkah 9: Node Merah: Flow_1b
Dalam alur tersebut, perekaman video dapat dimulai kapan saja hanya dengan menekan joystick
Langkah 10: Node Merah: Flow_2a
Dalam aliran tersebut, setiap kali ada gambar atau video baru disimpan/diunggah ke direktori, informasi tersebut diteruskan ke pengguna terdaftar melalui internet
Langkah 11: Node Merah: Flow_2b
Aliran ini terutama dirancang untuk pengguna jarak jauh, untuk mengontrol perangkat dengan cara berikut:
(a) perangkat shutdown
(b) mengambil gambar
(c) Rekam video
(d) mulai kode utama (kode datalogger adalah kode utama yang menghitung dampak)
Langkah 12: Node Merah; Arus_3
Alur dirancang untuk akses lokal, untuk memulai kode utama atau perangkat shutdown
Langkah 13: MQTT
MQTT (Message Queuing Telemetry Transport) adalah protokol TCP/IP, di mana penerbit dan pelanggan berinteraksi.
Dalam kasus kami Pi adalah penerbit, sedangkan aplikasi yang diinstal di ponsel/PC kami adalah pelanggan.
Dengan cara ini untuk menghasilkan dampak apa pun, informasi disampaikan dari jarak jauh ke pengguna (koneksi internet yang berfungsi adalah keharusan)
Informasi lebih lanjut tentang MQTT dapat diakses dari tautan berikut: MQTT
Untuk mulai menggunakan MQTT, kita harus mendaftar terlebih dahulu, untuk tutorial saya menggunakan cloudmqtt (www.cloudmqtt.com), ada paket gratis di bawah "kucing imut", itu saja.
Setelah mendaftar, buat instance, katakan "pi" setelah itu Anda akan mendapatkan detail berikut:
- Nama server
- Pelabuhan
- nama pengguna
- kata sandi
Hal-hal di atas diperlukan saat berlangganan melalui ponsel/pc
Untuk aplikasi saya, saya telah menggunakan aplikasi MQTT dari google play store (versi Android)
Langkah 14: MQTT: Pelanggan
Aplikasi MQTT berjalan di ponsel (versi Android)
Dampak yang terdeteksi pada pi diteruskan kembali
Langkah 15: MQTT: Mengedit Properties di Node-red
Di simpul-merah setelah memilih simpul MQTT, "Nama server" dan "topik" akan disebutkan. Ini harus sama di ujung pelanggan
Langkah 16: Kode Python:
Fungsionalitas kode sesuai dengan diagram alur terlampir
Langkah 17: Kode Terakhir
Kode python terlampir
Untuk menjalankan skrip python dari terminal, kita perlu membuatnya dapat dieksekusi sebagai chmod +x datalogger.py, selain itu bagian atas kode harus berisi baris "shebang" berikut #! /usr/bin/python3 (ini diperlukan untuk menjalankan fungsi dari node-red)
#!/usr/bin/python3 // Shebang linefrom sense_hat impor SenseHat dari datetime impor datetime dari csv impor penulis impor RPi. GPIO sebagai GPIO dari waktu impor tidur
akal = SenseHat()
impor csv
stempel waktu = datetime.now()
delay = 5 // delay didefinisikan untuk menyimpan data dalam file data.csv red = (255, 0, 0) green = (0, 255, 0) yellow = (255, 255, 0)
#GPIO.setmode(GPIO. BCM)
#GPIO.setup(17, GPIO. OUT)
def get_sense_impact():
sense_impact = acc = sense.get_accelerometer_raw() sense_impact.append(acc["x"]) sense_impact.append(acc["y"]) sense_impact.append(acc["z"])
gyro = sense.get_gyroscope_raw()
sense_impact.append(gyro["x"]) sense_impact.append(gyro["y"]) sense_impact.append(gyro["z"])
kembalikan sense_impact
def impact(): // berfungsi untuk mendeteksi dampak #GPIO.setmode(GPIO. BCM) #GPIO.setup(4, GPIO. OUT) akselerasi = sense.get_accelerometer_raw() x = akselerasi['x'] y = akselerasi['y'] z = percepatan['z'] x=abs(x) y=abs(y) z=abs(z)
gyro = sense.get_gyroscope_raw()
gyrox = gyro["x"] gyroy = gyro["y"] gyroz = gyro["z"]
gyrox = bulat(gyrox, 2)
gyroy = bulat(gyroy, 2) gyroz = bulat(gyroy, 2)
dampak = get_sense_impact()
jika x > 1.5 atau y > 1.5 atau z > 1.5: // nilai yang ditetapkan setelah iterasi di jalan sebenarnya dapat diubah sesuai dengan tipe dan keterampilan mengemudi yang berbeda dengan open('impact.csv', 'w', newline=' ') sebagai f: data_writer = writer(f) data_writer.writerow(['acc x', 'acc y', 'acc z', 'gyro x', 'gyro y', 'gyro z']) #GPIO. output(4, GPIO. HIGH) sense.clear() sense.show_letter("!", red) data_writer.writerow(impact)
elif gyrox > 1.5 atau gyroy > 1.5 atau gyroz > 1.5: // nilai ditetapkan dengan melihat kecepatan di mana belokan dimulai dengan open('impact.csv', 'w', newline='') sebagai f: data_writer = writer(f) data_writer.writerow(['acc x', 'acc y', 'acc z', 'gyro x', 'gyro y', 'gyro z']) #GPIO.output(4, GPIO. TINGGI) sense.clear() sense.show_letter("!", hijau) data_writer.writerow(impact)
lain:
# GPIO.output(4, GPIO. LOW) sense.clear()
def get_sense_data(): // berfungsi untuk merekam dan menyimpan nilai dari sensor sense_data =
sense_data.append(sense.get_temperature()) sense_data.append(sense.get_pressure()) sense_data.append(sense.get_humidity())
orientasi = sense.get_orientation()
sense_data.append(orientasi["yaw"]) sense_data.append(orientasi["pitch"]) sense_data.append(orientasi["roll"])
acc = sense.get_accelerometer_raw()
sense_data.append(acc["x"]) sense_data.append(acc["y"]) sense_data.append(acc["z"]) mag = sense.get_compass_raw() sense_data.append(mag["x"]) sense_data.append(mag["y"]) sense_data.append(mag["z"])
gyro = sense.get_gyroscope_raw()
sense_data.append(gyro["x"]) sense_data.append(gyro["y"]) sense_data.append(gyro["z"])
sense_data.append(datetime.now())
kembalikan sense_data
dengan open('data.csv', 'w', baris baru='') sebagai f:
data_penulis = penulis(f)
data_writer.writerow(['temp', 'pres', 'hum', 'yaw', 'pitch', 'roll', 'acc x', 'acc y', 'acc z', 'mag x', ' mag y', 'mag z', 'gyro x', 'gyro y', 'gyro z', 'datetime'])
sementara Benar:
print(get_sense_data()) untuk event di sense.stick.get_events(): # Periksa apakah joystick ditekan jika event.action == "ditekan": # Periksa arah mana jika event.direction == "naik": # sense.show_letter("U") # Akselerasi panah atas = sense.get_accelerometer_raw() x = akselerasi['x'] y = akselerasi['y'] z = akselerasi['z'] x=bulat(x, 0) y =bulat(y, 0) z=bulat(z, 0)
# Perbarui rotasi tampilan tergantung ke arah mana if x == -1: sense.set_rotation(90) elif y == 1: sense.set_rotation(270) elif y == -1: sense.set_rotation(180) else: sense.set_rotation(0) sense.clear() t = sense.get_temperature() t = bulat(t, 1) pesan = "T: " + str(t) sense.show_message(pesan, teks_warna = merah, scroll_speed=0.09) elif event.direction == "turun": akselerasi = sense.get_accelerometer_raw() x = akselerasi['x'] y = akselerasi['y'] z = akselerasi['z'] x=putaran(x, 0) y=bulat(y, 0) z=bulat(z, 0)
# Perbarui rotasi tampilan tergantung ke arah mana if x == -1: sense.set_rotation(90) elif y == 1: sense.set_rotation(270) elif y == -1: sense.set_rotation(180) else: sense.set_rotation(0) # sense.show_letter("D") # Panah bawah sense.clear() h = sense.get_humidity() h = round(h, 1) message = "H: " + str(h) sense.show_message(message, text_color = hijau, scroll_speed=0,09) p = sense.get_pressure() p = round(p, 1) message = "P: " + str(p) sense.show_message(message, text_colour = kuning, scroll_speed = 0,09)
# elif event.direction == "kiri":
# akselerasi = sense.get_accelerometer_raw() # x = akselerasi['x'] #y = akselerasi['y'] #z = akselerasi['z'] #x=putaran(x, 0) #y=putaran(y, 0) #z=bulat(z, 0)
# Perbarui rotasi tampilan tergantung ke arah mana // Tidak digunakan dan dikendalikan oleh node-red #if x == -1: sense.set_rotation(90) #elif y == 1: sense.set_rotation(270) #elif y == -1: sense.set_rotation(180) #else: sense.set_rotation(0) #sense.show_letter("L") # Panah kiri # elif event.direction == "kanan": # sense.show_letter ("K") # Panah kanan # elif event.direction == "middle": # sense.clear()
dampak()
data = get_sense_data()
dt = data[-1] - timestamp jika dt.seconds > delay: data_writer.writerow(data) timestamp = datetime.now()
Langkah 18: Memantau Video Langsung
Perekam Dampak juga dapat digunakan untuk memantau video langsung, karena video dapat dimulai kapan saja di mana saja melalui MQTT
kami akan menggunakan VLC player untuk melakukan streaming video, secara default di raspbian terbaru VLC sudah diinstal sebelumnya, jika tidak instal vlc seperti di bawah
Informasi lebih lanjut tentang melihat aliran jaringan dapat diakses melalui aliran Jaringan VLC
Terima kasih telah membaca!!
Masih banyak lagi yang bisa dilakukan perekam dampak..
Perhatikan ruang selanjutnya untuk analisis medan magnet dalam melakukan pemetaan rintangan
Direkomendasikan:
Latihan Perekam Dengan Makey Makey: 7 Langkah (dengan Gambar)
Latihan Perekam Dengan Makey Makey: Siswa Musik kami harus menyelesaikan lagu di perekam untuk mendapatkan sabuk (potongan benang berwarna) sampai mereka mencapai status Sabuk Hitam. Terkadang mereka mengalami masalah dengan penempatan jari dan "pendengaran" lagu menjadi hidup
ScanUp NFC Pembaca/penulis dan Perekam Audio untuk Tunanetra, Tunanetra dan Orang Lain: 4 Langkah (dengan Gambar)
ScanUp NFC Pembaca/penulis dan Perekam Audio untuk Tunanetra, Tunanetra dan Semua Orang Lain: Saya belajar desain industri dan proyek ini adalah pekerjaan semester saya. Tujuannya adalah untuk mendukung tunanetra dan tunanetra dengan perangkat, yang memungkinkan untuk merekam audio dalam format .WAV pada kartu SD dan memanggil informasi itu dengan tag NFC. Jadi di
TripComputer - GPS Trip Computer & Modul Cuaca untuk Kendaraan Anda: 11 Langkah (dengan Gambar)
TripComputer - Modul Komputer & Cuaca Perjalanan GPS untuk Kendaraan Anda: Proyek raspberry pi keren yang menggunakan modul pelarian GPS dan 2 layar Digole kecil untuk memiliki komputer navigasi di dasbor Anda
Monitor Kekuatan Dampak Raspberry Pi!: 16 Langkah (dengan Gambar)
Monitor Kekuatan Dampak Raspberry Pi!: Seberapa besar dampak yang dapat ditangani tubuh manusia? Baik itu sepak bola, panjat tebing, atau kecelakaan sepeda, mengetahui kapan harus mencari pertolongan medis segera setelah tabrakan sangat penting, terutama jika tidak ada tanda-tanda kecelakaan yang jelas
Perekam Pemutaran Dengan Raspberry Pi: 7 Langkah (dengan Gambar)
Perekam Pemutaran Dengan Raspberry Pi: Hai semuanya,Dalam instruksi ini saya menjelaskan bagaimana saya membuat perekam pemutaran menggunakan Raspberry Pi. Perangkat ini adalah Raspberry Pi model B+, dengan 7 tombol tekan di atas, speaker yang terhubung ke salah satu port usb Pi, dan mikrofon yang terhubung ke