ESP32 IoT RGB LED Şerit (WS2812B)
Odanın ışığını telefondan yönet: rengi seç, parlaklığı ayarla, gökkuşağı ya da nefes efektini aç. Bu proje uygulamadaki RGB LED şerit IoT şablonunun adım adım rehberi: ESP32 ve 30 LED'lik WS2812B şerit ile üç kabloda kurulur. Atölyem › Cihazlarım › Yeni cihaz ekle yolunu izle, RGB LED şerit'i seç; kodu Ohmi senin cihaz anahtarınla hazırlar. Bu sayfadaki kod örnektir: anahtar ve Wi-Fi bilgileri yer tutucu.

Bu cihazı uygulamadan kontrol et
ESP32 ya da Raspberry Pi Pico W kartını Wi-Fi'ye bağla; telefonundan aç, kapat ve ölçümleri canlı izle. Kodu Ohmi hazırlar, sen yalnız Wi-Fi bilgini girip yüklersin.
Uygulamadaki şablon: RGB LED şerit
- Uygulamada nerede?Araçlar sekmesinden ya da Atölyem › Cihazlarım'dan yeni cihaz ekle, bu şablonu seç.
- Arduino kütüphanesiArduino IDE'de Kütüphane Yöneticisi'ni aç, BlueGraysIoT diye ara ve kur.
Ücretsiz planda 1 cihaz, 1 grafik ve 24 saatlik geçmiş var. Premium ile daha fazla cihaz, grafik ve daha uzun geçmiş.
Devre Şeması

