Blynk .... Lutfen yardim..

2mmert

Yeni Üye
Katılım
20 Haziran 2021
Mesajlar
7
Arkadaslar Merhaba...
Hemen ilk mesajimda yardim istedigim icin kusura bakmayin..
Ben 3 ay once falan bu Arduino ya merak saldim.. Youtube ve yabanci sitelerden ogrendigim kadar 950 satirlik bir sera otomasyon
sistemi yaptim ve stabil calisiyor.. Sonra esp8266-01 internete baglanmak istedim onuda becerdim..ama programda hatalar vermeye
basladi,internetten dusmeler falan.... yani bas edemedim..
Sonra Uno yazilimi calistirsin nudemcu sadece internete baglanip blynk islemlerini yapip gerekli verileri cekip /gondersin istedim..
Suanda bylnk de gauge ile 3 tane veriyi okuyorum.. ama 4 relay roleyi ac/kapa yapamiyorum..
ve inanin 45 gundur hergun ugrasiyorum bakmadigim video ,forum sitesi kalmadi,,
yazilimi sadece ndemcu da calistirayim dedim ondada devamli derleme sirasinda hata verip durdu.

sistem
uno ya bagli dht11 ,mq135 ,8li led, lcd ic2 ,rtc saat modulu, 4 relay role (0 ile tetikleniyor} ve nodemcu

uno < ---> nodemcu 8266 v3 <----> bylnk

Yazilima bir bakip yardimci olursaniz cok sevinirim..
Sera Otomasyonu:
//ARDUINO YUKLE



//DHT11 Lib

#include <DHT.h>



//Arduino to NodeMCU Lib

#include <SoftwareSerial.h>

#include <ArduinoJson.h>



//Initialise Arduino to NodeMCU (10=Rx & 11=Tx)

SoftwareSerial nodemcu(10, 11);



//Initialisation of DHT11 Sensor

#define DHTPIN 2

DHT dht(DHTPIN, DHT11);

int temp;

int hum;



// MQ135 AYARLARI



#define sensor A1 

int gas, co2lvl;

 

 #define ROLEPIN_F   4   //ROLE FAN 220V      in1

#define ROLEPIN_N   12  //ROLE NEM 220V      in2

#define ROLEPIN_I   5  //ROLE ISIK 1 220V    in3

#define ROLEPIN_L   9  //ROLE ISIK 2 220V    in4









// ********************** SETUP *********************

void setup() {

 

  pinMode(ROLEPIN_F, OUTPUT);    //ROLE

  digitalWrite(ROLEPIN_F, HIGH);

  pinMode(ROLEPIN_N, OUTPUT);

  digitalWrite(ROLEPIN_N, HIGH);

  pinMode(ROLEPIN_I, OUTPUT);

  digitalWrite(ROLEPIN_I, HIGH);

  pinMode(ROLEPIN_L, OUTPUT);

  digitalWrite(ROLEPIN_L, HIGH);



  Serial.begin(9600);

  pinMode(sensor, INPUT);      //MQ135

  dht.begin();

  nodemcu.begin(115200);

 

  delay(1000);



  Serial.println("Program started");

}





// ********************** LOOP *********************

void loop() {



  StaticJsonBuffer<1000> jsonBuffer;

  JsonObject& data = jsonBuffer.createObject();



  //Obtain Temp and Hum data

  dht11_func();

  mq135_func();



  //Assign collected data to JSON Object

  data["humidity"] = hum;

  data["temperature"] = temp;

  data["co2"] = co2lvl;

 

  //Send data to NodeMCU

  data.printTo(nodemcu);

  jsonBuffer.clear();



  delay(1000);

 

  }





void dht11_func() {



  hum = dht.readHumidity();

  temp = dht.readTemperature();

  Serial.print("Humidity: ");

  Serial.println(hum);

  Serial.print("Temperature: ");

  Serial.println(temp);



}

void mq135_func() {

  

  gas = analogRead(sensor);

  co2lvl = gas-120;

  co2lvl = map(co2lvl,0,1024,400,5000);

  Serial.println(gas);

}

//NODEMCU YUKLE

#include <Blynk.h>

#define BLYNK_PRINT Serial

