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();
}
Comentários