#374MittelIoT

ESP32 IoT-RGB-LED-Streifen (WS2812B)

Steuere das Licht in deinem Zimmer per Handy: Farbe wählen, Helligkeit einstellen, Regenbogen- oder Atmen-Effekt einschalten. Dies ist die Anleitung zur IoT-Vorlage RGB-LED-Streifen in der App, gebaut mit einem ESP32 und einem WS2812B-Streifen mit 30 LEDs. Geh zu Werkstatt › Geräte › Gerät hinzufügen und wähle RGB-LED-Streifen; Ohmi erstellt den Code mit deinem Geräteschlüssel. Der Code hier ist ein Beispiel: Schlüssel und WLAN-Daten sind Platzhalter.

0.0(0)
ESP32 IoT-RGB-LED-Streifen (WS2812B)
Du willst einen LED-Streifen hinter den Schreibtisch, unters Bett oder an ein Regal kleben und ihn per Handy steuern? Dann ist dieses Projekt genau richtig. Du wählst im Farbrad der App jede Farbe, stellst die Helligkeit mit einem Schieberegler ein und änderst die Stimmung mit Regenbogen, Atmen oder Blinken. Jede LED lässt sich einzeln setzen, deshalb fließen die Farben über den Streifen. Den Code erstellt die App, du verbindest nur drei Kabel und lädst ihn hoch. Keine Netzspannung, nur 5 V.
IoT · FernsteuerungDein erstes Gerät ist kostenlos

Steuere dieses Gerät mit der App

Verbinde deinen ESP32 oder Raspberry Pi Pico W mit dem WLAN, schalte ihn vom Handy aus ein und aus und sieh die Messwerte live. Den Code bereitet Ohmi vor; du gibst nur deine WLAN-Daten ein und lädst ihn hoch.

Vorlage in der App: RGB-LED-Streifen

  • Wo finde ich das in der App?Füge im Tab Werkzeuge oder unter Werkstatt › Geräte ein neues Gerät hinzu und wähle diese Vorlage.
  • Arduino-BibliothekÖffne in der Arduino IDE den Bibliotheksverwalter, suche nach BlueGraysIoT und installiere sie.
App kostenlos laden

Im kostenlosen Plan: 1 Gerät, 1 Diagramm und 24 Stunden Verlauf. Mit Premium mehr Geräte, mehr Diagramme und längerer Verlauf.

Schaltplan

ESP32 IoT-RGB-LED-Streifen (WS2812B) - Circuit

Quellcode

