Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

Sistem deteksi jatuh berdasarkan Arduino, Windows dan Azure

Komponen dan persediaan

Arduino UNO
× 1
Microsoft Windows 10 IoT Core
Microsoft Azure
Microsoft Visual Studio 2015
Arduino IDE

Tentang proyek ini

Pengantar :

Jatuh yang menyebabkan cedera fatal telah menjadi tantangan besar yang tidak dapat diabaikan bagi orang tua. Dalam beberapa tahun terakhir, berbagai jenis pendekatan telah diusulkan di area deteksi jatuh, yang dapat dijelaskan dan dikategorikan menjadi tiga jenis:berbasis perangkat yang dapat dikenakan, berbasis sensor suasana dan berbasis penglihatan [1]. Pertama-tama, perangkat wearable biasanya memanfaatkan sensor tertanam untuk mendeteksi gerakan dan lokasi tubuh, seperti akselerometer, magnetometer, dan giroskop [2, 3]. Dan biaya pendekatan berbasis perangkat yang dapat dikenakan cukup rendah, serta pemasangan dan pengoperasiannya tidak rumit untuk orang tua. Kedua, pendekatan berbasis suasana selalu menggunakan sensor tekanan untuk mendeteksi dan melacak tubuh. Solusi ini juga hemat biaya dan mudah diterapkan [4, 5]. Namun, kemungkinan penginderaan objek selain tubuh manusia memberikan tantangan yang luar biasa terhadap akurasi deteksi pendekatan ini. Last but not least, solusi berbasis visi memanfaatkan sepenuhnya kamera yang dikerahkan untuk memantau semua objek dalam jangkauan, termasuk tubuh manusia [6, 7]. Ada lebih sedikit intrusi ke dalam kehidupan sehari-hari masyarakat daripada dua pendekatan di atas, sementara ruang observasi terbatas dan pemantauan di mana-mana tidak dapat dicapai.

Dalam proyek ini, sistem pengawasan berbasis Arduino, Windows 10 dan Microsoft Azure untuk deteksi jatuh real-time diusulkan. Data mentah akselerometer tiga dimensi disediakan oleh Arduino dengan ADXL345. Perangkat Windows 10 memanfaatkan informasi ini untuk mendapatkan orientasi subjek dengan penggabungan data yang efisien dan algoritme deteksi jatuh. Layanan Microsoft Azure dan aplikasi Seluler/PC juga dirancang untuk mencapai pemrosesan data yang mulus, menganalisis, menyimpan, dan memperoleh setiap saat dari tempat mana pun selama mereka memiliki akses ke Internet. Arsitektur sistem yang ditampilkan adalah Gambar 1 sebagai berikut.

Referensi

[1] L. Jian dan T. E. Lockhart, "Pengembangan dan Evaluasi Algoritma Deteksi Peristiwa Jatuh Sebelum Dampak," Rekayasa Biomedis, Transaksi IEEE pada, vol. 61, hlm. 2135-2140, 2014.

[2] P. Pierleoni, A. Belli, L. Palma, M. Pellegrini, L. Pernini, dan S. Valenti, "A Perangkat Wearable Keandalan Tinggi untuk Deteksi Jatuh Lansia," Jurnal Sensor, IEEE, vol. 15, hlm. 4544-4553, 2015.

[3] R. Freitas, M. Terroso, M. Marques, J. Gabriel, A. Torres Marques, dan R. Simoes, "Jaringan sensor yang dapat dipakai yang didukung oleh perangkat seluler untuk deteksi jatuh," dalam SENSORS, 2014 IEEE, 2014, hal. 2246-2249.

[4] Z. Xiaodan, H. Jing, G. Potamianos, dan M. Hasegawa-Johnson, "Deteksi jatuh akustik menggunakan model campuran Gaussian dan supervektor GMM," dalam Acoustics, Speech and Signal Processing, 2009. ICASSP 2009. IEEE International Konferensi, 2009, hlm. 69-72.

