Project Arduino 2 ~ kontrol lampu dengan aplikasi android
versi sebelumnya auto on off lamp mengendalikan perangkat lampu rumah dengan aduino sebagai kendali utama, RTC DS3231 sebagai pewaktu dan relay sebagai saklar lampu kendali dilakukan dengan model alarm jam untuk on dan off nya, pada kali ini disederhanakan dari sisi program arduinonya dengan mengubah kendali dari RTC DS3231 digantikan menggunakan router openwrt sebagai kendalinya
dengan perangkat yang sama dengan project sebelumnya, mengubah bagian kode arduino untuk menerima input yang dikendalikan dengan web app dan juga dengan bash scripting untuk proses backgroundnya seperti setup awal, pembacaan temperatur dari RTC DS3231 (mengoptimalkan perangkat dan menguji keakuratan nya)
Skema Perangkat Pengendali
skema aplikasi
Server Side
untuk bagian server digunakan perangkat sebuah Router HG553 dengan modifikasi pada operating sistemnya dari custom openwrt menjadi general openwrt untuk memeri keleluasaan dalam hal melakukan setting sistemnya.
bagian utama dari proses ini adalah perancangan aplikasi interfacingnya yang akan digunakan untuk komunikasi antara perangkat pengendali (arduino) dengan user menggunakan scripting BASH yang dikelola dalam web model cgi-bin sehingga bisa dikendalikan dengan webserver yang ada di openwrt.
ada beberapa scripting CGI yang dibuat namun bagian utamanya seperti berikut:
#!/bin/sh
echo “Content-type: application/json”
echo
device=$(uci get BCMlampu.setting.device)
FL=””
L=`echo “$QUERY_STRING” | sed -n ‘s/^.*L=\([^&]*\).*$/\1/p’ | sed “s/%20/ /g”| sed “s/%2F/\//g”`
if [ $L == “B” ] || [ $L == “b” ]; then
FL=”/www/lampu/status/L1.txt”
else
if [ $L == “D” ] || [ $L == “d” ]; then
FL=”/www/lampu/status/L2.txt”
else
if [ $L == “E” ] || [ $L == “e” ]; then
FL=”/www/lampu/status/L3.txt”
else
if [ $L == “H” ] || [ $L == “h” ]; then
FL=”/www/lampu/status/L4.txt”
else
if [ $L == “J” ] || [ $L == “j” ]; then
FL=”/www/lampu/status/L5.txt”
fi
fi
fi
fi
fi
if [ -z $FL ]; then
if [ $L == “Z” ]; then
FL=”/www/lampu/status/L1.txt”
cat > $FL <<EOF
A
EOF
cmd = `echo B > $device`
echo “$cmd”
FL=”/www/lampu/status/L2.txt”
cat > $FL <<EOF
B
EOF
cmd = `echo D > $device`
echo “$cmd”
FL=”/www/lampu/status/L3.txt”
cat > $FL <<EOF
C
EOF
cmd = `echo E > $device`
echo “$cmd”
FL=”/www/lampu/status/L4.txt”
cat > $FL <<EOF
D
EOF
cmd = `echo H > $device`
echo “$cmd”
FL=”/www/lampu/status/L5.txt”
cat > $FL <<EOF
E
EOF
cmd = `echo J > $device`
echo “$cmd”
else
if [ $L == “z” ]; then
FL=”/www/lampu/status/L1.txt”
cat > $FL <<EOF
a
EOF
cmd = `echo b > $device`
echo “$cmd”
FL=”/www/lampu/status/L2.txt”
cat > $FL <<EOF
b
EOF
cmd = `echo d > $device`
echo “$cmd”
FL=”/www/lampu/status/L3.txt”
cat > $FL <<EOF
c
EOF
cmd = `echo e > $device`
echo “$cmd”
FL=”/www/lampu/status/L4.txt”
cat > $FL <<EOF
d
EOF
cmd = `echo h > $device`
echo “$cmd”
FL=”/www/lampu/status/L5.txt”
cat > $FL <<EOF
e
EOF
cmd = `echo j > $device`
echo “$cmd”
fi
fi
else
cat > $FL <<EOF
$L
EOF
cmd = `echo $L > $device`
echo “$cmd”
fi
L1=`cat /www/lampu/status/L1.txt`
L2=`cat /www/lampu/status/L2.txt`
L3=`cat /www/lampu/status/L3.txt`
L4=`cat /www/lampu/status/L4.txt`
L5=`cat /www/lampu/status/L5.txt`
Lpu=”[{\”L1\”:\””$L1″\”,\”L2\”:\””$L2″\”,\”L3\”:\””$L3″\”,\”L4\”:\””$L4″\”,\”L5\”:\””$L5″\”}]”
echo $Lpu
Client Side
dibuat dengan menggunakan aplikasi App Inventor masih harus disempurnakan lagi bisa didownload di