Blynk hakkında yardım

Nodemcu da herşey voidler oluşturup çalıştırmak gerekiyor gibi anladım..o yüzden derlemek benim için sıkıntı oluşturacak gibi.. neyse seri haberleşme bin bir yönünü hallettik.oteki yönünü bir şekilde herhalde hallederim..

Hocam 2 roleyi her saat 10 dakika açacak şekilde bir yazılımınız varmı acaba.. rtc modülü veya bir kütüphane kullanarak.. bir roleyi rtc kullanarak istenilen saatte ışığı açıp kapatma için ayarladım ama tek sefer yapabiliyorum..
Bu millis olayını hiç anlamadım..
 
NodeMCU da aynı Arduino gibi ilgili kütüphaneler eklenerek programlanıyor. Zaten siz internet bağlantısı için programlamışsanız diğer kodu oraya eklemek zor değil. Farklı bir şeye gerek yok.

Röleyi her saat 10 dakika açma işini kesme/interrupt'la halledebileceğiniz gibi millis() fonksiyonu ile de halletmek mümkündür. Hatta internet bağlantısı sürekli olacaksa ya da rtc modülü ile hangi saatlerde açılıp kapatılması kodlanabilir. millis() fonksiyonu döndürdüğü sayı boyutu açısından yaklaşık 50 gün sonunda sıfırlanır. Yani millis() kullanılacaksa arada belli zamanlarda (10 gün, 30 gün veya 45 günde bir) kartı resetlemek gerekecek. Çünkü millis() programın başlatıldığı andan itibaren geçen zamanı tutmaktadır.

Kodlarınızı paylaşırsanız bildiğim kısımlarda yardımcı olabilirim.
 
Zaten sıkıntı o.. o iş icin hiç kod bulamadım,zaten dediğim gibi millis olayını hiç anlamadım.. bir görev için millis kullanıyorum ,ikinci görevde millisler hata veriyor falan..
En güzeli rtc kullanarak yazmak ama nasıl..
Neyse ilginize tekrardan teşekkürler..
 
Zor değil, tabi saat üzerinden diyelim her saat 40 ile 49 dakikalar arasında diye kodlamaya göre biraz daha uzun olacak. Sürekli internet olacaksa saat internetten okutulabilir. RTC modülüne gerek kalmaz.
 
Hocam bu kodu yazdim ama dogrumu bir kontrol edermisiniz.
Role 0 ile tetikleniyor(mus..)
60 dk da bir role 5 dk acacak..

// ============ MILLIS ======
unsigned long simdikizaman = 0;
unsigned long oncekizaman = 0;
unsigned long simdikizaman1 = 0;
unsigned long oncekizaman1 = 0; //FAN AYARLARI
int offsuresi = 3600000; //fanlar nekadar surede bir acilacak
int onsuresi = 30000; // fanlar ne kadar zaman calisacak

boolean durum = HIGH;
boolean durum1 = HIGH;


// ********************** SETUP *********************
void setup() {

// ********************** LOOP *********************
void loop() {
//FAN-MILLIS AYARLARI
simdikizaman = millis();
Serial.println(simdikizaman);
if (simdikizaman - oncekizaman >= offsuresi)
{
oncekizaman = simdikizaman;
if (durum == 1 )
durum = 0 ;
else if ( durum == 0 )
durum = 1 ;
digitalWrite(ROLEPIN_F, durum);
}
simdikizaman1 = millis();
Serial.println(simdikizaman1);
if (simdikizaman1 - oncekizaman1 >= onsuresi)
{
oncekizaman1 = simdikizaman1;
if (durum1 == 0 )
durum1 = 1 ;
else if ( durum1 == 1 )
durum1 = 0 ;
digitalWrite(ROLEPIN_F, durum1);
}
}
Birde kodu forumda paylasirken code cercevesine nasil aliniyor
 
Son düzenleme:
Kod:
// Role 0 ile tetikleniyor(mus..)
// 60 dk da bir role 5 dk acacak..

// ============ MILLIS ======
unsigned long oncekizaman1 = 0; //FAN AYARLARI
unsigned long oncekizaman2 = 0;
int offsuresi = 3600000; //fanlar nekadar surede bir acilacak
int onsuresi = 30000; // fanlar ne kadar zaman calisacak

void setup()
{
  oncekizaman1=millis();
  oncekizaman2=millis();
}

void loop()
{
  İf (millis() - oncekizaman1 < offsuresi)
  {
    // motoru kapat..
    digitalWrite(ROLEPIN_F, HIGH); //röle ters çalıştığından.
    // her defasında kapatmaktansa açıksa kapat denebilir, kodu uzatmak istemedim.
    oncekizaman2=millis();
  }
  else if (millis() - oncekizaman2 < onsuresi)
  {
    // motoru aç...
    digitalWrite(ROLEPIN_F, LOW); //röle ters çalıştığından.
  }
  else
    oncekizaman1=millis();
}

Mesaj araçlarında üstte en sağdaki üç noktaya basınca kod tag'ı çıkacak, ona basıp kodunuzu çıkan pencereye yapıştırabilir, ya da başında köşeli parantezler içinde [ CODE ] (boşluk bırakmadan), sonunda da [ /CODE ] yazarak aynı sonucu alabilirsiniz. Aynı yerdeki köşeli parantezlere tıklayınca görebilirsiniz.

Dün geceden beri oğlumun sağlık sorunundan dolayı hastanede olduğumdan telefon üzerinden kısa yazabildim. Gözden kaçanları bilahare düzeltiriz.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için onları kabul etmelisiniz. Daha fazla bilgi edin…