[5] L. Yun, K. C. Ho, dan M. Popescu, "Algoritma Pemisahan Sumber Efisien untuk Deteksi Jatuh Akustik Menggunakan Microsoft Kinect," Teknik Biomedis, IEEE Transactions on, vol. 61, hlm. 745-755, 2014.

[6] M. Yu, S. M. Naqvi, A. Rhuma, dan J. Chambers, "Satu klasifikasi metode batas kelas untuk aplikasi dalam sistem deteksi jatuh berbasis video," Computer Vision, IET, vol. 6, hlm. 90-100, 2012.

[7] E. E. Stone dan M. Skubic, "Deteksi Jatuh di Rumah Orang Dewasa yang Lebih Tua Menggunakan Microsoft Kinect," Biomedis dan Informatika Kesehatan, Jurnal IEEE, vol. 19, hlm. 290-301, 2015.

Prinsip Deteksi Jatuh dengan Pengenalan Postur

Dalam proyek ini, algoritme deteksi jatuh dirancang sesuai dengan Deteksi Jatuh-in-Android Bharadwaj Sreenivasan. Ada dua modul dalam algoritma, pengenalan postur dan deteksi jatuh. Pertama, kita membaca nilai x, y dan z dari akselerometer. Kemudian kita hitung norma L2 dari x, y, dan z. Ini digunakan oleh modul pengenalan postur dan deteksi jatuh.

Dalam modul pengenalan postur, postur pengguna diklasifikasikan menjadi tiga postur dasar:duduk, berdiri, dan berjalan. Nilai “y” diterapkan sebagai ambang batas untuk mengetahui orientasi. Menggunakan tingkat variasi norma L2 w.r.t berarti percepatan gravitasi (9.8) kami mengklasifikasikan data menjadi berjalan atau hanya transisi antar negara.

Modul deteksi jatuh mencari pola tertentu dalam sinyal. Gbr.2 mewakili pola tipikal dalam norma L2 selama kejadian musim gugur.

Jika perbedaan antara minima dan maksima berturut-turut lebih besar dari 2g, output diputuskan sebagai penurunan. Keputusan akhir tentang kejadian jatuh didasarkan pada output dari modul pengenalan postur dan modul keputusan jatuh. Saat jatuh terdeteksi, keputusan dari modul pengenalan postur memberi tahu kita apakah itu alarm palsu. Jika keadaan masih berjalan, keputusan acara jatuh dapat dibuang. Tabel 1 merangkum keputusan akhir.

Prasyarat

Dalam proyek ini, untuk perangkat Arduino, komunikasi Bluetooth dicapai oleh HC-06, yang merupakan modul paket kecil yang murah. Untuk perangkat windows 10, jika Anda menggunakan Surface Pro dan Lumia 1520, Anda tidak memerlukan modul Bluetooth. Namun, jika Anda menggunakan Raspberry Pi atau MBM sebagai Perangkat IoT Windows 10, Anda memerlukan dongle Bluetooth. Lihat Generic Serial Bluetooth MVP David Jones kami dengan Win 10 IoT-Core RPI2 untuk mengatur lingkungan.

Catatan:Diperlukan waktu 2-3 jam untuk menyelesaikan prasyarat jika Anda belum menyiapkan Windows 10 dan Visual Studio 2015 tetapi sebagian besar waktu itu tanpa pengawasan.

Yang Anda Butuhkan

Bagian:

1. Arduino Uno dan kabel USB A/B standar

2. Modul Bluetooth HC-06

3. Modul akselerometer ADXL345

4. Kabel jumper pria-pria dan pria-wanita

5. Papan tempat memotong roti mini

6. Lumia 1520 atau perangkat lain yang kompatibel dengan Windows Phone 10

7. Modul Bluetooth ORICO

Petunjuk Proyek

Langkah 1:Hubungkan modul akselerometer ADXL345 ke Arduino

Waktu :5 menit

Suku cadang :Arduino Uno R3, ADXL345, kabel jumper, papan tempat memotong roti mini

Alat :T/A

