Spark Core push notifications

Bir Internet of Things (IoT) yazısı daha yazmak galiba yerinde olacak. İlk yazıdan bu yana pek bi süre geçmedi ama bu konuda yaptığım çalısmalar bir yazı yazabilecek kadar daha yol kat etti. ilk yazıda Spark Core wifi sıcaklık ölçer yapıp değerleri google docs a kaydedip bir grafik çizmiştik. Bu yazıda bir sensorden bilgi aldığımızda bir olayı nasıl tetikleyeceğimizi anlatmaya çalışacağım. Yine sensörümüz Spark Core‘a bağlı olacak. Burada da IoT olarak Spark Core kullanıyoruz. İleride çok fazla seçenek olacağını düşünüyorum. Bu modüllerin fiyatları 5-6 Dolara düşüyor. Yeni çıkan bir modülden sipariş verdim (fiyatı 6 Dolar) gelince sizlerle burada paylaşacağım.

Push Notification bir olay olduğunda bize bilgi gelmesi olarak özetlenebilir. Yani biz sensör değerini sorgulayıp cevap almıyoruz. Sensör değeri değiştiğinde bize otomatik bilgi geliyor. Bunu gerçek uygulama olarak bu yazıda şöyle örneklemek istiyorum. Ev kapısının açıldığını iphone’umdan olay olduğu an görmek istediğimizi düşünelim. Ben bunu bana temizlik için yardıma gelen Selda ablanın eve ne zaman girip ne zaman çıktığından haberdar olmak için kullanacağım. Bunu bir güvenlik sistemi olarak da düşünüp kullanabilirsiniz. Ayrıca hareket sensörleri oldukca ucuzladı aynı mantıkla kapı sensörü yerine hareket sensörü de sisteme bağlanabilir. PIR Sensörü olarak bilinen bu sensörü alıp testlerimde kullanıcam. IoT PIR sensörleri piyasaya cıktımı bilmiyorum ama güvenlik sistemleri satan arkadaşlar için ciddi bir fark yaratma fırsatı ticari olarak açıkca görünmekte. Ev wifi ağına bağlanan kapı pencere ve hareket sensörlerinden cep telefonunuza gelen uyarı sistemleri. Bunu bizde gnexlab’da düşünmeliyiz. Bu yazı da ilk proof of concept olsun.

Artık projeye geçelim isterseniz.

Bu yazıda notification sağlamak amacıyla  http://www.pushingbox.com/ sitesini kullanmak ve sizlere tanıtmak istiyorum. Pushingbox IoT cihazlar için bir notification center (Yani tam aradığımız şey. IoT de oluşan durumu bize uyarı ile haber veriyor.) Durumu size eposta, tweet, iphone notification gibi bir çok yolla haberdar ediyor. Üyelikle başlıyoruz. Daha sonra My Services den bir prowl servisi yaratıyoruz.

prowl’u iphone app store dan satın alıyoruz fiyatı 2.99 Dolar 🙁

prowl web sitesinden de bir uyelik yapıyor ve API Key ürettiriyoruz. Bu Keyi Pushingbox da yarattığımız servise girip kaydediyoruz. Bundan sonra yine Pushingbox da bir senaryo yaratıyoruz. Gerekli bilgileri girip bu senaryo ya action olarak tanımladığımız Prowl servisini ekliyoruz. Dilerseniz başka servislerde ekleyebilirsiniz. Olay olduğunda hem eposta alabilir hem de bir tween yayımlayabilirsiniz. Birden fazla servis aktive edilebilir.

Devre bu şekilde:

 

 

spark_kapi

 

resmide böyle:

photo (10)

 

Aşağıdaki kodu Spark Core a yüklüyoruz. Bunu https://www.spark.io/build üzerinden yaptığınızı daha önce anlatmıştık.

////
//
// General code from http://www.pushingbox.com for Spark Core v1.0
//

const char * DEVID1 = "Sizin DEVID niz";         // Scenario: "The mailbox is open"


const char * serverName = "api.pushingbox.com";   // PushingBox API URL
             // Save the last state of the Pin for DEVID1
TCPClient client;
boolean pinDevid1State = false; 

void setup() {
              // Start the USB Serial
   pinMode(D4, INPUT); 
  

   
}

void loop() {

  
     
      if (digitalRead(D4)) {
           sendToPushingBox(DEVID1);
           delay(2000);
      }
      
    
}

void sendToPushingBox(const char * devid)
{
   
   
    client.stop();
  
    if (client.connect(serverName, 80)) {
       
        client.print("GET /pushingbox?devid=");
        client.print(devid);
        client.println(" HTTP/1.1");
        client.print("Host: ");
        client.println(serverName);
        client.println("User-Agent: Spark");
        //client.println("Connection: close");
        client.println();
        client.flush();
                
    } 
    else{
       
    }
}

Artık Ev kapısı açıldığında cep telefonunuza uyarı gelecektir. Pushbox.com adresinde de tarihsel bir history tutuluyor. Tarih saat bilgisini oradan görebilirsiniz.

 

 

 

2 thoughts on “Spark Core push notifications”

  1. Örnek güzel olmuş elinize sağlık, eğer button yerine HC-SR501 PIR kullanırsanız, spark core üzerinde pushingbox servisini çağırdığınızda cloud üzerinden sizi sürekli atıyor. delay() de verip tekrardan denedim. Sonuç olarak spark core cloud tarafında bir sorun oldugunu anladım, malesef çok stabil çalışmıyor. firmware de güncel. Sizde bu şekilde bir sorun ile karşılaştınız mı?

    1. Bence bir flag degisken kullanip PIR sensorde hareket olunca programi artik tetikleme modundan mesaj gonderip durma moduna almak lazim. Arka arkaya bir cok tetikleme gidiyor olabilir sonucta buttonla ayni mantik. Kodu burada paylasirsaniz uzerinde calisabiliriz

      Nuri

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.