BAB III
PERANCANGAN ALAT
Pada bab ini akan dijelaskan tentang perancangan dari perangkat keras dan perangkat lunak yang digunakan pada sistem.
3.1 Gambaran Sistem
Gambar 3.1 Diagram Blok Perangkat Keras
Pada diagram blok di atas terdapat 4 loadcell yang akan membaca berat boneka yang mewakili bayi lalu data dikirimkan ke mikrokontroller NodeMCU melalui modul HX711. Data yang didapat selanjutnya diolah untuk mengetahui posisi boneka dan apakah boneka relatif diam atau banyak bergerak. Sistem ini memiliki sensor suara untuk mendeteksi suara tangisan bayi didapat dari internet. Hasil pembacaan sensor suara akan diolah NodeMCU untuk mengetahui kondisi bayi menangis atau tidak. Hasil pengolahan data kondisi dan posisi boneka sekarang dikirim ke platform IFTTT untuk memberi notifikasi line ke pengasuh bayi atau orang tua. Alat ini dapat di catu dari tegangan 220V PLN dan terdapat juga catu daya cadangan untuk mengatasi catu daya utama mati apabila listik PLN padam.
.
3.2 Perancangan dan Realisasi Perangkat Keras Berikut adalah gambaran alat yang dibuat :
Gambar 3.2 Gambar Rancangan Alat
Gambar 3.3 Gambar Ranjang Bayi Berukuran Panjang 130 cm × Lebar 80 cm × Tinggi 100 cm
Gambar 3.4 Rangkaian Alat 3.3 Perancangan Elektronika
3.3.1 Wiring loadcell pada Mikrokontroler NodeMCU
Gambar 3.5 Gambar Wiring loadcell
Pada perancangan ini NodeMCU terhubung dengan sensor loadcell dan sensor suara. Konfigurasi pinnya sebagai berikut :
Tabel 3.1 Konfigurasi Pin NodeMCU
3.3.2 Wiring Sensor Suara pada Mikrokontroler NodeMCU
Gambar 3.6 Gambar weiring Sensor Suara Tabel 3.2 Konfigurasi Pin NodeMCU
Nomor Pin Fungsi
A0 Terhubung ke pinout sensor suara
Nomor Pin Fungsi
D1 Terhubung ke DOut loadcell 1 D2 Terhubung ke Sck loadcell 1 D3 Terhubung ke DOut loadcell 2 D4 Terhubung ke Sck loadcell 2 D5 Terhubung ke DOut loadcell 3 D6 Terhubung ke Sck loadcell 3 D7 Terhubung ke DOut loadcell 4 D8 Terhubung ke Sck loadcell 4
Gambar 3.7 Gambar Rangkaian Sensor Suara
Tegangan mikropon electret hanya sebesar beberapa milivolt. Input analog pada NodeMCU adalah 10 bit dan hanya pada rentang 0V-3.3V.
Penguatan pada penguat non-inverting karena sinyal AC dirancang sebesar 201 kali untuk meningkatkan sensitifitas sensor tanpa melampaui batasan tegangan masukan ADC NodeMCU. Dari batasan Vref yang digunakan ADC mempunyai nilai 0V dan 3,3V maka dari itu tegangan harus di offset 1,59 V supaya sinyal masukan tidak terpotong.. Dengan perhitungan sebagai berikut:
Av=
(
1+RR13)
¿
(
1+200 K Ω1 K)
¿(1+200)
¿201
Av = Penguatan Voffset= R5
R4+R5× 5V
¿ 470 Ω
1 k +470 Ω×5 V
¿2350 1470
¿1,59V
3.4 Perancangan Perangkat Lunak
Dalam perancangan alat ini perangkat lunak akan mengolah sinyal yang diterima. Hasil pembacaan diolah oleh sensor loadcell dan sensor suara, lalu NodeMCU memberi notifikasi chat ke pengguna via Line.
Gambar 3.8 Diagram Alir Perangkat Lunak
Cara kerja dari alat ini adalah program akan berjalan setelah itu sistem akan menginisialisasi data penampung pembacaan kemudian sistem akan mengecek sensor suara apakah sensor suara mendeteksi suara tangisan bayi yang didapat dari internet atau tidak, jika iya kirim notifikasi ke LINE. Jika tidak maka program akan membaca sensor loadcell satu, loadcell dua, loadcell tiga, dan loadcell empat setelah mendapat data berat boneka, data diolah untuk
mengetahui kondisi posisi boneka ditempat tidur atau tidak. Apabila iya kirim notifikasi LINE jika tidak sistem akan melanjutkan mendeteksi apakah boneka tidur berguling-guling atau tidak. Apabila iya kirim notifikasi LINE jika tidak sistem akan mengulang dari pembacaan sensor suara.
3.4.1. Kode Program Suara Bayi Menangis : suara = analogRead(A0);
if(suara > 600) {
nangis ++;
}
if((millis() - time_now) > 2000) { nangis = 0; time_now=millis(); }
if(nangis >= 50 && (millis() - jeda) >
20000 )
{
jeda = millis();
cmd +=
"http://maker.ifttt.com/trigger/Notifikasi/with/key/";
cmd += apiKey;
cmd += "?value1=Bayi%20Menangis%20!!!";
HTTPClient http;
http.begin(cmd);
int httpCode = http.GET();
http.end();
nangis = 0;
time_now=millis();
cmd = "";
}
3.4.2. Kode Program Bayi Tidur Tidak Nyenyak : Serial.print(" || guling= ");
Serial.print(guling);
if(guling>=5) {
Serial.print(" || guling guling ");
}
Serial.print(" || guling2= ");
Serial.print(gulingg);
gulingg++;
if(gulingg>=100) {
guling=0; gulingg=0; katas=0; kawah=0;
kitas=0; kiwah=0; kiri=0; kanan=0; tengah=0;
atas=0; bawah=0;
}
Serial.println(" ");
t = millis();
}
3.4.3. Kode Program Bayi Tidak Berada Di Tempat Tidur :
if(i<500&&ii<500&&iii<500&&iiii<500) {
Serial.print("posisi Bayi: Tidak Ada
");
posisi = "Tidak%20Ada%20Di%20Kasur";
a=0;
posisii=10;
}
if(WiFi.status() != WL_CONNECTED){
Serial.print("Attempting to connect to SSID:
");
Serial.println(ssid);
while(WiFi.status() != WL_CONNECTED){
WiFi.begin(ssid, pass); // Connect to WPA/WPA2 network. Change this line if using open or WEP network
Serial.print(".");
wait++;
if(wait == 10) { wait = 0;
Serial.println("Failed Connected");break;}
} }
cmd +=
"http://maker.ifttt.com/trigger/Notifikasi/with/key/";
cmd += apiKey;
cmd += "?value1=posisi%20bayi%20";
cmd += "Tidak%20Ada%20Di%20Kasur";
cmd += "%0Asegera%20cek%20bayi%20!!!";
Serial.println(cmd);
HTTPClient http;
http.begin(cmd);
int httpCode = http.GET();
http.end();
cmd = "";
periode=millis();
cekposisii=posisii;
}
3.4.4. Menentukan Posisi Boneka
Mengklasifikasikan nilai untuk menentukan posisi boneka. Dalam sistem ini alat dapat mendeteksi posisi boneka berada pada kanan atas, kiri atas, kanan bawah, kiri bawah, kanan tengah, kiri tengah, atas, bawah, dan tengah.
3.4.4.1 Posisi Boneka di Kanan Atas
Beban yang terbaca pada sensor loadcell akan memberikan nilai berat boneka untuk mengetahui keberadaan posisi boneka. Apabila loadcell 1 lebih besar dari yang lain maka posisi boneka berada di kanan atas.
1
g
2
Loadcell 2 Loadcell 1
Loadcell 3 Loadcell 4
3.4.4.2 Posisi Boneka di Kiri Atas
Beban yang terbaca pada sensor loadcell akan memberikan nilai berat boneka untuk mengetahui keberadaan posisi boneka. Apabila loadcell 2 lebih besar dari yang lain maka posisi boneka berada di kiri atas.
Loadcell 2 Loadcell 1
r
Loadcell 3 Loadcell 4
3.4.4.3 Posisi Boneka di Kanan Bawah
Beban yang terbaca pada sensor loadcell akan memberikan nilai berat boneka untuk mengetahui keberadaan posisi boneka. Apabila loadcell 4 lebih besar dari yang lain maka posisi boneka berada di kanan bawah.
3 4
1
g
2
3 4
Loadcell 2 Loadcell 1 r
Loadcell 3 Loadcell 4
3.4.4.4 Posisi Boneka di Kiri Bawah
Beban yang terbaca pada sensor loadcell akan memberikan nilai berat boneka untuk mengetahui keberadaan posisi boneka. Apabila loadcell 3 lebih besar dari yang lain maka posisi boneka berada di kiri bawah.
Loadcell 2 Loadcell 1
1
g
2
3 4
1
g
2
Loadcell 3 Loadcell 4
3.4.4.5 Posisi Boneka di Kanan Tengah
Beban yang terbaca pada sensor loadcell akan memberikan nilai berat boneka untuk mengetahui keberadaan posisi boneka. Apabila di antara loadcell 1 dan loadcell 4 lebih besar dari yang lain maka posisi boneka berada di kanan tengah.
Loadcell 2 Loadcell 1
r
Loadcell 3 Loadcell 4
3.4.4.6 Posisi Boneka di Kiri Tengah
Beban yang terbaca pada sensor loadcell akan memberikan nilai berat boneka untuk mengetahui keberadaan posisi boneka. Apabila diantara loadcell 2 dan loadcell 3 lebih besar dari yang lain maka posisi boneka berada di kiri tengah.
3 4
1
g
2
3 4
Loadcell 2 Loadcell 1 r
Loadcell 3 Loadcell 4
3.4.4.7 Posisi Boneka di Atas
Beban yang terbaca pada sensor loadcell akan memberikan nilai berat boneka untuk mengetahui keberadaan posisi boneka. Apabila diantara loadcell 1 dan loadcell 2 lebih besar dari yang lain maka posisi boneka berada di atas.
Loadcell 2 Loadcell 1
1
g
2
3 4
1
g
2
Loadcell 3 Loadcell 4
3.4.4.8 Posisi Boneka di Bawah
Beban yang terbaca pada sensor loadcell akan memberikan nilai berat beban untuk mengetahui keberadaan posisi boneka. Apabila diantara loadcell 3 dan loadcell 4 lebih besar dari yang lain maka posisi boneka berada di bawah.
Loadcell 2 Loadcell 1
Loadcell 3 Loadcell 4
3.4.4.9 Posisi Boneka di Tengah
Beban yang terbaca pada sensor loadcell akan memberikan nilai berat boneka untuk mengetahui keberadaan posisi boneka. Apabila semua loadcell terbaca maka posisi boneka berada di tengah.
3 4
1
g
2
3 4
Loadcell 2 Loadcell 1 r
Loadcell 3 Loadcell 4
1
g