ADXL345 adalah akselerometer MEMS 3-sumbu kecil, tipis, berdaya rendah dengan pengukuran resolusi tinggi (13-bit) hingga +-16 g. Data keluaran digital diformat sebagai pelengkap 16-bit dan dapat diakses melalui antarmuka digital SPI (3- atau 4-kawat) atau I2C.

ADXL345 mendukung SPI dan I2C, kami hanya akan membicarakan I2C di sini dalam proyek ini. I2C adalah koneksi serial 2 kabel, jadi kita perlu menghubungkan jalur SDA (Data) dan SCL (Jam) ke Arduino UNO untuk komunikasi. Pada Arduino UNO, SDA pada pin analog 4, dan SCL pada pin analog 5. Pastikan kedua pin VCC dan CS pada sensor terhubung ke 3.3v. Kami menghubungkan CS ke 3.3V untuk memberi tahu sensor bahwa kami akan menggunakannya sebagai perangkat I2C, dan bukan perangkat SPI.

Langkah 2:Hubungkan modul Bluetooth

Waktu :5 menit

Suku cadang :Modul Bluetooth, kabel jumper

Alat :T/A

Dalam proyek ini, kami menggunakan HC-06 sebagai modul Bluetooth - jauh lebih murah daripada modul BlueSMiRF Silver dari SparkFun. Selanjutnya, HC-05 memiliki firmware 'penuh' di dalamnya, banyak perintah AT, dan dapat menjadi modul master dan slave. Firmware HC-06 di sisi lain hanya dapat menjadi perangkat budak, dengan perintah AT yang sangat terbatas. Tabel di bawah menunjukkan semua perintah firmware HC-06 dengan respons:

Pertama-tama, colokkan modul Bluetooth ke papan tempat memotong roti untuk mempermudah koneksi. Untuk memberi daya pada modul, jalankan jumper dari rel daya 5V Arduino ke pin Vcc modul. Dan jalankan jumper pria-pria dari pin GND modul ke salah satu pin GND di Arduino. Untuk membuat komunikasi serial, sambungkan jumper male-male dari pin TX modul Bluetooth ke pin RX Arduino (pin digital 0) dan yang lainnya dari pin RX modul ke pin TX Arduino (pin digital 1).

Catatan:Anda tidak akan dapat mengunggah sketsa dari Arduino IDE ke Arduino ketika Anda memiliki pin TX dan RX Bluetooth yang terhubung ke Arduino. Putuskan sambungan saat Anda perlu mengunggah sketsa dan sambungkan kembali setelah sketsa berhasil diunggah. Pada sketsa di bawah ini, terlihat bahwa HC-05 digunakan. Sebenarnya, seperti yang dijelaskan di atas, HC-05 dan HC-06 baik-baik saja.

Setelah koneksi Bluetooth dan accelerometer, hal yang nyata ditampilkan seperti ini:

Langkah 3:Memasangkan modul Bluetooth dengan Perangkat Windows 10

Waktu :5 menit

Suku cadang :Modul Bluetooth, perangkat Windows 10, modul ORICO Bluetooth (Opsional)

Alat :T/A

Modul Bluetooth menjalankan protokol SPP (Serial Protocol over Bluetooth). Jadi perangkat apa pun yang mendukung SPP dapat terhubung dengannya. Pada perangkat Windows 10, ini terlihat seperti port COM virtual. Sebelum menghubungkan, pastikan modul diberi daya dan siap dipasangkan. LED merah pada modul menunjukkan status:berkedip berarti "siap dipasangkan", sedangkan stabil berarti "berpasangan".

Pada Windows 10 untuk PC, cukup arahkan ke Pengaturan-> Perangkat-> Bluetooth, buat Bluetooth terbuka, dan kemudian modul "HC-06" akan ditampilkan di layar. Ketuk untuk memasangkan perangkat, dan masukkan kode pengupas perangkat. Harap diingat bahwa kode penyandingan default adalah 1234, dan kecepatan port serial default adalah 9600 Baud. Kemudian, halaman Bluetooth ditampilkan seperti ini:

