Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Oleh:
KAISAR MUHAMMAD PARAMATUAH SUHENDHIK DEPRILIZ PUTRI AKBARI RINI FAUZIAH TRI MULYANA OKTARINA MUHAMMAD FADLI
DESKRIPSI
Tujuan: a. Membuat suatu alat berupa remote camera monitor menggunakan raspberry pi dan usb kamera. Manfaat:
Cara kerja: Program akan memeriksa account Gmail khusus untuk email yang belum dibaca. Jika ada pesan baru, maka program akan men scrapes alamat pengirim, mengambil gambar menggunakan web cam, dan membalas dengan catatan singkat beserta gambar yang di attachmen.
# function that scrapes sender data from new email def scrape_senders(email_ids): senders_list = [] for e_id in email_ids[0].split(): resp, data = imap_server.fetch(e_id, '(RFC822)') perf = HeaderParser().parsestr(data[0][1]) senders_list.append(perf['From']) return senders_list # send new email with pic attached def send_secure_pic(mail_list): for item in mail_list: files = [] files.append("snap.jpg") text = 'A new image was taken at ' + str(datetime.now()) assert type(files)==list msg = MIMEMultipart() msg['Subject'] = 'New Monitor Image' msg['From'] = USERNAME msg['To'] = item msg.attach ( MIMEText(text) ) for file in files: part = MIMEBase('application', "octet-stream") part.set_payload( open(file,"rb").read() ) Encoders.encode_base64(part) part.add_header('Content-Disposition', 'attachment; filename="%s"' % os.path.basename(file)) msg.attach(part) server = smtplib.SMTP('smtp.gmail.com:587') server.ehlo_or_helo_if_needed() server.starttls() server.ehlo_or_helo_if_needed() server.login(USERNAME,PASSWORD) server.sendmail(USERNAME, item, msg.as_string() ) server.quit()
print('Email sent to ' + item + '!') # function calls uvccapture to take a picture with given settings. I repeat this # and overwrite the original file to get over some webcam short-comings def takepicture(): call(["uvccapture", "-v", "-S55", "-B190", "-C35", "-G50", "-x1280", "-y960"]) time.sleep(5) call(["uvccapture", "-v", "-S55", "-B190", "-C35", "-G50", "-x1280", "-y960"]) # the program loop while True: check = "yes" temp_list = [] if check == "yes": print "-"*30 print datetime.now() sendthankyou = "no" print "Checking for unread emails" imap_server = imaplib.IMAP4_SSL("imap.gmail.com",993) imap_server.login(USERNAME, PASSWORD) imap_server.select('INBOX') mail_list = check_email() temp_list = temp_list + mail_list if len(mail_list) > 0: takepicture() send_secure_pic(mail_list) else: print"-"*30