Ezali na ntina te, kasi nakoki kopesa yo libongoli na lingala (ln) ya maloba oyo: **Libongoli na lingala:** "ESP32 Malakisi 31/55 - Projɛ́ LED Strip na Koboya Bopekisi | SunFounder ya ESP32 IoT Malakisi Kit" **Nsango ya maloba:** - "Tutorial" → "Mala
Na boyekoli oyo, tokosala projɛ́ na mikɔlɔtɔ ya ESP32 mpe nzete ya LED ya WS2812 oyo ekoki kobongola nzela na yango kolandana na boyambi ya obstacle. Ntango nzete ya LED ezali kokende liboso, ekobimisa balangi ya bokeseni, mpe ntango emoni obstacle, ekobongola na langi oyo ekatama liboso mpe ekobongola nzela. Projɛ́ oyo emoniseli makoki ya ESP32 esangani na senseur ya kopɛngola obstacle ya infrarouge.
Na boyekoli oyo mobimba, tokofungola ba composants ya hardware oyo esengeli, mitindo ya câblage, mpe code oyo esengeli mpo na kosala projɛ́ oyo. Mpo na ndimbola ya komona mingi, tala vidéo oyo ezali na lien na nse (na vidéo na 00:00).
Hardware Explication
Projɛ́ oyo esengeli ba composants ebele, kosangisa mikɔlɔtɔ ya ESP32, nzete ya LED ya WS2812, mpe senseur ya kopɛngola obstacle ya infrarouge. ESP32 ezali mikɔlɔtɔ ya makasi oyo ezali na Wi-Fi mpe Bluetooth ya kati, oyo esalaka ete ezala malamu mpo na ba applications ya IoT. Nzete ya LED ya WS2812 ezali nzete ya LED ya RGB oyo ekoki koprogramama, oyo epesaka makoki ya ko contrôler chaque LED na ndenge na yango, mpo na kosala ba effets ya bongengi ya dynamique.
Senseur ya kopɛngola obstacle ya infrarouge esalaka na kobimisa pole ya infrarouge mpe koyamba réflexion ya ba objets oyo ezali pembeni. Ntango obstacle emonani, senseur ebongolaka état ya sortie na yango, mpo na kopesa ESP32 nzela ya koyanola na ndenge esengeli na kobongola comportement ya nzete ya LED.
Détails ya Datasheet
| Fabricant | WS2812B |
|---|---|
| Numéro ya partie | WS2812B |
| Tension ya logique/IO | 3.3 V (typ.) |
| Tension ya alimentation | 5 V (typ.) |
| Courant ya sortie (na canal) | 20 mA (max) |
| Courant ya pointe (na canal) | 60 mA (max) |
| Guidance ya fréquence PWM | 400 Hz (typ.) |
| Seuils ya logique ya entrée | 0.3 Vcc (élevé), 0.1 Vcc (faible) |
| Chute ya tension / RDS(on) / saturation | 1.2 V (max) |
| Limites thermiques | 85 °C (max) |
| Paquet | Montage en surface |
| Notes / variantes | Ezali na ba longueurs mpe ba densités ndenge na ndenge |
- Kokamba ete nzete ya LED ezala na 5 V mpo na performance ya malamu.
- Salela résistance oyo ebongi mpo na pin ya données mpo na kopɛngola ba problèmes ya intégrité ya signal.
- Keba na limites ya courant ya sortie mpo na kopɛngola échauffement.
- Découple proprement alimentation mpo na kopɛngola ba pointes ya tension.
- Régler senseur ya infrarouge na likebi mpo na kozwa portée ya détection oyo elingami.
Mitindo ya Câblage