Untuk Windows 10 untuk Seluler, navigasikan ke Pengaturan->Perangkat->Bluetooth, dan lakukan langkah yang sama seperti yang dijelaskan di bagian di atas. Dan halaman perangkat yang dipasangkan ditampilkan seperti ini:

Untuk perangkat Windows 10 IoT Core, misalnya Raspberry Pi 2, MBM dan Dragon Board 410c, proses pairingnya jauh berbeda. Pertama, untuk Raspberry Pi 2 dan MBM yang tidak memiliki modul Bluetooth bawaan, kita harus membeli dongle USB Bluetooth dan mencolokkannya. Lihat saja Daftar Kompatibilitas Perangkat Keras dan pilih dongle USB Bluetooth yang terverifikasi.

Dalam proyek ini, kami memilih modul ORICO BTA-403.

Jika Anda mencoba proyek ini di Dragon Board 410c, maka Anda tidak memerlukan dongle Bluetooth karena Dragon Board 410c memiliki modul Bluetooth terpasang.

Colokkan dongle USB Bluetooth ORICO BTA-403 di antarmuka USB Raspberry Pi 2 sebagai berikut.

Setelah dongle USB Bluetooth ORICO BTA-403 dicolokkan, itu akan menampilkan pesan di layar aplikasi default perangkat Windows 10 IoT Core.

Untuk pemasangan Bluetooth pada perangkat Windows 10 IoT Core, lihat halaman Memasangkan Perangkat BLE dan GATT Attribute Table Dump Tool dan ikuti “Langkah 1 – Langkah 6” yang dijelaskan di Bagian “Memasangkan Sensortag”. Di sini kita harus menggunakan SSH untuk terhubung ke Windows IoT Core dan menjalankan alat baris perintah untuk mengonfigurasi perangkat.

Catatan:ingat bahwa mode BR harus dipilih pada Menu Utama. Dan kode penyandingan default adalah 1234.

Setelah pasangan berhasil, Halaman Bluetooth perangkat ditampilkan seperti ini:

Langkah 4:Buat Akun Penyimpanan Azure

Waktu :10 menit

Suku cadang :T/A

Alat :Akun Azure

Dalam proyek ini, kita membutuhkan Azure Storage Table untuk menyimpan data dari perangkat Windows 10 IoT Core. Jadi, kita bisa membuatnya sebagai berikut.

