Arkadaşlar merhabalar. Daha önceki uygulamalarımızda ESP8266 WiFi modülü kullanarak Tweet atmış, sıcaklık verisini ThingSpeak kullanarak grafik haline getirmiştik. Şimdi ise biraz daha projevari bir çalışma yapacağız. Bu çalışmada ultrasonik sensör ile bir kapının açılıp açılmadığını kontrol edeceğiz ve kapının açılması durumunda telefonumuza “Hırsız Var!” şeklinde bir bildirim yollayacağız. Bitirdiğimizde projemiz aşağıdaki videodaki gibi olacak
Bu proje için kullanılacak malzemeler:
Ultrasonik Mesafe Sensörü Nasıl Çalışır?
Ultrasonik mesafe sensörünün çalışma mantığından biraz bahsetmek gerekirse, sensörümüz ilk önce bir yüksek frekansta (40 kHz) bir ses dalgası yayıyor ve daha sonra bu ses dalgası bir cisme çarpıp geri dönünceye kadar geçen süreyi tutuyor. Ses dalgası geri döndüğünde ise, Yol = Hız x Zaman formülü ile ne kadar uzaklıkta bir cisim olduğunu buluyor. Arduino ile ultrasonik mesafe sensörü kullandığımız diğer proje ve derslere blog’umuzdan ulaşabilirsiniz.
Pushetta Nedir?
Telefona bildirim göndermek için Pushetta uygulamasını kullanacağız. Uygulamaya www.pushetta.com bu adresten üye olup kanal açmamız gerekiyor. Uygulamanın çalışabilmesi için ayrıca cep telefonumuza yüklememiz gerekmekte. Cihazınıza uygun sürümü buradan indirebilirsiniz. Siteye girdikten sonra sağ üstte Singup butonuna tıklayıp kullanıcı adı, e-posta gibi bilgileri girdikten sonra üyeliği tamamlıyoruz. Üyeliğimiz ile giriş yaptıktan sonra ekrana aşağıdaki gibi bir menü olan bir sayfa gelecek.
Bu menüde Channels kısmına tıklayıp, Add a Channel butonu ile yeni bir kanal oluşturuyoruz. Kanal oluştururken bilmeniz gereken şey Kind seçeneğini “Public” yaparsanız siz izin vermeden de başkaları kanala abone olup bildirim alabilecek; fakat “Private” seçeneğini işaretlerseniz sadece siz izin verirseniz başkaları kanala abone olarak bildirim alabilecektir. Kanal açtıktan sonra Dashboard menüsüne geliyoruz ve aşağıdaki gibi bir kod karşımıza çıkıyor. Bu kodu kaydediyoruz, bu kodu daha sonra Arduino programımız içerisinde kullanacağız.
Kanalı açtığımıza göre telefon uygulamamıza gelip arama bölümünden açtığımız kanalın ismini girerek takip etmemiz gerekli. Kanalı private şeklinde açtıysanız takip ettikten sonra ayrıca onaylamanız gerekecektir. Takip ettikten sonra kanalımızdan gelen her bildirimi alabileceğiz.
Bu kısma kadar geldiğimize göre devremize geçebiliriz.
Üstteki devre şemasına göre devreyi kurduktan sonra geriye sadece Arduino kodu kalıyor.
NOT: Devreyi kurup Arduino’ya kod yüklemeye çalıştığınızda Arduino IDE hata verecektir. Bunun nedeni, Arduino’nun RX ve TX pinlerinin o an bağlı ESP modülümüze bağlı olmasından dolayıdır. Yükleme işleminden önce RX ve TX bağlantılarını söküp, kod yüklendikten sonra takarsanız bu sorunu yaşamazsınız.
Arduino programımız:
#define ag_ismi "Wifi Ismi" #define ag_sifresi "Wifi Sifresi" #define SERVER "api.pushetta.com" String API("2828e318e8357eb7285ff2962642b132de28b1b"); String CHANNEL("HirsizAlarmi"); int trigPin = 9; //ultrasonic sensörde kullanılan tetikleme pini int echoPin = 8; //ultrasonic sensörde kullanılan yankı pini int sure = 0; //ultrasonic sensörde yollanan ver alınan ses dalgası arasında geçen süre int mesafe = 0; //sensörün ölçtüğü mesafe void setup() { pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); Serial.begin(115200); Serial.println("AT"); delay(5000); if (Serial.find("OK")) { //esp modülü ile bağlantıyı kurabilmişsek modül "AT" komutuna "OK" komutu ile geri dönüş yapıyor. Serial.println("AT+CWMODE=1"); //esp modülümüzün WiFi modunu STA şekline getiriyoruz. Bu mod ile modülümüz başka ağlara bağlanabilecek. delay(2000); String baglantiKomutu = String("AT+CWJAP=\"") + ag_ismi + "\",\"" + ag_sifresi + "\""; Serial.println(baglantiKomutu); delay(5000); } } void loop() { digitalWrite(trigPin, LOW); //önce trig pinini LOW yapıyoruz ki daha sonra göndereceğimiz sinyali temiz bir şekilde gönderelim delayMicroseconds(5); //5 mikrosaniye bekliyoruz digitalWrite(trigPin, HIGH); //daha sonra trig pinini HIGH yapıp bir ses dalgası yolluyoruz. delayMicroseconds(10); digitalWrite(trigPin, LOW); sure = pulseIn(echoPin, HIGH); //echo pini ile yolladığımız ses dalgasının kaç saniyede geri döndüğünü hesaplıyoruz. mesafe = (sure / 2) / 29.1; // burada kullandığımız formül YOL = HIZ x ZAMAN formülü. Ses hızı sabit 331km/saat birim dönüştürmesi yapılınca yandaki formül geliyor. if (mesafe >= 50 || mesafe <= 0) { //mesafe 50cm den büyük, 0 cm'den küçük ise mesafeyi 0 yapmasını söylüyoruz. mesafe = 0; } if (mesafe < 20 && mesafe > 10) { //mesafe 10 ila 20 cm arasında ise uygulamaya veri yolla veriPushetta(CHANNEL, "HIRSIZ VAR!"); } } //Pushetta uygulamasına veri yollama void veriPushetta(String CHANNEL, String text) { Serial.println(String("AT+CIPSTART=\"TCP\",\"") + SERVER + "\",80"); //server'a bağlanma delay(3000); String deneme = ("POST /api/pushes/"); deneme += (CHANNEL); deneme += ("/ HTTP/1.1"); deneme += ("\r\n"); deneme += ("Host: "); deneme += (SERVER); deneme += ("\r\n"); deneme += ("Authorization: Token "); deneme += (API); deneme += ("\r\n"); deneme += ("Content-Type: application/json"); deneme += ("\r\n"); deneme += ("Content-Length: "); deneme += (text.length() + 46); deneme += ("\r\n\r\n"); deneme += ("{ \"body\" : \""); deneme += (text); deneme += ("\", \"message_type\" : \"text/plain\" }"); deneme += ("\r\n\r\n"); Serial.print("AT+CIPSEND="); delay(100); Serial.println(deneme.length()); // Sorun oluşmadıysa veriyi gönder. if (Serial.find(">")) { Serial.println(deneme); Serial.println("AT+CIPCLOSE=0"); delay(100); } else { Serial.println("AT+CIPCLOSE=0"); } }
Üstteki kodu Arduino’ya yüklemeden önce aşağıda yer alan bilgileri kendimizinkiler ile değiştirmemiz gerekiyor. Channel kısmına oluşturduğumuz kanalın ismini girmemiz gerekiyor.
#define ag_ismi "Wifi Ismi" #define ag_sifresi "Wifi Sifresi" #define SERVER "api.pushetta.com" String API("2828e318e8357eb7285ff2962642b132de28b1b"); String CHANNEL("HirsizAlarmi");
Eğer yollayacağımız bildirimin ne olduğunu değiştirmek istersek aşağıdaki satırda “HIRSIZ VAR!” cümlesini değiştirmemiz yeterli.
veriPushetta(CHANNEL,"HIRSIZ VAR!");
Gerçekten çok güzel olmuş , teşekkürler.
Mobil mesaj sisteminde , GSM sheild kullanılarak daha uygun fiyata getirebilir sistem.
ücretli sms servisleri biraz cep yakıcı olabiliyor 😀
merhaba ben de bu projeyi yapıyorum ama kabloları yerleştiremedim yardımcı olabilir misiniz rica etsem.
iyi günler kardeşim devreyi dediğin gibi yaptım mesaj falan gelmedi ilgili yerleride değiştirdim wifi adresini wifi şifresini kanal adını falan benim telefonuma mesaj gelmedi
yardımcı olurmsusunuz
kardeşim neden pushetta kanal oluştururken hata veriyor?
Bunu pır sensoru ile yapsak sonuc alabılır mıyız? Ya da nasıl değişiklik yapmamız gerekir kod kısmında.
#define SERVER “api.pushetta.com”
burayı ne ile değiştirmemiz gerekmekte ?
herşeyi hallettim, ama tek bir skıntım var. kodu arduino’ya yüklerken String baglantiKomutu=String(“AT+CWJAP=\””)+ag_ismi+”\”,\””+ag_sifresi+”\””; ksımında hata veriyor. ağ_ismi yazan yere ağ ismimi, şifre yazan yerede şiferemi yazıyorum. Ama hata veriyor. bi el atarsanız… 😀
evet ne kadar saçma bir hata yaptığımı zor yoldan öğrendim. Burası tamam ama şimdide pushetta aracılığıyla telefonuma veri yollayamıyorum. sensörüm sorunsuz çalışıyor, wifi ismi wifi şifresi, kanal adı, apı key hepsi tamam. kod burdakinin aynısı. telefonumda bağlı açtığım kanala. ama bir türlü bildirim gelmiyor….
Aynı projeyi bende yapıyorum ve aynı hatayı alıyorum nasıl çözdüğünüzü söylerseneniz çok sevinirim
Arduino UNO RX ve TX pinleri 5V olarak çalışmıyor mu? ESP8266’ya direkt bağlamak sıkıntı oluşturur mu?
Söylediğiniz gibi Arduino UNO’nun RX ve TX sinyal seviyeleri 5V’tur. Fakat ESP8266’nın sinyal seviyesi 3.3V olduğundan arada lojik seviye dönüştürücü kullanmamız gerekir.
sizin yayınladığınız bu devrede lojik seviye dönüştürücü nerede??
Bu örnekte kullanılmamış. Doğrusu araya lojik seviye dönüştürücü veya direnç ile gerilim bölücü ile sinyali uygun seviyeye getirerek kullanmaktır.
acaba #define SERVER “api.pushetta.com” yazan kısmıda mı değiştirmemiz gerekiyor?
veriPushetta(CHANNEL,”HIRSIZ VAR!”); kod satırı hatalı diyor? scope’ta tanımlı değil, burada bir yanlışlık yok mu
Arduino:1.6.13 (Windows 10), Kart:”Arduino/Genuino Uno”
D:\BD\hp\arduino karışık\arduino kodları\pushetta_ile_telefona_wifi_uzerinden_bildirim_mesafe\pushetta_ile_telefona_wifi_uzerinden_bildirim_mesafe.ino: In function ‘void setup()’:
D:\BD\hp\arduino karışık\arduino kodları\pushetta_ile_telefona_wifi_uzerinden_bildirim_mesafe\pushetta_ile_telefona_wifi_uzerinden_bildirim_mesafe.ino:31:22: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
D:\BD\hp\arduino karışık\arduino kodları\pushetta_ile_telefona_wifi_uzerinden_bildirim_mesafe\pushetta_ile_telefona_wifi_uzerinden_bildirim_mesafe.ino: In function ‘void loop()’:
pushetta_ile_telefona_wifi_uzerinden_bildirim_mesafe:58: error: ‘veriPushetta’ was not declared in this scope
D:\BD\hp\arduino karışık\arduino kodları\pushetta_ile_telefona_wifi_uzerinden_bildirim_mesafe\pushetta_ile_telefona_wifi_uzerinden_bildirim_mesafe.ino: In function ‘void veriPushetta(String, String)’:
D:\BD\hp\arduino karışık\arduino kodları\pushetta_ile_telefona_wifi_uzerinden_bildirim_mesafe\pushetta_ile_telefona_wifi_uzerinden_bildirim_mesafe.ino:101:20: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
exit status 1
‘veriPushetta’ was not declared in this scope
This report would have more information with
“Show verbose output during compilation”
option enabled in File -> Preferences.
buradaki kodu biraz değiştirdim ama çalışıyordu aynı kodu şimdi tekrar atmaya çalışıyorum arduinoya bu hatayı alıyorum “veriPushetta(CHANNEL,”HIRSIZ VAR!”);” buradaki veri pushetta kısmını sildiğimde sorunsuz atıyor kodu ancak bildirim gelmiyor bu seferde
LÜTFEN YARDIMCI OLURMUSUNUZ !
#define SERVER “api.pushetta.com
api.pushetta.com yazan yeri ne ile değiştirmemiz gerekiyor?
çok güzel bir uygulama ve anlatım yeni projelerini bekliyoruz bartu..
Her şey doğru ama mesaj gelmiyor neden
bu projeyi gps modülü kullanarak konum bilgisi vermesini sağlamak için ne gibi değişiklikler yapılabilir bitirme projemde kullanıcam yardımcı olursanız sevinirim..
ve de alarm ötmesi nasıl uygulanır
Merhaba her şeyi yapmama rağmen telefonuma mesaj gelmiyor bir çok yöntem denedim olmadı yardımcı olur musunuz?
Hocam ben bunu ardunio ya yüklüyorum mesaj da atıyor ama harici güç ile baglayınca (güç kablosu) mesaj göndermiyor anca usb ile bilgisayara baglamam gerek sebebi nedir
Merhabalar, nasıl hallettiniz acaba. Ne yaparsam yapayım arduino usb ile bağlıyken mesaj atmayı başaramadım. Yardımcı olabilirseniz sevinirim.
Merhaba. Aynı sorun bizde de var çözdüyseniz yardımcı olur musunuz lütfen
Arduino kartı bilgisayarınıza USB ile bağlı iken haberleşme için 0 ve 1 numaralı seri port pinlerini kullanır. Bu sebepten sorun yaşamaktasınız.
Neden stringlere sürekli += şeklinde tanımlama yaptınız ?
Okunması kolay olsun diye mi ?
Kolay okunması için 🙂
Kerem Bey, #define SERVER “api.pushetta.com” kısmını değiştirmek gerekiyor mu ? Gerekiyorsa oraya ne yazmalıyız?
Hayır, bu adresi değiştirmemelisiniz.
Merhaba her şeyi yaptım ama serial ekran da da AT+CWMODE=3
AT+CWJAP=”eren”,”554541123Asd”
AT+CIPSTART=”TCP”,”api.pushetta.com”,80
AT+CIPSEND=241
AT+CIPCLOSE=0
bunlar çıkıyor ama olmuyor sebebi nedir?
Hocam bir türlü mesaj gitmiyor. Her şey doğru. Modüller sağlam . Sıkıntı nerde bulamadım bir yardım ederseniz çok mutlu olurum.
Hocam bizde denedik aynı hatayı alıyoruz mesaj gelmıyor Bunun nedeni nedir çözümü buldunuzmu
direnci hangisini kullandınız arkadaşlar ben tam göremedim de
error: espcomm_upload_mem failed
Böyle bir hata alıyorum ve çözemiyorum yardımcı olabilecek var mı ?
Merhaba her şeyi yaptım ama serial ekran da da AT+CWMODE=3
AT+CWJAP=”eren”,”554541123Asd”
AT+CIPSTART=”TCP”,”api.pushetta.com”,80
AT+CIPSEND=241
AT+CIPCLOSE=0
bunlar çıkıyor ama olmuyor sebebi nedir?
Her şey doğru olmasına rağmen telefoba mesaj gelmiyor lütfen cevap verin nasıl çözdünüz bu sorunu 21 mayıs tarihinde bu projeyi ödev olarak teslim etmemiz gerek
Lutfen yanıtlayın çok zor durumdayız
hocam iyi günler nodemcu esp8266 ile belirli bir internet sitesinden başka bir nodemcu esp8266 ile gönderdiğim veriyi geri alıp seri porta yazdıran bir proje üzerinde çalışıyorum ancak veri almada sorunlar yaşıyorum yardımcı olabilir misiniz?????
Merhaba. Herşeyi doğru yaptık ancak mesaj alamıyoruz. Pushetta indirip kanalımızı oraya da ekledik. Sebebi ne olabilir acil yardım lütfen projeyi teslim etmemiz lazım
Bizde de ayni sorun var calismiyor ve bizim de teslim etmemiz gerek hemen
Merhaba, hersey calisiyor, birden fazla sensor kullanip, nasil veri yollariz kodda nasil degisiklik yapmamiz lazim, misal 1 de pir sensor koysak, mesaj atarken, hangisi algiladi ise onun mesajini nasil atacagiz?
Merhaba her şeyi yaptım ama serial ekran da da AT+CWMODE=3
AT+CWJAP=”eren”,”554541123Asd”
AT+CIPSTART=”TCP”,”api.pushetta.com”,80
AT+CIPSEND=241
AT+CIPCLOSE=0
bunlar çıkıyor ama olmuyor sebebi nedir?
Merhaba, pushetta uygulamasına string bir değer değilde elde ettiğimiz bir değişken verisini yollamamız için aceba hangi komutlarda ne tür değişiklikler yapmak gerekir. Bilgi verebilirseniz sevinirim.
Merhaba.. Kolay gelsin ben Mersin üniversitesi elektronik bölümü ögrencisiyim mezun olmam için arduino ile proje aldım.. Projem eve biri girdiğin de fark edip mail yollayacak ve siren çalacak bu projeyi nasıl yaparım bana yardımcı olabilecek biri var mı.??!!
Merhaba. Bu projeyi nrf24l01 modül ile yapmamız mümkün mü? Teşekkürler.
Merhaba, projeyi NRF24L01 ile yapabilirsiniz fakat belli bir menzilin dışına çıktığınızda veri akışı kesilecektir.
Yapmayı düşünürseniz şu yazımıza göz atabilirsiniz -> maker.robotistan.com/nrf24l01-ile-uzaktan-kontrol/
Hocam bu sistem için sizden yardım alıp iş yerimize kurmak istiyoruz iletişim kurabilir miyiz?
İşlemi gerçekleştirmeyen arkadaşlara yardım amaçlı yazmak istedim. Esp8266 için arduino 5v çıkışından besleme yaptım. Yazılımı yükledikten sonra rx ve tx bağlantılarının yerini değiştirdim. Bu sekile mesaj gelmeye başladı.
Pushetta çalışmıyor başka önerebileceğiniz notifications uygulaması varmı
İyi günler, http://www.pushetta.com sitesi kapanmış sanırım bunun yerine başka önereceğiniz alternatif uygulama var mı?
Merhaba bu proje rasbperry pi üzerinde yapılabilir mi ?
İyi günler, http://www.pushetta.com sitesi kapanmış sanırım bunun yerine başka önereceğiniz alternatif site
var mı?
Pushetta çalışmıyor yada açılmıyor acil başka bir site/uygulama lazım….
Efendim bu verdiğiniz pushetta olmuyor inmiyor linkede üye olunmuyor lütfen yardım.