Blynk- Dht11- 5V 2Kanal Röle- Program Tepki Hızı Neden Yavaş

erdinccatal

Yeni Üye
Katılım
12 Ekim 2021
Mesajlar
7
merhaba, arkadaşlar aşağıdaki program ve blynk arayüzünü sizler ile paylaşıyorum... benim sorunum blynk arayüzünde D0 ve D1 röle butonlarına tıkladığımda röleler gecikmeli cevap vermektedir. ancak programda HCSR04 ultrasonik sensör ile ilgili olan kısımları çıkardığımda (satır numarası 11,12,13,14,17,18,21,22,23,24,25,26,27,28,30) sadece DHT11 ve 2 adet röle için çalıştırdığımda aynı anda tepki almaktayım. herhangi bir gecikme olmamaktadır. konu hakkında bilgi paylaşımı ve yardımlarınız için şimdiden teşekkür ederim.

Kod:
#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <dht11.h> // dht11 kütüphanesini ekliyoruz.
#define DHT11PIN 4 // DHT11PIN olarak Dijital 2"yi belirliyoruz.
dht11 DHT11;
int sicaklik, nem;
char auth[33] = "W-Btn3XnaSu4qi9v3bj3rUTNFComubFc";
char ssid[33] = "E";
char pass[33] = "erdinccatal";
const int echoPin = D8;
const int trigPin = D6;
long duration;
int distance;
void setup() {
Serial.begin(9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT); 
Blynk.begin(auth, ssid, pass);}
void loop() {
digitalWrite(trigPin, LOW);
delayMicroseconds(20); 
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = duration * 0.017;                   
Blynk.virtualWrite(V3, distance);   
Blynk.run();
delay(500);} 
BLYNK_READ(V0) {
DHT11.read(DHT11PIN);
sicaklik = DHT11.temperature;
Serial.println("Sıcaklık: " + String(sicaklik));
Blynk.virtualWrite(V0, sicaklik);}
BLYNK_READ(V1) {
DHT11.read(DHT11PIN);
nem = DHT11.humidity;
Serial.println("Nem: " + String(nem)); 
Blynk.virtualWrite(V1, nem);}
 
blynk arayüzünü eklemeyi unutmuşum. aşağıda bulabilmeniz mümkündür...
 

Ekler

  • WhatsApp Image 2021-10-13 at 14.11.23.jpeg
    WhatsApp Image 2021-10-13 at 14.11.23.jpeg
    49.8 KB · Görüntüleme: 148
Ana döngüde 500 ms delay var zaten. Bundan dolayı en az 500 ms lik bir gecikme mutlaka olur.
 
Hangi fonksiyonların gecikme yarattığını tespit etmek için millis() fonksiyonunu kullanabilirsin. Şüpheli fonksiyonu çağırmadan önce ve sonraki milisaniye zamanı kaydedersin, sonra da farka bakarsın.
 
biraz önce bir deneme yaptım. şöyle ki; blynk daki dht11 in gauge lerine yani hem nem hemde sıcaklık verilerinin komut kısmını açtığımda orada verileri yenileme hızı vardı ve bende 1saniyede bir verileri yenile yazıyordu. ben bu değeri 5 saniyeye düşürdüm. yani 5 saniyede bir nem ve sıcaklık verisi yenileyecek şekilde düzenledim ve sonuç farkedilir derece değişti. yani epey hızlandı.

ilave olarak sizin belirttiğiniz şekilde; ana döngüdeki delayları 500 değilde örneğin 50 yapsam programda herhangi hata vermez sanırım. bu şekilde de epey zaman kazanırım diye düşünüyorum.

diğer bir olasılıkta bütün delayları kaldırsam program hata verir mi acaba? bir deneyip cevabını yazacağım
 

Forum istatistikleri

Konular
7,235
Mesajlar
122,422
Üyeler
2,924
Son üye
aytu

Son kaynaklar

Son profil mesajları

Freemont2.0 herbokolog Freemont2.0 wrote on herbokolog's profile.
nick iniz yakıyor
:D
Freemont2.0 posta Freemont2.0 wrote on posta's profile.
Merhabalar :)
az bilgili çok meraklı
Prooffy semih_s Prooffy wrote on semih_s's profile.
Merhaba, sizden DSO2C10 hakkında bilgi rica ettim. Yanıtlarsanız sevinirim...
Unal taydin Unal wrote on taydin's profile.
Timur Bey, Arduino kontrollü bir akü şarj cihazı yapmaya çalışıyorum. Aklımdaki fikri basit bir çizim olarak konu açmıştım. Özellikle sizin fikirlerinizi çok önemsiyorum.
Back
Top