BAB III PERANCANGAN ALAT 3.1 Gambaran Umum Rancangan alat pengendali pintu melalui monitoring kamera yang digunakan pada penulisan ini terdapat 2 cara yang dilakukan yaitu melalui kamera yang akan mengambil gambar secara otomatis dan hasilnya dikirim ke email langsung, dan yang kedua adalah melalui webcam yang digunakan untuk melihat atau memantau objek melalui web browser dimana mekanisme ini juga dilengkapi tombol simulasi yang berfungsi mengontrol buka dan tutup sebuah pintu. 3.2 Blok Diagram Rancangan Simulasi Alat Monitoring Pada perancangan alat sistem pengairan tanaman ini menggunakan 2 buah sensor, yaitu sensor ultrasonik dan sensor kelembaban tanah. Gambar 3.1 menunjukkan diagram blok sistem. Gambar 3.1. Blok Diagram Monitoring Kamera 36 http://digilib.mercubuana.ac.id/ 37 Gambar diatas merupakan rancangan diagram blok yang digunakan dalam merancang alat monitoring dan pengendali pintu. Dalam diagram blok tersebut digambarkan sumber daya yang memberikan arus listrik berasal dari aktivator yang memiliki kekuatan daya sebesar 5 dan 12 volt. Saat dialiri arus, semua komponen yang terhubung pada aktivator siap untuk digunakan. Dalam perancangan ini, input yang digunakan adalah berasal dari kamera non usb dan usb webcam, sedangkan untuk proses akan ditangani didalam memory alat Raspberry Pi, dan motor DC digunakan untuk output yang berperan sebagai simulasi pintu. Fungsi dari tiap blok dalam diagram adalah sebagai berikut : 1. Input: Dimana kamera berperan sebagai media monitoring dan mengambil gambar objek, dimana juga diintegrasikan dengan email. 2. Proses: Proses disini yaitu peran dari memory alat yang digunakan memproses gambar yang dihasilkan dari kamera dan juga simulasi pintu. 3. Output: Proses output mewakili dari simulasi buka-tutup pintu dimana user dapat mengontrol dari jauh dimana sudah terintegrasi oleh webcam dan dapat dipantau di dalam web browser. 3.3 Perancangan Hardware Skema perancangan hardware sistem monitoring digambarkan dalam model berikut ini: http://digilib.mercubuana.ac.id/ 38 Gambar 3.2. Perancangan Sistem Hardware. Gambar diatas merupakan skema perancangan dari beberapa sisi perangkat keras, dimana dalam skema tersebut terdiri dari perangkat Raspberry Pi, komputer, dan perangkat telepon seluler. Dalam perangkat Raspberry, terdapat beberapa port yang digunakan dalam perancangan monitoring yaitu port yang menghubungkan dengan perangkat kamera usb. Terdapat empat port usb pada komponen Raspberry Pi yang digunakan, dimana dalam penelitian ini seluruh port tersebut digunakan untuk menghubungkan beberapa perangkat media lain yang dibutuhkan yaitu usb webcam, keyboard dan mouse. Untuk media perangkat non-usb yang juga digunakan pada penelitian ini adalah berupa port LAN yang digunakan untuk berkomunikasi dengan perangkat komputer / laptop. Port fisik pada media perangkat LAN ini terletak di komponen atau sirkuit yang sama dengan port usb. Komponen berikutnya adalah port GPIO yang berfungsi sebagai penghubung alat simulasi pintu, dimana pada port tersebut memiliki dua jalur untuk mengendalikan simulasi buka tutup pintu yaitu pada port GPIO 7 dan GPIO 11. http://digilib.mercubuana.ac.id/ 39 3.4 Flowchart dan Perancangan Alat Raspberry Pi 2 Berikut adalah tampilan flowchart untuk perancangan alat monitoring menggunakan Raspberry Pi 2. Gambar 3.6 Flowchart Pemrograman Gambar 3.3. Flowchart Rancangan Alat Monitoring. Sistem kerja alat monitoring sebagaimana dijelaskan pada flowchart diatas dimulai dari status saat alat mulai menyala. Saat lampu berwarna hijau sudah aktif, sistem akan mulai menginisialisasi semua perangkat yang terhubung pada Raspberry Pi. Saat memulai pertama kali sistem akan meminta kredensial atau autentikasi user melalui perintah berbasis linux. Langkah selanjutnya saat berhasil masuk ke dalam tampilan sistem operasi Raspberry adalah buka browser dan masukkan IP serta port yang sudah dikonfigurasi sebelumnya. Setelah itu akan muncul tampilan sebuah kotak yang berfungsi sebagai kamera monitor dan dua tombol pengatur sistem buka dan tutup pintu. http://digilib.mercubuana.ac.id/ 40 Terdapat 2 mekanisme kerja pada setiap tombol pengendali pintu tersebut yaitu saat kondisi tombol buka dan tutup serta fungsi motor DC yang mengendalikan simulasi pintu. Saat tombol buka diklik, maka motor DC akan menyala dan membuka pintu. Tombol akan berganti warna kuning saat diklik, selama tombol masih berwarna kuning artinya motor DC tersebut masih dalam keadaan menyala. Klik tombol tersebut sekali lagi untuk menonaktifkan motor DC. Mekanisme sama juga terintegrasi pada tombol untuk simulasi tutup pintu. 3.5 Pemrograman Alat Simulasi Monitor Dan Pintu Untuk menjalankan simulasi pada alat diatas, ada beberapa perintah yang harus dibuat melalui sebuah bahasa pemrograman. Adapun bahasa pemrograman yang dibutuhkan agar dapat berkomunikasi dengan perangkat dirancang adalah python, html, css, javascript serta beberapa perintah dalam terminal linux untuk mengeksekusi perintah program yang telah dibuat. Berikut adalah kumpulan listing program yang dibuat untuk perancangan alat simulasi ini: Sende.py import io import time from datetime import datetime import picamera import os #import picamera from smtplib import SMTP from smtplib import SMTPException import smtplib from email.mime.image import MIMEImage from email.mime.multipart import MIMEMultipart stream = io.BytesIO() with picamera.PiCamera() as camera: http://digilib.mercubuana.ac.id/ 41 camera.resolution = (1024, 768) camera.start_preview() # Camera warm-up time time.sleep(2) camera.capture('photo.jpg') f_time = datetime.now().strftime('%a %d %b @ %H:%M') toaddr = ' [email protected]’ # redacted me = '[email protected]' # redacted subject = 'Photo ' + f_time msg = MIMEMultipart() msg['Subject'] = subject msg['From'] = me msg['To'] = toaddr msg.preamble = "Photo @ " + f_time fp = open('photo.jpg', 'rb') img = MIMEImage(fp.read()) fp.close() msg.attach(img) try: s = smtplib.SMTP('smtp.gmail.com',587) s.ehlo() s.starttls() s.ehlo() s.login(user = '[email protected]',password 'saya12345678') #s.send_message(msg) s.sendmail(me, toaddr, msg.as_string()) s.quit() #except: # print ("Error: unable to send email") except SMTPException as error: print "Error: unable to send email : {err}".format(err=error) = Script program diatas berfungsi untuk mengaktifkan kamera Raspberry yang dijalankan melalui terminal dengan resolusi gambar 1024 x 768. Kamera akan mati secara otomatis setelah 2 detik setelah gambar diambil, lalu gambar yang sudah di capture akan disimpan dengan nama file http://digilib.mercubuana.ac.id/ 42 photo.jpg. Kemudian file gambar akan dikirim ke alamat email yang sudah ditentukan pada baris script toaddr = ' [email protected]’, hasil foto akan dikirim langsung ke alamat tersebut. Pintu.py import webiopi GPIO = webiopi.GPIO B= 17 T= 27 def setup(): GPIO.setFunction(B, GPIO.OUT) GPIO.setFunction(T, GPIO.OUT) def loop(): webiopi.sleep(1) Fungsi dari script diatas digunakan untuk mengontrol fungsi dari perangkat input dan output pada simulasi pintu. Fungsi ini terletak pada tampilan web beserta tampilan monitoring kamera. Index.html <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.o$ <html> <html> <head> <h1 align="center"> Monitoring Pengendali Pintu </h1> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Pengendali Pintu</title> <script type="text/javascript" src="/webiopi.js"></script> <script type="text/javascript"> webiopi().ready(function() { // Create a "pintu" labeled button for GPIO 17 dan 27 var button ; button =webiopi().createGPIOButton(17, "Buka"); $("#up").append(button); button=webiopi().createGPIOButton(27, "Tutup"); $("#middle").append(button); // Refresh GPIO buttons // pass true to refresh repeatedly of false to refresh once http://digilib.mercubuana.ac.id/ 43 webiopi().refreshGPIO(true); }); </script> <style type="text/css"> button { display: block; margin: 5px 5px 5px 5px; width: 100px; height: 50px; font-size:10pt; font-weight: bold; color: white; } #gpio17.LOW { background-color: Black; } #gpio17.HIGH { background-color: Yellow; } #gpio27.LOW { background-color: Black; } #gpio27.HIGH { background-color: Yellow; } </style> </head> <body> <!-- --> <div id="content" align="center"> http://digilib.mercubuana.ac.id/ 44 <img width="480" height="360" src="http:// 192.168.43.20:8080 /?action=stream"><br/> <div id="up"></div> <div id="middle"></div> <div id="down"></div> </div> </body> </html> Script diatas digunakan untuk menampilkan hasil monitoring kamera pada halaman web sekaligus dua tombol untuk simulasi buka dan tutup pintu. Fungsi yang digunakan untuk membuka dan menutup pintu terdapat kode GPIO dengan nilai 17 dan 27. Kedua nilai tersebut terhubung dengan fungsi webiopi() yang mengatur kontrol input output Raspberry Pi melalui tampilan web. http://digilib.mercubuana.ac.id/