#374IntermedioIoT

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.

0.0(0)
ESP32 Striscia LED RGB IoT (WS2812B)
Se vuoi attaccare una striscia LED dietro la scrivania, sotto il letto o lungo una mensola e comandarla dal telefono, questo progetto fa per te. Scegli qualsiasi colore dalla ruota dei colori dell'app, regoli la luminosità con un cursore e cambi l'atmosfera con l'effetto arcobaleno, respiro o lampeggio. Ogni LED si comanda da solo, così i colori scorrono lungo la striscia. L'app prepara il codice per te; tu colleghi solo tre fili e lo carichi. Niente corrente di casa, solo 5 V.
IoT · controllo a distanzaIl primo dispositivo è gratis

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.
Scarica l'app gratis

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

ESP32 Striscia LED RGB IoT (WS2812B) - Circuit

Codice sorgente

C++ (Arduino IDE)
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}
72

FAQ

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.