(1) Di Portal Manajemen Azure (https://manage.windowsazure.com), klik ikon "STORAGE" di sebelah kiri untuk melihat akun penyimpanan yang ada (jika ada), lalu klik tombol "+NEW" di pojok kiri bawah.

(2) Di panel "BARU", pilih "LAYANAN DATA" | "PENYIMPANAN" | "CEPAT MEMBUAT". Isi kolom “URL, Lokasi/Afinitas Grup dan Replikasi”, lalu klik tombol "BUAT AKUN PENYIMPANAN".

(3) Tunggu hingga status akun penyimpanan baru ditampilkan sebagai "Online".

(4) Pilih akun Penyimpanan yang baru dibuat, lalu klik KELOLA KUNCI AKSES di bagian bawah halaman. Salin nama akun Penyimpanan dan salah satu kunci akses.

Langkah 5:Buat Tabel Penyimpanan Azure

Kami menggunakan Azure Storage Explorer (Ini adalah alat open source pihak ketiga yang tersedia di codeplex:https://azurestorageexplorer.codeplex.com) untuk membuat Tabel Penyimpanan Azure.

(1) Pergi ke tambah akun dan isi nama akun dan kunci akses. Setelah akun dibuat, Anda dapat mengakses penyimpanan yang menampilkan wadah gumpalan, Antrian, dan tabel.

(2) Pilih tabel dan klik tombol baru dan buat tabel baru bernama “Tabel Akselerometer” sebagai berikut.

Langkah 5:Unduh dan Terapkan Kode

Waktu :10 menit

Suku cadang :T/A

Alat :T/A

Pertama-tama, sekarang setelah kita memiliki semuanya untuk Arduino, unduh proyek "ADXL345_HC06.ino" dari (disediakan di bagian kode di bawah) dan muat ke Arduino IDE di PC Anda. Pastikan untuk mencabut kabel jumper TX/RX modul HC-06 dan kemudian unggah sketsa. Sambungkan kembali kabel jumper TX/RX ke pin digital 0 dan digital 1 Arduino. Colokkan daya dan aplikasi akan berjalan di Arduino Uno.

Kedua, unduh proyek "GenericBluetoothSerialUWApp" dari github. Gunakan Visual Studio 2015 dengan Pembaruan 1 untuk memuat "GenericBluetoothSerialUWApp". Aplikasi ini dirancang dengan bantuan Generic Serial Bluetooth MVP David Jones kami dengan Win 10 IoT-Core RPI2. Jika Anda ingin aplikasi UWP ini berjalan di PC, pilih x86 atau x64 dengan debugging perangkat lokal. Jika Anda ingin aplikasi UWP ini berjalan di Windows 10 Mobile, pilih ARM dengan Device debugging. Jika Anda ingin aplikasi UWP ini berjalan di perangkat Windows 10 IoT, misalnya Raspberry Pi 2, pastikan Anda menyetel titik “Remote Debugging” ke perangkat Anda.

Selanjutnya, buka MainPage.xaml.cs di Solution Explorer dan cari "dataTransferTick". Tambahkan nama akun penyimpanan dan kunci akses Anda yang disimpan di bagian 4.

Setelah memasangkan HC-06 dengan perangkat Windows 10 Anda, tekan F5 dari Visual Studio untuk meluncurkan aplikasi Universal Windows Platform.

Ketuk dua kali Simbol “HC-06”, Anda akan menemukan tampilan Id dan Name di bagian paling atas aplikasi sebagai berikut.

Segera, Anda dapat melihat bahwa status LED pada HC-06 akan berubah dari berkedip menjadi stabil. Dan tombol "Mulai Rev" diaktifkan segera setelah saluran komunikasi modul Bluetooth dibuat.

Klik Mulai Recv untuk mengaktifkan penerimaan data. Kemudian Anda akan melihat tombol Stop Recv, Process Data dan Upload Data diaktifkan. Cukup klik tombol Proses data untuk menjalankan algoritme deteksi jatuh. Anda akan melihat data di Recvd TextBlock dan status orang yang membawa perangkat.

Anda masih dapat menemukan data yang akan ditampilkan pada jendela debug Visual Studio sebagai berikut.

Kemudian, klik tombol Unggah untuk mengunggah data ke Azure. Data akan dikirimkan setiap 3 detik. Jika Anda ingin mengubah interval waktu, Anda dapat mengubah kode di “AzureButton_Click” sebagai berikut.

private void AzureButton_Click(pengirim objek, RoutedEventArgs e) {

timerDataTransfer =ThreadPoolTimer.CreatePeriodicTimer(dataTransferTick, TimeSpan.FromMilliseconds(Convert.ToInt32(3000 )));

}

Segera, Anda dapat melihat data di AccelerometerTable sebagai berikut

Ketiga, unduh "FallDetectionClient" dari github. Gunakan Visual Studio 2015 dengan Pembaruan 1 untuk memuat proyek ini. Aplikasi ini dibangun dengan Windows Universal Temple, sehingga Anda dapat menjalankannya di PC/Mobile Windows 10, serta perangkat Windows 10 IoT Core. Selanjutnya, buka StorageSensor.cs di Solution Explorer dan cari "_accountName" dan "_key". Tambahkan nama akun penyimpanan dan kunci akses Anda yang disimpan di bagian 4.

Sekarang Anda seharusnya dapat menekan F5 dari Visual Studio:Aplikasi akan diterapkan dan dimulai, dan Anda akan melihat ini pada output perangkat.

Kode

  • Sketsa Arduino (ADXL345_HC06.ino)
Arduino Sketch (ADXL345_HC06.ino)Arduino
ADXL345 Akselrometer + Modul Bluetooth HC-06
#include  #include  #define Register_ID 0#define Register_2D 0x2D#define Register_X0 0x32#define Register_X1 0x33#define Register_Y0 0x34#define Register_Y1 0x35# define Register_Z0 0x36#define Register_Z1 0x37int ADXAddress =0xA7>> 1; int membaca =0;int val =0;int X0, X1, X_out;int Y0, Y1, Y_out;int Z1, Z0, Z_out;double Xg, Yg, Zg;void setup(){ Serial.begin(9600); Kawat.mulai(); penundaan(100); Wire.beginTransmission(ADXAddress); Wire.write(Daftar_2D); Kawat.tulis(8); Wire.endTransmission();}void loop() { double tempx =0; char strx[5]; dua kali lipat =0; char mencoba[5]; suhu ganda =0; char strz[5]; string gi; Wire.beginTransmission(ADXAddress); Wire.write(Register_X0); Wire.write(Register_X1); Kawat.endTransmisi(); Wire.requestFrom(ADXAddress, 2); if (Wire.available() <=2); { X0 =Kawat.baca(); X1 =Kawat.baca(); X1 =X1 <<8; X_keluar =X0 + X1; } Wire.beginTransmission(ADXAddress); Wire.write(Daftar_Y0); Wire.write(Daftar_Y1); Kawat.endTransmisi(); Wire.requestFrom(ADXAddress, 2); if (Wire.available() <=2); { Y0 =Kawat.baca(); Y1 =Kawat.baca(); Y1 =Y1 <<8; Y_keluar =Y0 + Y1; } Wire.beginTransmission(ADXAddress); Wire.write(Register_Z0); Wire.write(Register_Z1); Kawat.endTransmisi(); Wire.requestFrom(ADXAddress, 2); if (Wire.available() <=2); { Z0 =Kawat.baca(); Z1 =Kawat.baca(); Z1 =Z1 <<8; Z_keluar =Z0 + Z1; } Xg =X_out / 256.00; Yg =Y_out / 256.00; Zg =Z_out / 256.00; if(Xg>0) { gy =String("")+ "x=+"+Xg; } else { gy =String("")+ "x="+Xg; } if(Yg>0) { gy +=String("")+ "y=+"+Yg; } else { gy +=String("")+ "y="+Yg; } if(Zg>0) { gy +=String("")+ "z=+"+Zg+","; } else { gy +=String("")+ "z="+Zg+","; } Serial.print(gy);}
Aplikasi Serial Bluetooth
Berkomunikasi dengan Arduino melalui bluetooth HC-06 dan mengirimkan data ADXL345 ke Azurehttps://github.com/shijiong/FallDetection/tree/master/GenericBluetoothSerialUWApp
FallDetectionClient
Aplikasi klien UWP untuk Deteksi Jatuhhttps://github.com/shijiong/FallDetection/tree/master/FallDetectionClient

Skema

ADXL345 + HC-06 Selesaikan%20Schematic.fzzSketch untuk Koneksi ADXL345 ADXL345.fzzSketch untuk Koneksi Modul Bluetooth hc-06.fzz

Proses manufaktur

  1. Sistem Kehadiran Menggunakan Arduino dan RFID dengan Python
  2. Sistem Robotika Deteksi Manusia Menggunakan Arduino Uno
  3. Desain PM2.5 dan PM 10 Detector untuk Aplikasi UWP Windows 10
  4. Sistem Pemantauan &Deteksi Kebakaran Hutan (dengan Peringatan SMS)
  5. u-blox LEA-6H 02 Modul GPS dengan Arduino dan Python
  6. Otomata Seluler berbasis Arduino dan OLED
  7. eDOT - Jam Presisi dan Stasiun Cuaca Berbasis Arduino
  8. Sistem Kehadiran Berbasis Arduino dan Google Spreadsheet
  9. Sistem Peringatan Deteksi Tabrakan Berbasis Arduino
  10. Kontrol Mobil dengan Arduino Uno dan Bluetooth