ESP32 Striscia LED RGB IoT (WS2812B)
Comanda la luce della stanza dal telefono: scegli il colore, regola la luminosità, accendi l'effetto arcobaleno o respiro. Ecco la guida passo passo del modello IoT Striscia LED RGB dell'app, montato con un ESP32 e una striscia WS2812B da 30 LED con tre fili. Vai in Officina › Dispositivi › Aggiungi dispositivo e scegli Striscia LED RGB; Ohmi prepara il codice con la tua chiave del dispositivo. Il codice di questa pagina è un esempio: chiave e dati Wi-Fi sono segnaposto.

Controlla questo dispositivo dall'app
Collega il tuo ESP32 o Raspberry Pi Pico W al Wi-Fi, accendilo e spegnilo dal telefono e guarda le misure in diretta. Il codice lo prepara Ohmi; tu inserisci solo i dati del Wi-Fi e lo carichi.
Modello nell'app: Striscia LED RGB
- Dove si trova nell'app?Aggiungi un nuovo dispositivo dalla scheda Strumenti o da Officina › Dispositivi e scegli questo modello.
- Libreria ArduinoApri il Gestore librerie dell'Arduino IDE, cerca BlueGraysIoT e installala.
Il piano gratuito include 1 dispositivo, 1 grafico e 24 ore di cronologia. Con Premium hai più dispositivi, più grafici e una cronologia più lunga.
Schema circuito

Codice sorgente
1// ─────────────────────────────────────────
2// BlueGrays · bluegrays.com
3// ESP32 Striscia LED RGB IoT (WS2812B)
4// ─────────────────────────────────────────
5// Il modello IoT "Striscia LED RGB" dell'app BlueGrays: dal telefono cambi
6// luce, colore, luminosità ed effetto (fisso, arcobaleno, respiro,
7// lampeggio) di una striscia WS2812B da 30 LED. Ohmi prepara il codice
8// vero nell'app con la tua chiave del dispositivo (Officina › Dispositivi
9// › Aggiungi dispositivo); il codice qui è un esempio, chiave del
10// dispositivo e dati Wi-Fi sono segnaposto. Gestore librerie: BlueGraysIoT
11// (con le sue dipendenze) e Adafruit NeoPixel. La scheda si collega solo a
12// reti Wi-Fi a 2,4 GHz. Per 30 LED alla massima luminosità alimenta la
13// striscia con un alimentatore separato da 5 V 2 A e unisci le masse.
14//
15// Pin:
16// GPIO13 -> Striscia WS2812B DIN
17// 5V, GND -> Striscia 5V, GND
18// Pico W: striscia DIN GP2, 5V VBUS
19
20/*
21 * Striscia LED RGB · BlueGrays IoT
22 * BlueGrays · bluegrays.com
23 * Non condividere questo codice: contiene la chiave del dispositivo e la password del Wi-Fi.
24 */
25
26#include <BlueGraysIoT.h>
27#include <Adafruit_NeoPixel.h> // Gestore librerie: 'Adafruit NeoPixel'
28
29const char *DEVICE_KEY = "LA_TUA_CHIAVE_DISPOSITIVO";
30const char *WIFI_NAME = "LA_TUA_RETE_WIFI";
31const char *WIFI_PASSWORD = "LA_TUA_PASSWORD_WIFI";
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_EN);
54 bg.begin(WIFI_NAME, WIFI_PASSWORD);
55}
56
57void loop() {
58 bg.loop(); // evita qui delay() lunghi
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") { // si spegne e si riaccende lentamente
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") { // lampeggia ogni mezzo secondo
68 strip.setBrightness((millis() / 500) % 2 ? map(brightness, 0, 100, 0, 255) : 0);
69 strip.show(); delay(10);
70 }
71}
72FAQ
Posso caricare direttamente sulla scheda il codice di questa pagina?
Puoi, ma non si collegherà: la chiave del dispositivo e i dati Wi-Fi al suo interno sono segnaposto. Nell'app vai in Officina › Dispositivi › Aggiungi dispositivo e scegli Striscia LED RGB; Ohmi prepara il codice con la tua chiave, il nome della rete e la password. Copia quel codice e caricalo. Il codice completo lo trovi poi in Dispositivo › Codice e chiave.
Funziona anche con un Pico W?
Sì. Quando aggiungi il dispositivo scegli Pico W come scheda; il codice resta lo stesso, cambia solo il pin dei dati: il DIN della striscia va su GP2, il 5V su VBUS e GND su GND. Nell'Arduino IDE installa il pacchetto "pico" dal Gestore schede e Adafruit NeoPixel dal Gestore librerie. Il circuito e la foto di questa pagina sono stati fatti con un ESP32.
Posso alimentare la striscia dalla USB?
Per prove brevi sì, ma attenzione: ogni LED assorbe circa 60 mA sul bianco pieno, quindi 30 LED alla massima luminosità possono arrivare a 1,8 A. È più di quanto reggano la USB e la scheda. Per un uso lungo o una luminosità alta alimenta la striscia con un alimentatore separato da 5 V 2 A e collega il suo GND al GND della scheda. Il codice è per 30 LED; se la tua striscia è più lunga, cambia LED_COUNT e scegli l'alimentatore di conseguenza.
Che cosa posso cambiare nell'app?
La schermata del dispositivo ha quattro comandi: l'interruttore Luce accende e spegne la striscia, il selettore Colore colora tutti i LED allo stesso modo, il cursore Luminosità va da 0 a 100 e l'elenco Effetto offre Fisso, Arcobaleno, Respiro o Lampeggio. Dopo un'interruzione di corrente, colore, luminosità ed effetto tornano appena la scheda si ricollega.
