keterangan kode program
DESCRIPTION
Program Raspberry Pi BTRANSCRIPT
Keterangan : fungsi # untuk komentar Tanda berwarna merah tidak digunakan
Koding Program:
#!/usr/bin/python#mengimport library yang dibutuhkan untuk Pilarmimport subprocessimport datetimeimport timeimport os #untuk mengimport library gpio untuk bisa dikendalikan lewat program pythonimport RPi.GPIO as io#untuk mengimport library twitter agar bisa mengakses twitterimport tweetpony#men-setting akun twitter yag digunakan dengan API Key pada website apps.twitter.comapi = tweetpony.API(consumer_key = "abcd", consumer_secret = "efgh", access_token = "ijkl", access_token_secret = "mnop")
io.setmode(io.BCM)#deklarasi pin gpio apa saja yang digunakan dan apakah input atau output#pin gpio yang digunakan adalah gpio18 pada pin nomor 12pir_pin = 18#mengatur sensor gerak menjadi sebuah input bagi raspberry piflashingLight_pin = 7
io.setup(pir_pin, io.IN)#---------- Main Program ---------#kondisi awal sensor gerakio.setup(flashingLight_pin, io.OUT)io.output(flashingLight_pin, io.LOW)
previous_pir=0#jika sensor gerak mendeteksi pergerakan
while True:#cek kondisi awal sensor dan menentukan kembali sensor adalah sebuah input bagi
raspberry picurrent_pir=io.input(pir_pin)# jika sensor mendeteksi pergerakan maka akan bernilai 1if previous_pir==0 and current_pir==1:
with open("/home/pi/Alarm/armed.txt", "r") as fo: fo.seek(0, 0) status = fo.read(1) fo.closed print "Telah terdeteksi gerakan, Tweet kondisi ruangan " + str(status)
if (status == "1"): subprocess.call("mpg123 /home/pi/Alarm/motiondetect.mp3", shell=True)
time.sleep(10) with open("/home/pi/Alarm/armed.txt", "r") as fo:
fo.seek(0, 0) status = fo.read(1) fo.closed
if (status == "1"): print "Correct passcode not entered, emailing picture and sounding
alarm."#python akan menjalankan subprocess software fswebcam dalam python dan
menyimpan gambar dengan nama file waktu saat ini
# keterangan program : -p = jenis kamera-d = kamera yang digunakan-r = resolusi-q = direktori/lokasi
#webcam akan aktif dan mencapture gambar dan menyimpannya pada folder Pilarm/pictures grab_cam = subprocess.Popen("sudo fswebcam –p YUYV -d /dev/video0 –r 640x480 –q /home/pi/Alarm/pictures/%m-%d-%y-%H%M.jpg", shell=True) grab_cam.wait()
#program python akan mengambil data waktu todays_date = datetime.datetime.today() #program python memberi nama gambar dengan waktu saat ini image_name = todays_date.strftime('%m-%d-%y-%H%M')
#program python menyimpan gambar di lokasi /home/pi/Alarm/pictures dan dibuat variabel image_path image_path = '/home/pi/Alarm/pictures/' + image_name + '.jpg' subprocess.Popen('echo "Here is your intruder:" | mail -a ' + image_path + ' -s "Intruder Alert" [email protected]', shell=True)
try:#program python akan melakukan koneksi dengan twiter lewat API key yang sudah
ditulis dibagian atas dan melakukan tweet gambar dari variabel image_path api.update_status_with_media(status = ("Peringatan Keamanan: " +
todays_date.strftime('%m-%d-%y-%H%M')), media= image_path) #jika program python tidak tesambung ke twitter maka akan muncul tulisan berikut.
except tweetpony.APIError as err: print "tidak tersambung dengan twitter #%i and said: %s" %
(err.code, err.description)#memberikan laporan bahwa gambar telah di tweet dan kamera sudah siap kembaliprint “Gambar telah di tweet!!”print “Kamera siap kembali!!” io.output(flashingLight_pin, io.HIGH)
subprocess.call("mpg123 /home/pi/Alarm/alarm.mp3", shell=True) subprocess.call("mpg123 /home/pi/Alarm/surrender.mp3", shell=True) subprocess.call("mpg123 /home/pi/Alarm/alarm.mp3", shell=True) io.output(flashingLight_pin, io.LOW)#menghapus banyak gambar yang memiliki waktu yang sama dalam satu menit. del_img = subprocess.Popen("sudo rm -rf " + image_path, shell=True) del_img.wait()#kembali ke kondisi awal dan kamera dan sensor siap kembali
previous_pir=current_pirtime.sleep(1)