RGB WS2812 serial ESP8266 WeMos

Puoi realizzare il RGB WS2812 serial ESP8266 Wemos cambiando semplicemente il micro controllore.

RGB WS2812 serial ESP8266 Wemos RGB Neopixel serial ws2812 wemos

Hai letto sul precedente articolo dedicato al controllo RGB WS2812 serial come realizzare il progetto con l’arduino uno ed una striscia neopixel.

Ho deciso di riproporre questo esempio per mostrarti cosa cambiare per ottenere lo stesso effetto con un altra scheda e sottolineare il lavoro eseguito dagli sviluppatori dell’IDE Arduino per rendere totalmente compatibile il codice scritto su una board originale arduino anche con altri sistemi.

RGB WS2812 serial ESP8266 Wemos

Inizia dallo schema dei collegamenti che differiscono dall’Arduino Uno:

RGB Neopixel serial ws2812 wemos vert

sia per comodità pratica sia per non dover eseguire modifiche allo sketch utilizzi il pin D4 della wemos per come signale del ws2812B neopixel.

Ho utilizzato un connettore JST PH 2.0mm saldato direttamente sulla striscia neopixel da usare per collegare il RGB WS2812 serial ESP8266 Wemos.

Rispetta la polarità della striscia led ricordando che il segnale, ossia il pin da cui arrivano i comandi ai led, è il pin centrale ( cavo giallo ).

Un ultima precisazione è relativa al pin D4 che nello sketch leggerai essere il pin 2, come per l’arduino uno.

Il motivo è legato al pinout della wemos che ho pubblicato in un precedente articolo e che ti riporto:

wemos d1 mini pinpout

In cui leggi che il pin D4 è mappato come pin 2 ( quadratino verde sulla linea del D4 ) perchè connesso al GPIO2.

Lo sketch RGB WS2812 serial ESP8266 Wemos

lo sketch del progetto RGB WS2812 serial ESP8266 Wemos è praticamente identico a quello che hai usato per l’arduino uno.

#include <Adafruit_NeoPixel.h>

#define PIN            2
#define NUMPIXELS      27

byte rgb[3]    = {127,127,127};
byte oldrgb[3] = {127,127,127};

String inputString  = "";
bool stringComplete = false;

Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

void setup() {
  Serial.begin(115200);

  pixels.begin();
  for(int i=0;i<NUMPIXELS;i++){
    pixels.setPixelColor(i, pixels.Color(255,255,255));
    pixels.show();
    delay(5);
  }
  for(int i=0;i<NUMPIXELS;i++){
    pixels.setPixelColor(i, pixels.Color(0,0,0));
    pixels.show();
    delay(10);
  }
}
 
void loop() {

  while (Serial.available()) {
    // get the new byte:
    char inChar = (char)Serial.read();
    inputString += inChar;
    if (inChar == '\n') {
      stringComplete = true;
      Serial.println(inputString);
    }
  }
  
  if (stringComplete) {
    inputString = getRGB( inputString," ",0 );
    inputString = getRGB( inputString," ",1 );
    inputString = getRGB( inputString," ",2 ); 

    inputString = "";
    stringComplete = false;
  }
  
  if ( (rgb[0] != oldrgb[0]) || (rgb[1] != oldrgb[1]) || (rgb[2] != oldrgb[2]) ) {
    oldrgb[0] = rgb[0];
    oldrgb[1] = rgb[1];
    oldrgb[2] = rgb[2];

    for(int i=0;i<NUMPIXELS;i++){
      pixels.setPixelColor(i, pixels.Color(rgb[0],rgb[1],rgb[2]));
      pixels.show();
      delay(20);
    }
  }
}

String getRGB( String input, String sep, byte rgbIndex ) { 
   byte i = input.indexOf(sep);
   if ( i > 0 ) {
       rgb[rgbIndex] = input.substring(0,i).toInt();
       return input.substring(i+1);
    }
}

in questo modo la descrizione dello sketch puoi leggerla qui.

Il video RGB WS2812 serial

anche per il progetto RGB WS2812 serial ESP8266 Wemos come per il precedente il video demo è il seguente:

in cui è indifferente se utilizzi il micro controllore Arduino Uno o l’ESP8266 in form factor wemos.

Repository del progetto

Ricorda che trovi il software, di cui hai letto in questa serie di articoli, sul mio gitHub.

  • Questo sito ed i suoi contenuti è fornito "così com'è" e Mauro Alfieri non rilascia alcuna dichiarazione o garanzia di alcun tipo, esplicita o implicita, riguardo alla completezza, accuratezza, affidabilità, idoneità o disponibilità del sito o delle informazioni, prodotti, servizi o grafiche correlate contenute sul sito per qualsiasi scopo.
  • Ti chiedo di leggere e rispettare il regolamento del sito prima di utilizzarlo
  • Ti chiedo di leggere i Termini e Condizioni d'uso del sito prima di utilizzarlo
  • In qualità di Affiliato Amazon io ricevo un guadagno dagli acquisti idonei qualora siano presenti link al suddetto sito.

Permalink link a questo articolo: https://www.mauroalfieri.it/elettronica/rgb-ws2812-serial-esp8266-wemos.html

2 commenti

    • giorgi il 24 Agosto 2021 alle 01:18
    • Rispondi

    Hey

    I have a problem with your code that I am using WI FI does not connect

    A reset is required and after a while still cannot connect

    Could you help me

    P.S.
    When I download the espalex template, the connection is established on the first try.

    1. Hi Giorgi,
      this sketch use the serial comunication, is it with this connection that you have problems?

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.