Blynk Joystick ile NodeMCU Servo Kontrolü

Güncelleme tarihi: 17 Nis 2020

Bu uygulamamızda Blynk uygulamasında oluşturacağımız Joystick widget ile NodeMCU kartımıza bağlı servo motorumuzu kontrol edeceğiz.


 

NOT : Bu uygulamayı yapabilmeniz için NodeMCU kartınızın Arduino IDE arayüzüne tanıtılmış ve Blynk kütüphanesinin kurulmuş olması gerekmektedir.

İlgili yazılara buradan ulaşabilirsiniz.

 

Bu uygulamada kullanacağımız malzemeler;


  • NodeMCU

  • Servo Motor

  • Jumper Kablolar


Öncelikle devremizi şemada gördüğümüz şekilde kuruyoruz.



Blynk uygulamasında oluşturduğumuz joystick widget x ve y OUTPUT verisini bizim tercihimize göre ayrı ayrı(split) ya da birleşik halde(merge) tek bir pin üzerinden verebiliyor. Bu uygulamamızda biz tek bir pin üzerinden hem x hem y verisini alarak işlem yaptık. Verileri ayrı ayrı almak isterseniz widget özelliklerinde OUTPUT verisini "split" olarak seçebilirsiniz. Bu durumda x ve y için ayrı pinler tanımlamanız gerekecektir.


Yazdığımız kodu kartımıza yüklüyoruz. Kod açıklamalarını aşağıda görebilirsiniz.



#define BLYNK_PRINT Serial

// İlgili Kütüphaneler eklendi
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <Servo.h>

Servo servo;

// Projenize ait Auth Token. Uygulama içinden veya mail adresinizden erişebilirsiniz
char auth[] = "Auth Token";

//WiFi ağ adınız ve parolanız
char ssid[] = "Ağ Adınız";
char pass[] = "Ağ Parolanız";

int aci;
int servoPin = D5; // Servo motorumuzun kart üzerinde bağlı olduğu pin (GPIO14)

//V1 sanal pininden merge halde hem x hem de y verisini alabiliyoruz.
BLYNK_WRITE(V1) {
  int x = param[0].asInt();
  int y = param[1].asInt();

  //Alınan değerleri seri port ekranına yazdırıyoruz
  Serial.print("X = ");
  Serial.print(x);
  Serial.print("; Y = ");
  Serial.println(y);

  aci = map(x, 0, 1023, 0, 180); // 0-1023 aralığında gelen x verisini 0-180 aralığına eşliyoruz.
  servo.write(aci); // aci değerini servo motorumuza gönderiyoruz.
}

void setup()
{
  Serial.begin(9600);
  Blynk.begin(auth, ssid, pass);
  servo.attach(servoPin); // Servo motorumuzun bağlı olduğu pini tanımlıyoruz.
}

void loop()
{
  Blynk.run();
}

Blynk uygulamasında joystick widgetini seçerek ekranımıza ekliyoruz. Widget üzerine basılı tutarak ekranın istediğiniz yerine taşıyıp boyutunu ayarlayabilirsiniz. Widget üzerine tek tıklayarak ayarlar kısmına geliyoruz. OUTPUT verisini "merge" olarak değiştirip çıkış pinini de V1 sanal pini olarak ayarlıyoruz. Çıkış olarak istediğiniz değer aralığını bu alanda belirtebilirsiniz. Gecikme süresi ve diğer ayarları da yaparak tamamlıyoruz.



Widgetlarımızı ekleyip ayarlarını yaptıktan sonra sağ üstteki çalıştır butonu ile uygulamamızı çalıştırıyoruz.



İlgili kütüphaneler;


Projenizi yaparken karşılaştığınız problemleri yorumlar kısmında belirtirseniz ekibimiz en kısa sürede size yardımcı olacaktır.



Son Paylaşımlar