Selasa, 09 Mei 2017

Smart NoDed(ilive)



Halo, selamat bertemu lagi dengan saya. Kali ini saya akan memberikan laporan mengenai proyek yang sudah kami buat. Beberapa detail mengenai proyek kami sudah saya buat di pos sebelumnya ( masalah dan alternatif solusi) dan progress juga bisa dilihat dalam post sebelumnya.

Laporan ini secara garis besar akan berisi desain, UI, implementasi, dan pengujian. Masalah dan alternatif solusi telah dibahas pada dua post sebelum ini. Hal pertama yang saya bahas adalah spesifikasi desain. Terdapat banyak hal yang akan dijelaskan disini, jadi tetap dibaca hingga akhir ya. Berikut ini adalah hal-hal yang masuk dalam komponen spesifikasi desain.

Input : Sensor Gyro, infrared, koordinat gps
Output : Notifikasi (pengguna, RS), Log

Komponen
1. Smartphone dengan spesifikasi:

-Sistem operasi Android versi 4.2 atau lebih
-Prosesor 1.2 GHz
-Memori internal 1 GB
-RAM 512 MB
-Sound Card
-Resolusi layar 1280x720 pixel

2. Arduino Uno
3. Sensor Gyro
4. Sensor Infrared
5. Modul WiFi

Hal berikutnya yang akan saya berikan adalah desain perangkat keras. Secara garis besar perangkat keras terdiri dari arduino dan komponennya. Perangkat keras ini akan terhubung dengan server yang akan menyimpan data kecelakaan. Berikut ini adalah diagram yang menggambarkan desain dari perangkat keras Smart NoDed

Block diagram SmartNoded
Penjelasan berikutnya adalah desain perangkat lunak. Alur dari perangkat lunak sendiri pertama adalah selalu membaca bacaan yang diterima oleh sensor. Jika terdeteksi perubahan drastis maka algoritma akan bekerja untuk menentukan apakah kecelakaan atau bukan. Apabila terdeteksi kecelakaan maka akan dikirimkan konfirmasi pada pengguna apakah benar kecelakaan atau bukan. Apabila tidak ada reaksi dalam waktu tertentu maka bantuan akan dikirimkan kepada pengguna. Berikut ini adalah desain dari perangkat lunak.

Desain perangkat lunak


Desain UI yang kami buat menggunakan bantuan blynk dan thingspeak. blynk berguna sebagai pemberi tanda dan pengirim data ke database, yaitu server dari thingspeak. Berikut ini adalah desain dari UI yang kami buat.
UI Blynk


UI Thingspeak
UI yang kami buat memiliki desain yang mudah digunakan. Hal ini dimaksudkan supaya pengguna dapat menggunakannya pada saat darurat, yang tidak bisa memikirkan banyak hal sekaligus. UI juga bisa menampilkan seluruh data yang diinginkan, yaitu data bacaan dari sensor.

Impelementasi perangkat keras yang kami buat mengikuti desain yang sudah dibuat sebelumnya. Elemen yang ada adalah sebagai berikut.

Sistem mikrokontroller = Menggunakan sensor gyro dan infrared sebagai sensor utama. Gyro sebagai pendeteksi posisi dari mobil dan infrared sebagai pendeteksi keberadaan orang. LED sebagai indikator dan button sebagai pengirim bantuan. Modul WiFi sebagai pengirim sinyal ke blynk. Gyro akan mengecek perubahan posisi dan infrared akan mengecek apakah ada orang atau tidak, apabila tidak ada maka bantuan tidak akan dikirim. Jika ada maka bantuan akan segara dikirimkan. LED menandakan berbagai kondisi yang ada di mikrokontroller

Networking = Networking menggunakan modul wifi. Data akan dikirimkan melalui blynk terlebih dahulu menggunakan esp8266. Setelah itu data akan dikirimkan ke web server. Penyajian data menggunakan grafik.

System integration = Integrasi sistem menggabungkan pendeteksi kecelakaan dan pengiriman data. Pendeteksi kecelakaan akan mendeteksi kecelakaan, apabila kondisi itu sudah dipenuhi maka data akan dikirimkan melalui blynk terlebih dahulu. Data akan dikirimkan berikutnya menuju web server dan penyajian akan menggunakan grafik

Berikut ini adalah rangkaian perangkat keras yang kami buat.

Rangkaian perangkat keras

Berikutnya adalah implementasi perangkat lunak. Source code mengikuti desain yang telah dibuat sebelumnya. Dikarenakan kode terlalu panjang maka akan saya berikan potongan2 kode yang memiliki fungsi penting. Berikut ini adalah potongan kodenya.