#include <ESP8266WiFi.h>

#include <BlynkSimpleEsp8266.h>



BlynkTimer timer;



char auth[] = "1HJh3g8b4ra9rFlSqLjDz_ABL5CukkH4";

char ssid[] = "Kablonet Netmaster-C5B5-G_EXT";

char pass[] = "1911ff74";



#include <SoftwareSerial.h>

#include <ArduinoJson.h>



//D8 = RX & D7 = TX

SoftwareSerial nodemcu(D8, D7);



void send_data() {

  StaticJsonBuffer<200> jsonBuffer;

  JsonObject& data = jsonBuffer.parseObject(nodemcu);



  if (data == JsonObject::invalid()) {

    //Serial.println("Invalid Json Object");

    jsonBuffer.clear();

    return;

  }



  Serial.println("JSON Object Recieved");

  Serial.print("Recieved Humidity:  ");

  float hum = data["humidity"];

  Serial.println(hum);

  Blynk.virtualWrite(V6,hum);

 

  Serial.print("Recieved Temperature:  ");

  float temp = data["temperature"];

  Serial.println(temp);

  Blynk.virtualWrite(V5,temp);



  Serial.print("Recieved co2:  ");

  float co2lvl = data["co2"];

  Serial.println(co2lvl);

  Blynk.virtualWrite(V7,co2lvl);

 

  Serial.println("-----------------------------------------");

}



// ================= SETUP =============================

// ======================================================

void setup() {

  // Initialize Serial port

  Serial.begin(9600);

  nodemcu.begin(115200);

  while (!Serial) continue;



   Blynk.begin(auth, ssid, pass,"blynk-cloud.com", 8080);

  timer.setInterval(100L, send_data);

}



void loop() {

  Blynk.run();

  timer.run();

}

Kusura bakmayin code cercevesine alamadim..

bylnk goruntusu
Screenshot_20210615-155315.jpg
 
Last edited by a moderator:
Detaylı bir konu. Sorunu bulabilmek için projenin tamamını anlamak gerekli.
Bence önce serial ekran için bir komut yazıp, bylink den röle için komut geliyor mu ona bak. Gelmiyorsa o tarafa yönelirsin, geliyorsa ne geliyor? 1 mi 0 mı? Ona göre röle'lere giden komutu incelersin. Her şeyi adım adım serial ekrana yazdırıp görme çalış, öncelikle aksaklığın hangi adımda olduğunu tespit et.
 
Hocam şu anda uno dan bylnke gelen sensör derecelerini okuyorum.. bylnk den uno ya aç kapa için bir komut yazmam gerek .. onu bilemiyorum işte... O yüzden yardım istiyorum.. yani şu anda yazılımda bylnk den gelen 1/0 komutunu unoya gönderip digitalWrite(12 ,LOW); komutunu yönetecek bir komut satırı yok..
Benim derdim o komut satırı..nasıl olmalı.. Teşekkürler..
 
Hocam şu anda yukarıda paylaştığım yazılım hata vermeden çalışıyor.. sadece bylnk button fonksiyonu ile röleler için açıp kapatma yapamıyorum.. ben o komutların nasıl yazılacak, onun hakkında yardım istiyorum..
Yazılım unoda çalışıyor+nodemcu sadece internet e bağlanmayı ve bylnk kontrol ediyor..
 
Hocam şu anda yukarıda paylaştığım yazılım hata vermeden çalışıyor.. sadece bylnk button fonksiyonu ile röleler için açıp kapatma yapamıyorum.. ben o komutların nasıl yazılacak, onun hakkında yardım istiyorum..
Yazılım unoda çalışıyor+nodemcu sadece internet e bağlanmayı ve bylnk kontrol ediyor..
Şu videoyu 7:38 den başlatarak izlermisin.
Bylnk den nodemcu ya nasıl komut gönderdiğini anlatıyor. İzle çözemezsen yine bakarız.

 
Hocam bu veriyi nodemcupinlerine gönderiyor..Benim röleler unoya bağlı..
Yani digitalWrite(D2, LOW); a hitap ediyor..
Ben bunu uno üzerindeki 12. Pini yazsam kontrol eder mı..
Yinede deneyeceğim.. Teşekkürler..
 
