Blynk if şartı ilginç bir sorun
  • Arkadaşlar Blynk uygulaması ile telefondan ısı nem takibi yapıyorum. Aşağıda gördüğünüz if yapısının içine serial.println ile bişe yazayım sorun çıkmıyor fakat SMS();(api kodları üzerinden sms atımı.) fonksiyonunu yazınca blynk sucusuna dahi bağlanmıyor. Günlerdir ne yaptıysam boş ;/

    void sendSensor()
    {
    float h = dht.readHumidity();
    float t = dht.readTemperature(); // or dht.readTemperature(true) for Fahrenheit

    if (isnan(h) || isnan(t)) {
    Serial.println("Failed to read from DHT sensor!");
    return;
    }
    if(t >= 26)
    {
    Serial.println("kosul dogru");/////////////////////bu şekilde çalışıyor
    SMS(); /////////////////Ne hikmetse bu şekilde blynk sunucusuna dahi bağlanmıyor. Defalarca deneme yanılma yöntemi ile sonuç alamadım.

    }
    Blynk.virtualWrite(V5, h);
    Blynk.virtualWrite(V6, t);
    }
  • SMS(); harici deneyince durum ne denediniz mi yani koşul dışında
    birde Serial.println("kosul dogru"); bunu denediğinizde sürekli tekrarlıyor mu tekrarlaması sorun olabilir her defa koşul 26 olduğunda sadece bir defa tetiklemeye çalışın

    ayrıca aşağıdaki linkte DHT11ile okunan değeri benzer bir koşul içinde kullanıp tweet atmaya çalışan arkadaşta da sorun çıkmıştı 30dk aralıklarla okuyarak sorunu çözdü belki bir fikir verebilir
    http://www.forum.arduinoturkiye.com/index.php?p=/discussion/8679/dht11-tweet-atarken-kuecuek-bir-sorun#Item_33
  • O konuyu açan da benim hocam ;) Serial.println("kosul dogru"); bunu denediğimde şartın sağlandığı süre ekrana koşul doğru yazıyor. Sık tekrarlamaması için delay le 5 dk da bir yenilettirebilirim orda sorun yok.Sorun şu ki

    Serial.println("kosul dogru"); şartında blynk sunucularına bağlanırken SMS(); fonksiyonunu çağırdığımda sunucu bağlantısı bile yapamıyor ki sizin dediğiniz gibi bişe olsun.

    Daha da garibi SMS(); fonksiyonu ısı değeri 26 olunca çalışsın diyorum kodlarda ama daha ısı değerini okumadan bug'a giriyor ve blynk suncularına bağlanamıyor.Çok garip ;/
  • Önce kullandığınız kütüphanenin doğru çalıştığına emin olun. Mesela hiçbir koşul ve şart olmadan sadece SMS(); fonksiyonu çalışınca ne oluyor? Sadece Blynk.virtualWrite çalışınca ne oluyor? İkisi beraber çalışınca ne oluyor? Sonra tek başına sensörler çalışıyor mu bunu kontrol edin. Ancak herşey tamam ise koşullar ile birleştirin. Aksi halde hatayı bulmanız mümkün olmaz.

    Yani önce her parçanın doğru çalıştığına emin olun, sonra parçaları birleştirin.
  • timer.setInterval(300000L, SMS); bu şekilde if şartı dahi olmadan sadece sms fonksiyonunu tetikletiyorum. blynk sunucusuna bağlanıyor ama bu seferde sık sık bağlantı kopuyor yeniden bağlanıyor.

    [0] Blynk v0.3.6 on Arduino Uno
    [0] Getting IP...
    [1261] IP:192.168.50.43
    [5001] Connecting to blynk-cloud.com:8442
    [6712] Ready (ping: 110ms).
    [11714] Connecting to blynk-cloud.com:8442
    [13616] Ready (ping: 72ms).
    [18618] Connecting to blynk-cloud.com:8442
    [21321] Ready (ping: 82ms).
  • void setup()
    {
    Serial.begin(9600);
    Blynk.begin(auth);
    dht.begin();

    timer.setInterval(1000L, sendSensor);//Bu satırı bloke ettiğim zaman blynk sunucusuna bağlanıyor sms fonksiyonu da çalışıyor fakat iki fonskiyon aynı anda aktifken ne gariptir ki sunucuya dahi bağlanmıyor :/
    timer.setInterval(90000L, sendSMS);
    }

    [0] Blynk v0.3.6 on Arduino Uno
    [0] Getting IP...
    [1186] IP:192.168.50.43
    0C⸮⸮Blynk v0.3.6 on Arduino Uno
    [1] Getting IP...
    [1188] IP:192.168.50.43
    0C⸮⸮Blynk v0.3.6 on Arduino Uno
    [1] Getting IP...
    [5

    Arkadaşlar şöyle bir şey yapayım dedim blynk sunucusuna dahi bağlanmadı. Kaç gündür şununla uğraşıyorum çözemedim daha.
  • Aynı timer değişkenine farklı 2 işlem uygulatıyorsunuz gibi geliyor bana timerleri çoğaltın

    SimpleTimer timer;
    SimpleTimer timer2;

    timer.setInterval(1000L, sendSensor);
    timer2.setInterval(90000L, sendSMS);
  • aslında kütüphane olmadan aşağıdaki gibi belirli zaman aralıklarında da fonksiyonları çağırabilirsiniz

    //değişkenler
    unsigned long oncekiSensor;
    unsigned long oncekiSMS;


    //loop içinde
    unsigned long SimdiMLS = millis();

    if (SimdiMLS - oncekiSMS >= 90000L) {
    oncekiSMS = SimdiMLS;
    sendSMS();
    }

    if (SimdiMLS - oncekiSensor >= 1000L) {
    oncekiSensor = SimdiMLS;
    sendSensor();
    }
  • Hocam aynı timer üzerinden 5-6 fonksiyon çağrıldığını nette çok gördüm. milis fonksiyonu ile de olmadı. Anladığım kadarıyla loop'un içinde Blynk.run(); ve timer.run(); kodları dışında bişe yazarsam arduino sapıtıyor sunucuya bağlanmıyor.

    Bir de sadece bende Blynk v0.3.6 versiyonu düzgün çalışıyor(iki fonksiyonun da aynı anda aktif olmadığı durumlarda). Şuan 0.5.2 versiyonu var en güncel fakat hiç bir şekilde suncuya bağlanmıyor bu versiyonda da.

    [0] Blynk v0.3.6 on Arduino Uno
    [0] Getting IP...
    [5232] IP:192.168.50.43
    0
    [1] Blynk v0.3.6 on Arduino Uno
    [1] Getting IP...
    [1185] IP:192.168.50.43
    0
    0
    0
    0C⸮⸮Blynk v0.3.6 on Arduino Uno
    [1] Getting IP...
    [1186] IP:192.168.50.43
    0
    0
    0
  • Besleme ile ilgili bir sorun olmasın akım yetmeme durumu beslemeyi ne ile yapıyorsunuz. bağlantı yapmaya çalışırken gereken akım sağlanmadığı için olabilir bug'a giriyor bağlantı kopuyor dediniz ya bu aklıma geldi
  • Usb ile yapıyorum hocam beslemeyi.Dht11 + ethernert modül + arduino uno bu üçünü besliyorum.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Login with Facebook
Açık kaynak kültürü gereği, çözdüğünüz problemlerin çözümlerini paylaşmayı lütfen unutmayın.