Program pertama akan melakukan inisasi terlebih dahulu. Blynk akan dinyalakan dan sensor mulai melakukan pembacaan terhadap lingkungan sekitar.


Dikarenakan kualitas komponen, maka terdapat jeda waktu untuk menstabilkan bacaan. Apabila bacaan sudah stabil maka akan muncul pesan.



Selanjutnya akan masuk dalam algoritma penentuan kecelakaan. Jika terdeteksi terjadi perubahan maka akan dibuat nilai kecelakaan, apabila terdapat orang pada mobil maka akan dikirimkan konfirmasi. Apabila tidak terdapat orang maka tidak akan dikirimkan konfirmasi. Apabila orang tersebut tidak menekan tombol konfirmasi maka bantuan akan dikirimkan, apabila ditekan maka bantuan tidak akan dikirimkan.



Lalu bacaan sensor akan dikirimkan ke server untuk disimpan pada database.

Selanjutnya adalah pengujian. Berikut ini adalah komponen, skenario, dan parameter pengujian


Subsistem
Komponen yang Diuji
Keterangan
Sistem Sensor
Berjalan atau tidaknya sensor
Kalibrasi sensor
Sensor diuji dua tahap, yaitu mengecek nyala tidaknya sensor dan mengecek kesesuaian output dari sensor
Sistem Komputer
Notifikasi pada board
Algoritma penentu kecelakaan pada mobil
Komponen yang dicek adalah muncul tidaknya notifikasi pada board dan ketepatan algoritma penentu kecelakaan
Sistem Pengirim Sinyal
Sinyal kepada proxy server
Mengecek sampai tidaknya sinyal di proxy server
Sistem Notifikasi dan Konfirmasi
Algoritma penentu kecelakaan
Menguji ketepatan algoritma penentu kecelakaan
Proxy Server
Penerima sinyal
Pengirim notifikasi pada notifikasi
Menguji apakah sinyal dapat diterima oleh proxy server dan apakah notifikas diterima. Selain itu mengecek apakah data berhasil disimpan



No
Subsistem
Komponen
Cara pengujian
1.
Sistem sensor
Sensor gyro
Menguji apakah sensor dapat membaca arah rotasi dari sensor
Sensor passive infrared
Menguji apakah sensor dapat mendeteksi gerakandalam kendaraan dengan jarak dari 15cm hingga 3m.
2.
Sistem komputer
Arduino
Menguji apakah Arduino dapat menerima masukan program.
Menguji apakah Arduino dapat membaca nilai sensor (uji pin Arduino)
3.
Sistem pengirim sinyal
Modul GSM untuk Arduino
Menguji apakah modul GSM dapat mengirim SMS ke modul GSM Arduino pada server
4.
Sistem notifikasi dan konfirmasi
On-board display
Menguji apakah display dapat menampilkan pesan dari Arduino
Button
Menguji apakah button dapat mendeteksi bahwa button telah ditekan.
Menguji apakah button dapat menerima pencetan hingga 10.000 pencetan.
5.
Proxy server
Blynk Server
Menguji apakah data terkirimkan ke blynk server dan bisa ditampilkan di mobile apps
Thingspeak server
Menguji apakah data terkirimkan ke thingspeak server, disimpan, dan bisa ditampilkan di web apps
Arduino
Menguji apakah Arduino dapat menerima masukan program.
Menguji apakah arduino dapat membaca nilai sensor (uji pin Arduino)


Berikut ini adalah hasil pengujian yang didapatkan.




Pertama menguji inisasi, dapat dilihat bahwa perangkat berhasil mengeluarkan nilai-nilai sensor secara periodikal.



Setelah itu diberikan perubahan drastis pada bacaan sensor, maka akan terjadi perubahan dan lampu akan menyala secara kelap-kelip.

Setelah itu dicek apakah data berhasil disimpan pada server atau tidak, dapat dilihat bahwa data sudah tersimpan pada server.

Melihat pengujian sudah berhasil dilakukan maka dapat dikatakan bahwa proyek ini telah berhasil dengan sempurna. Walaupun ada beberapa spesifikasi awal yang dihilangkan karena beberapa keterbatasan, akan tetapi Smart NoDed dapat menjalankan fungsinya dengan baik. Saya berharap bahwa proyek ini ke depannya dapat diperbaiki dan memenuhi potensi penuhnya, sehingga dapat memberikan manfaat nyata ke masyarakat.

Saya harap apa yang telah saya tulis ini dapat bermanfaat baik bagi saya atau bagi pembaca. Sampai bertemu di lain kesempatan

Arrivederci

Team :
Fachri Satrya P
Aditya Ghifari
Theo Tanadi