Hocam bu veriyi nodemcupinlerine gönderiyor..Benim röleler unoya bağlı..
Yani digitalWrite(D2, LOW); a hitap ediyor..
Ben bunu uno üzerindeki 12. Pini yazsam kontrol eder mı..
Yinede deneyeceğim.. Teşekkürler..
O zaman senin bylnk ile bir problemin yok.
Sen nodemcu ile unoyu haberleştirmelisin.
Bu haberleşme kartlar üzerindeki tx ve rx pinlerine jumper kablo bağlanarak yapılıyor.
Bağlantıyı şu şekilde çapraz yapabiliyorsun;
Uno "tx" pininden --> nodemcu "rx" pinine,
Uno "rx" pininden --> nodemcu "tx" pinine.
Bu sayede bilgi alışverişi yapabiliyorlar. Ama burada başka bir engel faktörü var. Nodemcu pinleri 3.3v ile çalışır. Uno pinleri ise 5v ile çalışır.
Bu yüzden veri aktarımı sağlanamaya bilir. Denemek lazım.
 
Arduino kullanmak yerine otomasyonun yazılımın NodeMCU'ya uyarlayabilirsiniz. İkisi de Arduino dilini kullanabiliyor.
 
Hocam yazılıma bakarsanız..
SoftwareSerial nodemcu(10, 11); //uno
SoftwareSerial nodemcu(D8, D7); //ndmc
kodları ile rx/tx iletişimi saglayip ,unoya bağlı sensorlerin verilerini nodemcu üzerinden bylnk den okuyabiliyorum..
Yani iletişim de sıkıntı yok.. bylinkden gelen 1/0 değerlerini unoya gönderecek ve roleyiacacak bir kod lazım..
 
Hocam yazılıma bakarsanız..
SoftwareSerial nodemcu(10, 11); //uno
SoftwareSerial nodemcu(D8, D7); //ndmc
kodları ile rx/tx iletişimi saglayip ,unoya bağlı sensorlerin verilerini nodemcu üzerinden bylnk den okuyabiliyorum..
Yani iletişim de sıkıntı yok.. bylinkden gelen 1/0 değerlerini unoya gönderecek ve roleyiacacak bir kod lazım..
Ne kadar mantıklı olacak bilmiyorum ama aklıma şöyle bir çözüm geldi;
Denemekten zarar gelmez.

Bylnk den bir röleyi tetiklemek için komut gönderdiğinde nonemcu şunu yapsın:
Kod:
void setup() {
pinMode(D3, OUTPUT);
}

void loop() {
digitalWrite(D3, HIGH);
}
Sonra nodemcu nun 3 nolu pininden uno nun 3 nolu pinine jumper kablo bağla. (pin numaralarınj kendin ayarlarsın, ben sallıyorum)
Uno tarfında ise nodemcu dan çıktığın pini oku.
Kod:
void setup() {
pinMode(3, INPUT);
}

void loop() {
int nodeRead;
nodeRead = digitalRead(3);
     if(nodeRead == 1){
         digitalWrite(RELAY_F, HIGH);
     }
     if(nodeRead == 0){
          digitalWrite(RELAY_F, LOW);
     }
}
 
Peki hocam arduio ya bagli 4 role islemlere gore acip kapanacak mesela co2 700 u gecince role2 acilacak..
ben bu rolelere -- hem unodan , hem nodemcu dan giris yapsam ne olur acaba..
Mesela uno 12 pininden giris, - nodemcu D3 pininden giris

yani unodan gonderdigim 5v luk tetikleme hem roleye hem de mecburen jumperlar paralel bagli olduklari icin nodemcunun D3 pinine gidecek.birbirlerine zarar verirlermi acaba
 
Peki hocam arduio ya bagli 4 role islemlere gore acip kapanacak mesela co2 700 u gecince role2 acilacak..
ben bu rolelere hem unodan hem nodemcu dan giris yapsam ne olur acaba..
Mesela uno 12 pininden giris, nodemcu D3 pininden giris
İki pin de aynı anda high olursa kartlara zarar verebilir. Yada unoyu high yaptığında nodemcu pinine 5v giderse bozulabilir. Ama mesela pin çıkışlarında diyot kullanırsan ters yönde akım geçmeyeceğinden iki pin de kullanılabilir, yada transistör kullanarak pinler anahtarlanabilir.
Deneme yapmak lazım.
 
