Merhaba arkadaşlar bu serimizde sizinle NodeMCU ile led yakma için farklı devreler kuracağız. Ben ESP8266 12E modülünü kullanacağım.
NodeMCU nedir derseniz IoT dünyasının göz bebeği olan açık kaynaklı bir platformdur. Daha detaylı bilgi istiyorsanız önceki yazılarımız için Robolink Akademi sayfasını ziyaret edebilirsiniz.
Şimdi ilk başta led yakmayı öğreneceğiz daha sonra Blynk uygulamasıyla yakmayı öğreneceğiz. Bu sayede blynk uygulamasına da aşina olacağız. Blynk uygulaması telefonunuza ya da bilgisayar, tabletlerinize indirip arduino İDE üzerinden belirli kodlarla ve aynı IP bağlantısı üzerinden uzaktan modüllerinize komut verebileceğiniz bir uygulama.
NodeMCU ile LED Yakma
Aduino İDE’mizi açıyoruz. Dosya kısmından tercihlere tıklıyoruz ve açılan pencerede Ek devre kartları yöneticisi URL’si yerine http://arduino.esp8266.com/stable/package_esp8266com_index.json bağlantısını yapıştırıyoruz.
Daha sonra araçlar kısmında kart yöneticisi kısmına tıklıyoruz.
Açılan pencerede ESP8266’yı aratıyoruz ve indiriyoruz bende halihazırda olduğu için kur yok fakat siz kura basıp indirebilirsiniz.
Yükleme bittikten sonra kart seçimimizi yapacağız.
Ve eveet artık kartımız hazır. Şimdi devre kurma kısmına geçelim.
Ledinizin uzun bacağını(+) D1 pinine, kısa bacağını(-) herhangi bir GND pinine bağlıyorsunuz.
Kartınızı bilgisayara USB ile bağlayıp portunuzu seçtikten sonra artık kodlamaya geçebiliriz.
#define LED D1 // NodeMCU'da LED'in bağlanacağı pini tanımlıyoruz.
void setup() {
pinMode(LED, OUTPUT);
}
void loop() {
digitalWrite(LED, HIGH);
delay(1000);
digitalWrite(LED, LOW);
delay(1000);
}
Şimdi bu nodemcu ile led yakma uygulamasının aynısını Blynk ile deneyelim. İlk öncelikle sizden isteğim kullanacağınız cihaza blynk uygulamasını indirmeniz olacak. Daha sonrasında Arduino İDE programında blynk uygulamasıyla haberleşmesi için blynk kütüphanesi indirmemiz gerekiyor. Yine araçlardan kart yöneticisi kısmına gelip blynk kütüphanesini kuruyoruz.
Daha detaylı blynk uygulaması kurulumu için NodeMCU Blynk Projesi yazısını okuyabilirsiniz.
Devre şemamız yukarıdakiyle aynı sadece kodumuzda farklılıklar olacak onu da sizinle paylaşacağım. Blynk uygulaması indirdiğinizde mailinizi kontrol edin size bir token gelecek onu kodun içinde kullanacağız. Blynk kullanacağımız zaman dikkat etmemiz gereken bir detay var oda kod da girdiğiniz internet bilgilerine ait internete telefonunuzun yada uygulamayı kullanacağınız cihazında bağlı olması gerekmektedir. Bunun nedeni aynı IP adresinde bulunması gerekir ki haberleşme sağlanabilsin.
ESP8266 Pin dağılımı;
Devre kurulumumuzda ledimizi D2 pinine bağlamıştık. Fakat NodeMCU’da farklı GPIO dağılımları bulunmaktadır. Yukarıda pin dağılımını ve blynk uygulamasından bir pencere görüyorsunuz. Yani D2 pinimiz GP4 pinine denk gelmektedir. Butonunuzu digital pininde bağlamış olduğunuz pine göre seçmelisiniz. Ve kodun içindede o şekilde belirtmelisiniz. Şimdi aşağıdaki kodu kartınıza atabilirsiniz.
//Blynk ve ESP8266 Kullanımı Örneği
#define BLYNK_PRINT Serial
//#ifndef UNIT_TEST
#include <Arduino.h>
//#endif
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#define led D2
int butondurumu=0;
// Blynk uygulamasından aldığınız anahtar(token)'ı buraya giriyoruz.
char auth[] = "*******************";
// Wifi ayarlarınız buraya girilecek.
// şifresiz ağlar içi şifreyi "" olarak bırakın.
char ssid[] = "***********";
char pass[] = "*********";
BlynkTimer timer; //senkronu sağlamak için bir sayaç nesnesi oluşturuluyor.
/////////////////Blynk üzerinden ESP'ye komut gönderme/////////////////////////////////////
BLYNK_WRITE(GP4) //uygulamada tanımladığımız değişken ismi olmalı
{
int pinValue = param.asInt(); // digital GP4 değişkeninden aldığımız veriyi bir değişkene atıyoruz.
// Ayrıca veri tipine göre şunlar da kullanılabilir.:
// String i = param.asStr();
// double d = param.asDouble();
if (pinValue==1){
Serial.println(" AÇIK");
digitalWrite(led,HIGH);
butondurumu=1;
}
else {
Serial.println(" KAPALI");
digitalWrite(led,LOW);
butondurumu=0;
}
}
void setup()
{
Serial.begin(115200);
pinMode(D2, OUTPUT);//D2 pinini çıkış olarak tanımladık
Blynk.begin(auth, ssid, pass); //blynk'e bağlanıyoruz
// Arzu edersebiz server'ı da detaylı olarak belirtebilirsiniz:
//Blynk.begin(auth, ssid, pass, "blynk-cloud.com", 80);
//Blynk.begin(auth, ssid, pass, IPAddress(192,168,1,100), 8080);
}
void loop()
{
Blynk.run(); //Burası mümkün olduğunca boş olmalı. Blynk'in çalışma mantığı genel olarak bu şekilde. Loop içinde başka işlemler olunca Blynk sunucusu ile olan senkron bozulabiliyor.
}
Görmüş olduğunuz gibi bir buton belirledim. Bu buton sayesinde Wi-Fi bağlantısı üzerinden ledimi açıp kapatabiliyorum.
Siz de denemek isterseniz yukarıdaki adımları takip edin. Eğer takıldığınız bir yer olursa aşağıya soru olarak bırakabilirsiniz. 🙂
Hepinize iyi çalışmalar dilerim. 🙂