Kaynak Kodu
1// ─────────────────────────────────────────
2// BlueGrays · bluegrays.com
3// ESP32 IoT RGB LED Şerit (WS2812B)
4// ─────────────────────────────────────────
5// BlueGrays uygulamasındaki "RGB LED şerit" IoT şablonu: 30 LED'lik
6// WS2812B şeridin ışığını, rengini, parlaklığını ve efektini (sabit,
7// gökkuşağı, nefes, yanıp sönme) telefondan değiştirirsin. Gerçek kodu
8// uygulamada Ohmi senin cihaz anahtarınla hazırlar (Atölyem › Cihazlarım ›
9// Yeni cihaz ekle); buradaki kod örnektir, cihaz anahtarı ve Wi-Fi
10// bilgileri yer tutucudur. Kütüphane Yöneticisi: BlueGraysIoT
11// (bağımlılıklarıyla) ve Adafruit NeoPixel. Kart yalnız 2,4 GHz Wi-Fi
12// ağlarına bağlanır. Tam parlaklıkta 30 LED için şeridi ayrı bir 5 V 2 A
13// adaptörden besle, GND'leri birleştir.
14//
15// Pinler:
16// GPIO13 -> WS2812B şerit DIN
17// 5V, GND -> Şerit 5V, GND
18// Pico W: şerit DIN GP2, 5V VBUS
19
20/*
21 * RGB LED şerit · BlueGrays IoT
22 * BlueGrays · bluegrays.com
23 * Bu kodu paylaşma: içinde cihaz anahtarın ve Wi-Fi şifren var.
24 */
25
26#include <BlueGraysIoT.h>
27#include <Adafruit_NeoPixel.h> // Kütüphane Yöneticisi: 'Adafruit NeoPixel'
28
29const char *DEVICE_KEY = "CIHAZ_ANAHTARIN";
30const char *WIFI_NAME = "WIFI_ADIN";
31const char *WIFI_PASSWORD = "WIFI_SIFREN";
32
33BlueGraysIoT bg(DEVICE_KEY);
34
35const int LED_COUNT = 30;
36Adafruit_NeoPixel strip(LED_COUNT, 13, NEO_GRB + NEO_KHZ800);
37bool isOn = false; uint8_t cr = 255, cg = 255, cb = 255; int brightness = 70; String effect = "sabit";
38void paint() {
39 strip.setBrightness(isOn ? map(brightness, 0, 100, 0, 255) : 0);
40 for (int i = 0; i < LED_COUNT; i++) strip.setPixelColor(i, strip.Color(cr, cg, cb));
41 strip.show();
42}
43
44void setup() {
45 Serial.begin(115200);
46 strip.begin();
47 paint();
48 bg.onSwitch("acik", [](bool on) { isOn = on; paint(); });
49 bg.onColor("renk", [](uint8_t r, uint8_t g, uint8_t b) { cr = r; cg = g; cb = b; paint(); });
50 bg.onNumber("parlaklik", [](float v) { brightness = (int)v; paint(); });
51 bg.onChoice("efekt", [](const char *e) { effect = e; paint(); });
52 bg.setDebug(Serial);
53 bg.setLanguage(BG_LANG_TR);
54 bg.begin(WIFI_NAME, WIFI_PASSWORD);
55}
56
57void loop() {
58 bg.loop(); // burada uzun delay() kullanma
59 if (isOn && effect == "gokkusagi") {
60 static uint16_t hue = 0; hue += 64;
61 for (int i = 0; i < LED_COUNT; i++) strip.setPixelColor(i, strip.gamma32(strip.ColorHSV(hue + i * 2000)));
62 strip.show(); delay(5);
63 } else if (isOn && effect == "nefes") { // yavaşça sönüp yanar
64 float wave = (sin(millis() / 600.0) + 1.0) / 2.0;
65 strip.setBrightness((uint8_t)(map(brightness, 0, 100, 0, 255) * (0.15 + 0.85 * wave)));
66 strip.show(); delay(10);
67 } else if (isOn && effect == "yanip_sonme") { // yarım saniyede bir yanıp söner
68 strip.setBrightness((millis() / 500) % 2 ? map(brightness, 0, 100, 0, 255) : 0);
69 strip.show(); delay(10);
70 }
71}
72Sıkça Sorulanlar
Bu sayfadaki kodu doğrudan karta yükleyebilir miyim?
Yükleyebilirsin ama bağlanmaz: koddaki cihaz anahtarı ve Wi-Fi bilgileri yer tutucu. Uygulamada Atölyem › Cihazlarım › Yeni cihaz ekle yolunu izle ve RGB LED şerit'i seç; Ohmi kodu senin anahtarın, ağ adın ve şifrenle hazırlar. O kodu kopyalayıp yükle. Kodun tamamını sonra da Cihaz › Kod ve anahtar bölümünde görebilirsin.
Pico W ile de olur mu?
Olur. Cihazı eklerken kart olarak Pico W'yi seç; kod aynı kalır, yalnız veri pini değişir: şeridin DIN ucu GP2'ye, 5V ucu VBUS'a, GND GND'ye. Arduino IDE'de Kart Yöneticisi'nden "pico" paketini, Kütüphane Yöneticisi'nden Adafruit NeoPixel'i kur. Bu sayfadaki devre ve fotoğraf ESP32 ile hazırlandı.
Şeridi USB'den besleyebilir miyim?
Kısa denemeler için evet, ama dikkat: her LED tam beyazda yaklaşık 60 mA çeker, 30 LED en parlak hâlde 1,8 A'ya kadar çıkabilir. Bu da USB'nin ve kartın taşıyabileceğinden fazla. Uzun süre ya da yüksek parlaklıkta kullanacaksan şeridi ayrı bir 5 V 2 A adaptörden besle ve adaptörün GND'sini kartın GND'sine bağla. Kod 30 LED içindir; şeridin daha uzunsa LED_COUNT değerini değiştir ve adaptörü ona göre seç.
Uygulamada neleri değiştirebilirim?
Cihaz ekranında dört kontrol var: Işık anahtarı şeridi açıp kapatır, Renk seçici bütün LED'leri aynı renge boyar, Parlaklık kaydırıcısı 0 ile 100 arasında ayar yapar, Efekt listesinden Sabit, Gökkuşağı, Nefes ya da Yanıp sönme seçilir. Elektrik gidip gelince kart bağlanır bağlanmaz son seçtiğin renk, parlaklık ve efekt geri gelir.