Anladığım kadarıyla sorununuz Arduino ve NodeMCU arasındaki haberleşme. "Wire" adında bir kütüphane var, I2C protokolünü kullanarak iki mikrodenetleyicinin haberleşmesini sağlıyor. Bir araştırın-inceleyin derim.

Wire kütüphanesini kurduktan sonra şöyle bir kod yazabilirsiniz:
Blynk'ten röle açma/kapatma komutu alınır > NodeMCU bu komutu Wire haberleşmesi üzerinden Arduino UNO'ya gönderir, uno da gerekli pinini HIGH/LOW yaparak röleyi açıp kapatır.

Ek olarak sizin için naçizane bir önerim var, Blynk kullanmak yerine Google Firebase kullanın. NodeMCU ile mükemmel bir şekilde haberleşebiliyor. Telefon uygulaması için yazılım kısmında da Android Studio kullanın.

Belki hobi amaçlı uğraşan biri için ikisini birden kullanmak zor olabilir fakat hem kendinize çok şey katarsınız hem de projenizi profesyonel bir seviyeye çıkarırsınız.

YouTube'da özellikle yabancı kaynaklarda yeterince bilgi mevcut. Ben de daha önce sizin yapmaya çalıştığınız şeyin neredeyse aynısını yukarıda anlattığım şekilde yaptım, Firebase ve Android Studio konusunda bir sorununuz olursa yardımcı olabilirim.
 
Merhabalar... oncelikle ayni projeyi bende yapmaya calisiyorum ve hidroponik sistemde cilekler icin yapmaya calisiyorum... benzer sekilde bende ayni sorulari yonelttim sanirim..

Ancak senin soruna haddim olmayarak cevaplamam gerekirse, herhangi bir komut gerekli olmadan blynk uzerinde buton koy ve dijital pin atamasi yap... sonra roleleri bagla sisteme ve direk roleler calisacaktir.. sanirim pek anlatamadim.. ama ben role icin hicbir kod yazmadan hallettim...

Resimlerde goruldugu gibi programda 2 tane role tanimladim ve d0 ve d1 pinlerine bagladim... birde vin pinine baglanti yaptim.. birde gnd.. direk olarak roleler ve rolelere bagli olan cihazlari calistirdim.. rolelerim 5v, 220v...
 

Ekler

  • Screenshot_20211012-213826_Blynk.jpg
    Screenshot_20211012-213826_Blynk.jpg
    230.9 KB · Görüntüleme: 126
  • Screenshot_20211012-213815_Blynk.jpg
    Screenshot_20211012-213815_Blynk.jpg
    211.8 KB · Görüntüleme: 134

Çevrimiçi personel

Forum istatistikleri

Konular
5,815
Mesajlar
99,269
Üyeler
2,476
Son üye
mrmandos

Son kaynaklar

Son profil mesajları

gruptaki arkadaşlara selamlar. sıteyi bu gün fark ettim. Asansör için 2x7 segment LCD gösterge üretmek istiyorum. acaba bu sayfadaki arkadaşlardan destek alabilirmiyim. LCD nin mantık açılımı ektedir.
deneyci wrote on TA3UIS's profile.
Selam.
Amatör telsiz lisansı nasıl alınıyor?
Lisansı olmayanı forumlarına almıyorlar. :)
Bilgi alamıyoruz.
cemalettin keçeci wrote on HaydarBaris's profile.
barış kardeşim bende bu sene akıllı denizaltı projesine girdim ve sensörleri arastırıyorum tam olarak hangi sensör ve markaları kullandınız yardımcı olabilir misin?
m.white wrote on Altair's profile.
İyi akşamlar.Arabanız ne marka ve sorunu nedir.Ben araba tamircisi değilim ama tamirden anlarım.
* En mühim ve feyizli vazifelerimiz millî eğitim işleridir. Millî eğitim işlerinde mutlaka muzaffer olmak lâzımdır. Bir milletin hakikî kurtuluşu ancak bu suretle olur. (1922)
Back
Top