Mpo na kobongisa ba composants, banda na senseur ya kopɛngola obstacle ya infrarouge. Kanga pin ya sortie ya senseur na pin 25 na ESP32. Pin ya kati esengeli kokangama na terre, mpe pin ya suka (VCC) esengeli kokangama na source ya puissance ya 3.3 V.
Na sima, mpo na nzete ya LED ya WS2812, kanga pin ya données (mbala mingi nsinga ya jaune) na pin 14 na ESP32. Nsinga ya motane esengeli kokangama na source ya puissance ya 5 V, mpe nsinga ya moindo esengeli kokangama na terre. Keba ete ba connexions nyonso ekangama malamu mpo na kopɛngola ba nsinga oyo ezali kofungwama.
Ba Exemples ya Code & Explication
Tala awa ndimbola ya mokuse ya code oyo esalaka projɛ́ oyo. Liboso, tozali kopesa définition ya nombre ya pixels na nzete ya LED mpe pin ya données oyo esalelami mpo na communication:
#define NUM_PIXELS 8
#define DATA_PIN 14
Na fonction setup(), tozali ko initialiser nzete ya LED mpe senseur ya infrarouge:
void setup() {
pixels.begin();
pinMode(AVOID_PIN, INPUT_PULLUP);
uint32_t color = pixels.Color(random(256), random(256), random(256));
pixels.fill(color);
pixels.show();
}
Na fonction loop(), tozali kotala soki obstacle emonani mpe ko contrôler nzete ya LED na ndenge yango:
if (avoid_value) {
for (int i = 0; i < NUM_PIXELS; i++) {
pixels.setPixelColor(i, color);
pixels.show();
pixels.setPixelColor(i, 0);
delay(100);
}
} else {
for (int i = NUM_PIXELS - 1; i >= 0; i--) {
pixels.setPixelColor(i, color);
pixels.show();
pixels.setPixelColor(i, 0);
delay(100);
}
}
Code oyo epesaka nzete ya LED nzela ya kobimisa balangi ya bokeseni ntango ezali kokende liboso mpe kobongola nzela ntango obstacle emonani. Code mobimba ezali na nse ya article, yango wana tala yango mpo na ba détails nyonso.
Démonstration / Nini Okomona
Ntango installation esili mpe code euploadé, nzete ya LED esengeli kobanda kobimisa balangi ya bokeseni ntango ezali kokende liboso. Ntango obstacle emonani, nzete ekobongola na langi oyo ekatama liboso (lokola vert) mpe ekobongola nzela. Soki obstacle elongoli, nzete ekozonga na kokende liboso na balangi ya bokeseni. Keba ete portée ya détection ya senseur ya infrarouge ekoki kobongwana kolandana na alimentation oyo esalelami (na vidéo na 10:30).
Ba Timestamps ya Vidéo
- 00:00 Ebandeli
- 2:14 Boyebi ya projɛ
- 4:58 Ndimbola ya bobongisi ya singa
- 7:41 Kobongola Sensor ya Kopekola Bopekami
- 10:03 Ndimbola ya kode ya Arduino
- 15:40 Kopona carte ya ESP32 mpe COM port na Arduino IDE
- 17:22 Projɛ 1: Emoniseli
- 18:17 Kobongola langi ya kozongisa
#include <Adafruit_NeoPixel.h>
// Set the number of pixels for the running light
#define NUM_PIXELS 8
// Set the data pin for the RGB LED strip
#define DATA_PIN 14
// Initialize the RGB LED strip object
Adafruit_NeoPixel pixels(NUM_PIXELS, DATA_PIN, NEO_GRB + NEO_KHZ800);
// Initialize the avoid sensor
#define AVOID_PIN 25
void setup() {
// Initialize the RGB LED strip
pixels.begin();
// Initialize the avoid sensor
pinMode(AVOID_PIN, INPUT_PULLUP);
// Set the initial LED color
uint32_t color = pixels.Color(random(256), random(256), random(256));
pixels.fill(color);
pixels.show();
}
void loop() {
// Read the input from the infrared sensor
bool avoid_value = digitalRead(AVOID_PIN);
// Generate a random color for the current pixel
uint32_t color = pixels.Color(random(256), random(256), random(256));
// If no obstacle is detected
if (avoid_value) {
for (int i = 0; i < NUM_PIXELS; i++) {
// Turn on the current pixel with the random color
pixels.setPixelColor(i, color);
// Update the RGB LED strip display
pixels.show();
// Turn off the current pixel
pixels.setPixelColor(i, 0);
delay(100);
}
}
// If detects an obstacle, change the direction of the LED strip
else {
for (int i = NUM_PIXELS - 1; i >= 0; i--) {
pixels.setPixelColor(i, color);
pixels.show();
pixels.setPixelColor(i, 0);
delay(100);
}
}
}
Common Course Links
Common Course Files
Mokili na bisika
-
DokumentasiESP32 Tutorial 31/55- SunFounder doc page for flowing lightdocs.sunfounder.com
Fichiers📁
Aucun fichier disponible.