#374MenengahIoT

LED Strip RGB IoT ESP32 (WS2812B)

Kendalikan cahaya kamarmu dari ponsel: pilih warna, atur kecerahan, nyalakan efek pelangi atau napas. Proyek ini adalah panduan langkah demi langkah untuk template IoT LED strip RGB di aplikasi, dibuat dengan ESP32 dan strip WS2812B 30 LED memakai tiga kabel. Buka Labku › Perangkat › Tambah perangkat dan pilih LED strip RGB; Ohmi menyiapkan kodenya dengan kunci perangkatmu sendiri. Kode di halaman ini adalah contoh: kunci dan detail Wi-Fi-nya hanya pengisi tempat.

0.0(0)
LED Strip RGB IoT ESP32 (WS2812B)
Jika kamu ingin menempelkan LED strip di belakang meja, di bawah tempat tidur, atau di sepanjang rak dan mengendalikannya dari ponsel, proyek ini untukmu. Kamu memilih warna apa pun dari roda warna di aplikasi, mengatur kecerahan dengan slider, dan mengubah suasana ruangan dengan efek pelangi, napas, atau berkedip. Setiap LED bisa diatur sendiri-sendiri, jadi warnanya mengalir di sepanjang strip. Aplikasi menyiapkan kodenya untukmu; kamu cukup menyambungkan tiga kabel dan meng-upload-nya. Tanpa listrik jala-jala, hanya 5 V.
IoT · kendali jarak jauhPerangkat pertamamu gratis

Kendalikan perangkat ini dari aplikasi

Sambungkan ESP32 atau Raspberry Pi Pico W ke Wi-Fi, nyalakan dan matikan dari ponsel, lalu pantau pembacaan secara langsung. Kodenya disiapkan Ohmi; kamu cukup mengisi data Wi-Fi lalu mengunggahnya.

Template di aplikasi: LED strip RGB

  • Di mana letaknya di aplikasi?Tambahkan perangkat baru dari tab Alat atau Labku › Perangkat, lalu pilih template ini.
  • Library ArduinoBuka Library Manager di Arduino IDE, cari BlueGraysIoT, lalu instal.
Unduh aplikasi gratis

Paket gratis berisi 1 perangkat, 1 grafik, dan riwayat 24 jam. Dengan Premium, kamu dapat lebih banyak perangkat, grafik, dan riwayat lebih panjang.

Skema rangkaian

LED Strip RGB IoT ESP32 (WS2812B) - Circuit

Kode sumber

C++ (Arduino IDE)
1// ─────────────────────────────────────────
2//   BlueGrays · bluegrays.com
3//   LED Strip RGB IoT ESP32 (WS2812B)
4// ─────────────────────────────────────────
5// Template IoT "LED strip RGB" dari aplikasi BlueGrays: atur nyala/mati,
6// warna, kecerahan dan efek (diam, pelangi, napas, berkedip) LED strip
7// WS2812B 30 LED dari ponselmu. Ohmi menyiapkan kode aslinya di aplikasi
8// dengan kunci perangkatmu sendiri (Labku › Perangkatku › Tambah
9// perangkat); kode di sini hanya contoh, kunci perangkat dan detail Wi-Fi
10// adalah placeholder. Library Manager: BlueGraysIoT (beserta
11// dependensinya) dan Adafruit NeoPixel. Board hanya bisa tersambung ke
12// jaringan Wi-Fi 2.4 GHz. Untuk 30 LED dengan kecerahan penuh, beri daya
13// strip dari adaptor 5 V 2 A terpisah dan satukan ground-nya.
14//
15// Pin:
16//   GPIO13 -> DIN LED strip WS2812B
17//   5V, GND -> 5V, GND strip
18//   Pico W: DIN strip GP2, 5V VBUS
19
20/*
21 * LED strip RGB · BlueGrays IoT
22 * BlueGrays · bluegrays.com
23 * Jangan bagikan kode ini: berisi kunci perangkat dan kata sandi Wi-Fi-mu.
24 */
25
26#include <BlueGraysIoT.h>
27#include <Adafruit_NeoPixel.h>  // Library Manager: 'Adafruit NeoPixel'
28
29const char *DEVICE_KEY = "YOUR_DEVICE_KEY";
30const char *WIFI_NAME = "YOUR_WIFI_NAME";
31const char *WIFI_PASSWORD = "YOUR_WIFI_PASSWORD";
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();  // hindari pemanggilan delay() yang lama di sini
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") {  // meredup perlahan lalu menyala lagi
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") {  // berkedip tiap setengah detik
68    strip.setBrightness((millis() / 500) % 2 ? map(brightness, 0, 100, 0, 255) : 0);
69    strip.show(); delay(10);
70  }
71}
72

FAQ

Bisakah aku langsung meng-upload kode di halaman ini ke board-ku?

Bisa, tetapi tidak akan tersambung: kunci perangkat dan detail Wi-Fi di dalamnya hanya pengisi tempat. Di aplikasi, buka Labku › Perangkat › Tambah perangkat dan pilih LED strip RGB; Ohmi menyiapkan kodenya dengan kuncimu, nama jaringan, dan kata sandi. Salin kode itu lalu upload. Kamu bisa melihat kode lengkapnya nanti di Perangkat › Kode dan kunci.

Apakah ini bekerja dengan Pico W?

Ya. Pilih Pico W sebagai board ketika menambahkan perangkat; kodenya tetap sama dan hanya pin datanya yang berubah: DIN strip ke GP2, 5V ke VBUS, dan GND ke GND. Di Arduino IDE, instal paket "pico" dari Boards Manager dan Adafruit NeoPixel dari Library Manager. Rangkaian dan foto di halaman ini dibuat dengan ESP32.

Bisakah aku memberi daya strip dari USB?

Untuk uji singkat bisa, tetapi berhati-hatilah: setiap LED menarik sekitar 60 mA pada putih penuh, jadi 30 LED dengan kecerahan penuh bisa mencapai 1,8 A. Itu lebih dari yang sanggup dialirkan USB dan board. Untuk pemakaian lama atau kecerahan tinggi, beri daya strip dari adaptor 5 V 2 A terpisah dan sambungkan GND adaptor ke GND board. Kodenya untuk 30 LED; jika strip-mu lebih panjang, ubah LED_COUNT dan pilih adaptor yang sesuai.

Apa saja yang bisa aku ubah di aplikasi?

Layar perangkat punya empat kendali: sakelar Lampu menyalakan dan mematikan strip, pemilih Warna mewarnai semua LED dengan satu warna, slider Kecerahan dari 0 sampai 100, dan daftar Efek menawarkan Diam, Pelangi, Napas, atau Berkedip. Setelah listrik padam, warna, kecerahan, dan efek terakhirmu kembali begitu board tersambung lagi.