İstanbul Teknik Üniversitesi Özgür Yazılım Kulübü çatısı altında düzenlemiş olduğunuz internet of things eğitiminin son hafta workshop’ının sonunda, katılımcılarımız arasında bulunan Emrullah Saku ve Ali Osman Mollahüseyinoğlu’nun geliştirmiş olduğu “Personal Home Security” projesi. Projede Intel Galileo Gen2 board ile birlikte Wyliodrin üzerinden programlanarak IFTTT ve Twitter API kullanılmıştır.
Proje adı: Personel Home Security
Proje ekibi:
Emrullah SAKU – emrullah.saku@outlook.com – İstanbul Aydın Üniversitesi İngilizce Bilgisayar Programcılığı
Ali Osman Mollahüseyinoğlu – aliosman.mho@gmail.com – İstanbul Aydın Üniversitesi İngilizce Bilgisayar Programcılığı
Projede kullanılan servis ve hizmetler: IFTTT, Twitter (SMS gönderme ve Web panel eklenecek durumda)
Proje detayı:
Proje İstanbul dışına çıkıldığıda özellikle sitede yaşamayanlar için güvenlik hizmeti sunuyor. İstanbul’dan çıkan kişi Twitter üzerinden bir hashtag ile tweet atarak güvenlik sistemini aktif hale getiyor. Aktif hale gelen sistem akşamları ve geceleri evin ışığını açıyor ve ses sensörünü aktif hale getiriyor. Aktif hale gelen ses sensörü belli bir değerdeki sesleri kontrol ediyor. Hızlık kontrölüne karşın olan bu sistem bir sesi algılandığında alarm çalıyor. Alarm aynı zamanda cep telefonumuza ve polise mesaj göderebilir durumda. Yanlış alarm durumlarında ise yine twitter üzerinden örneğin #closealarm hashtagi ile alarmı kapatabiliyor. Önemli olan nokta Twitter’a sistemi kullanan kişi tweet atmalıdır.
Proje yazılımı kaynak kodu:
- Yazılım python ile wyliodrin üzerinde kodlanmıştır ve çalıştırılmıştır. Orjinal Intel Galileo Gen2 linux imajı üzerine extra kütüphaneler kurulmuştur, kodu çalıştırdığınızda hatalar alırsanız, hata mesajındaki paketi linux shell üzerinden yüklemeniz gerekir. Gerekli tüm paketleri yüklediğinizde de yazılım sorunsuz şekilde çalışacaktır.
try: from wyliodrin import * except: from wiringpi2 import * wiringPiSetup() import time import os import urllib import urllib2 import base64 import json import tweepy import datetime ledpin = 4 buzzer = 8 sound = 0 pinMode(ledpin,1) pinMode(buzzer,1) import ntplib client = ntplib.NTPClient() response = client.request('pool.ntp.org') os.system('date ' + time.strftime('%m%d%H%M%Y.%S',time.localtime(response.tx_time))) def bipAndLight(): digitalWrite(ledpin,0) digitalWrite(buzzer,0) delay(4000) digitalWrite(ledpin,1) digitalWrite(buzzer,1) delay(1000) def openLight(): digitalWrite(ledpin,1) closed = False customer_key ='' #Twitter keys customer_secret='' #Twitter keys access_token='' #Twitter keys access_token_secret='' #Twitter keys auth = tweepy.OAuthHandler(customer_key,customer_secret) auth.set_access_token(access_token,access_token_secret) state = False api= tweepy.API(auth) last_id = 12 while True: control = analogRead(sound) #print last_id; search = api.user_timeline(user_id='aliosman_mho',count='1',since_id=last_id) for tweet in search: # print (time.strftime(""%I:%M:%S"")) if ""HomeSecurity"" in tweet.text: digitalWrite(ledpin,1) state=True print 'icerdeyim' print tweet.text.encode(""UTF-8"") else: print 'disardayim' last_id = str(tweet.id) delay(8000) if state and closed != True: if control < 1018: digitalWrite(buzzer,1) print 'Buzzers on' for tweet in search: # print (time.strftime(""%I:%M:%S"")) if ""CloseSecurity"" in tweet.text: digitalWrite(buzzer,0) closed = True state=True print 'Buzzers off' digitalWrite(ledpin,0) print tweet.text.encode(""UTF-8"") print str(control)
Proje ile alakalı ekstra bir fikriniz ya da söylemek istedikleriniz varsa, yorumlar kısmından iletebilir ya da proje ekibinin vermiş olduğu iletişim bilgilerinden kendilerine ulaşabilirsiniz.
İTÜ Özgür Yazılım Kulübü Internet of Things eğitimi ile alakalı tüm detayları, kaynakları ve güncellemeleri bu bağlantı üzerinden takip edebilirsiniz. Diğer final projelerine ise bu bağlantı üzerinden ulaşabilirsiniz.