C++ (Arduino IDE)
1// ─────────────────────────────────────────
2//   BlueGrays · bluegrays.com
3//   ESP32 IoT-RGB-LED-Streifen (WS2812B)
4// ─────────────────────────────────────────
5// Die IoT-Vorlage "RGB-LED-Streifen" aus der BlueGrays-App: Licht, Farbe,
6// Helligkeit und Effekt (statisch, Regenbogen, Atmen, Blinken) eines
7// WS2812B-Streifens mit 30 LEDs änderst du per Handy. Den echten Code
8// erstellt Ohmi in der App mit deinem eigenen Geräteschlüssel (Werkstatt ›
9// Geräte › Gerät hinzufügen); der Code hier ist ein Beispiel,
10// Geräteschlüssel und WLAN-Daten sind Platzhalter. Bibliotheksverwaltung:
11// BlueGraysIoT (mit Abhängigkeiten) und Adafruit NeoPixel. Das Board
12// verbindet sich nur mit 2,4-GHz-WLANs. Für 30 LEDs bei voller Helligkeit
13// den Streifen über ein eigenes 5-V-2-A-Netzteil versorgen und die Massen
14// verbinden.
15//
16// Pins:
17//   GPIO13 -> WS2812B-Streifen DIN
18//   5V, GND -> Streifen 5V, GND
19//   Pico W: Streifen DIN GP2, 5V VBUS
20
21/*
22 * RGB-LED-Streifen · BlueGrays IoT
23 * BlueGrays · bluegrays.com
24 * Teile diesen Code nicht: Er enthält deinen Geräteschlüssel und dein WLAN-Passwort.
25 */
26
27#include <BlueGraysIoT.h>
28#include <Adafruit_NeoPixel.h>  // Bibliotheksverwalter: 'Adafruit NeoPixel'
29
30const char *DEVICE_KEY = "DEIN_GERAETESCHLUESSEL";
31const char *WIFI_NAME = "DEIN_WLAN_NAME";
32const char *WIFI_PASSWORD = "DEIN_WLAN_PASSWORT";
33
34BlueGraysIoT bg(DEVICE_KEY);
35
36const int LED_COUNT = 30;
37Adafruit_NeoPixel strip(LED_COUNT, 13, NEO_GRB + NEO_KHZ800);
38bool isOn = false; uint8_t cr = 255, cg = 255, cb = 255; int brightness = 70; String effect = "sabit";
39void paint() {
40  strip.setBrightness(isOn ? map(brightness, 0, 100, 0, 255) : 0);
41  for (int i = 0; i < LED_COUNT; i++) strip.setPixelColor(i, strip.Color(cr, cg, cb));
42  strip.show();
43}
44
45void setup() {
46  Serial.begin(115200);
47  strip.begin();
48  paint();
49  bg.onSwitch("acik", [](bool on) { isOn = on; paint(); });
50  bg.onColor("renk", [](uint8_t r, uint8_t g, uint8_t b) { cr = r; cg = g; cb = b; paint(); });
51  bg.onNumber("parlaklik", [](float v) { brightness = (int)v; paint(); });
52  bg.onChoice("efekt", [](const char *e) { effect = e; paint(); });
53  bg.setDebug(Serial);
54  bg.setLanguage(BG_LANG_EN);
55  bg.begin(WIFI_NAME, WIFI_PASSWORD);
56}
57
58void loop() {
59  bg.loop();  // hier keine langen delay()-Aufrufe
60  if (isOn && effect == "gokkusagi") {
61    static uint16_t hue = 0; hue += 64;
62    for (int i = 0; i < LED_COUNT; i++) strip.setPixelColor(i, strip.gamma32(strip.ColorHSV(hue + i * 2000)));
63    strip.show(); delay(5);
64  } else if (isOn && effect == "nefes") {  // wird langsam dunkler und heller
65    float wave = (sin(millis() / 600.0) + 1.0) / 2.0;
66    strip.setBrightness((uint8_t)(map(brightness, 0, 100, 0, 255) * (0.15 + 0.85 * wave)));
67    strip.show(); delay(10);
68  } else if (isOn && effect == "yanip_sonme") {  // blinkt alle halbe Sekunde
69    strip.setBrightness((millis() / 500) % 2 ? map(brightness, 0, 100, 0, 255) : 0);
70    strip.show(); delay(10);
71  }
72}
73

FAQ

Kann ich den Code von dieser Seite direkt hochladen?

Hochladen kannst du ihn, verbinden wird er sich aber nicht: Geräteschlüssel und WLAN-Daten darin sind Platzhalter. Geh in der App zu Werkstatt › Geräte › Gerät hinzufügen und wähle RGB-LED-Streifen; Ohmi erstellt den Code mit deinem Schlüssel, deinem Netzwerknamen und deinem Passwort. Kopier diesen Code und lade ihn hoch. Den ganzen Code siehst du später unter Gerät › Code und Schlüssel.

Geht das auch mit einem Pico W?

Ja. Wähl beim Hinzufügen des Geräts Pico W als Board; der Code bleibt gleich, nur der Daten-Pin ändert sich: DIN des Streifens an GP2, 5V an VBUS, GND an GND. Installiere in der Arduino IDE das Paket "pico" über den Boardverwalter und Adafruit NeoPixel über die Bibliotheksverwaltung. Schaltung und Foto auf dieser Seite sind mit einem ESP32 entstanden.

Kann ich den Streifen über USB versorgen?

Für kurze Tests ja, aber Vorsicht: Jede LED zieht bei vollem Weiß etwa 60 mA, 30 LEDs bei voller Helligkeit also bis zu 1,8 A. Das ist mehr, als USB und das Board vertragen. Für längeren Betrieb oder hohe Helligkeit versorg den Streifen über ein eigenes 5-V-2-A-Netzteil und verbinde dessen GND mit dem GND des Boards. Der Code ist für 30 LEDs; ist dein Streifen länger, ändere LED_COUNT und wähl das Netzteil passend.

Was kann ich in der App ändern?

Auf dem Geräte-Bildschirm gibt es vier Regler: Der Schalter Licht schaltet den Streifen ein und aus, die Farbauswahl färbt alle LEDs gleich, der Regler Helligkeit geht von 0 bis 100, und die Liste Effekt bietet Statisch, Regenbogen, Atmen oder Blinken. Nach einem Stromausfall kommen Farbe, Helligkeit und Effekt zurück, sobald das Board wieder verbunden ist.