ESP8266 İle Gece Lambası

ESP8266 kullanarak uzaktan kontrol edilebilir bir gece lambası projesidir. Blynk uygulaması kullanarak kontrolü gerçekleştirilmektedir. Proje için kullanılacak malzemeler aşağıda verilmiştir.

  • NodeMCU

  • 3 Adet WS2812B

  • 3D Baskılar

  • Jumper Kablolar

Devre şeması aşağıdaki gibi kurulmaktadır.

Blynk uygulamasını telefonumuza indirerek kayıt yapıyoruz. New Project diyerek renk değişimi için zeRGBa ve ışık şiddeti için Slider ekliyoruz. Uygulama kısmını oluşturduktan sonra kodlama için Arduino IDE'sine geçiş yapıyoruz.

LED'i çalıştırmak için yazacağımız kodda öncelikle FastLED.h kütüphanesini yüklüyoruz. Wi-Fi kullanıcı adı, Wi-Fi şifreyi ve Blynk uygulamasının Auth Token'ı yazıyoruz.

char auth[] = "Auth Token";
char ssid[] = "Kullanıcı Adı";
char pass[] = "Şifre";

LED'in bağlı olduğu pini tanımlıyoruz. Daha sonra int değerlerini tanımlayarak uygulama ayarlarını tanımlayabileceğimiz isimlendirme yapıyoruz.

#define PIN1 D1
int data=255;
int r,g,b;

zeRGBa için çalışma alanını ayarlıyoruz.

 BLYNK_WRITE(V3)
{
  r = param[0].asInt();
  g = param[1].asInt();
  b = param[2].asInt();

  static1(r, g, b,data);
}

Slider için çalışma biçimini ayarlıyoruz.

BLYNK_WRITE(V2)
{
data = param.asInt(); 
static1(r, g, b,data);
}

Yazılan kodları NodeMCU'ya yükleyerek internet üzerinde lambanın yanmasını sağlıyoruz. Kodların tamamı aşağıda verilmiştir.

#define BLYNK_PRINT Serial
#include <BlynkSimpleEsp8266.h>
#define FASTLED_ESP8266_RAW_PIN_ORDER
#include "FastLED.h"
#define NUM_LEDS1 60
#define LED_TYPE    WS2812
#define COLOR_ORDER GRB
CRGB leds1[NUM_LEDS1];
char auth[] = "Auth Token";
char ssid[] = "Kullanıcı Adı";
char pass[] = "Şifre";
#define PIN1 D1
int data=255;
int r,g,b;
void setup()
{
  Serial.begin(9600);
  Blynk.begin(auth, ssid, pass);
  FastLED.addLeds<LED_TYPE, PIN1, COLOR_ORDER>(leds1, NUM_LEDS1).setCorrection( TypicalLEDStrip );
}

BLYNK_WRITE(V3)
{
  r = param[0].asInt();
  g = param[1].asInt();
  b = param[2].asInt();

  static1(r, g, b,data);
}

void loop()
{
  Blynk.run();
}
BLYNK_WRITE(V2)
{
data = param.asInt(); 
static1(r, g, b,data);
}
void static1(int r, int g, int b,int brightness)
{
  FastLED.setBrightness(brightness);
  for (int i = 0; i < NUM_LEDS1; i++ )
  {
    leds1[i] = CRGB(r, g, b);
  }
  FastLED.show();
}


Son Paylaşımlar