Web Sacosta
Ejercicio_3_colores_random_pixel_pixel
Video ejemplo
Código
//sacosta.org
//Ejercicio_3 app inventor
//Hace un random de colores pixel a pixel y llena la tira
//Conexiones LCD: SCL a D1, SDA a D2, VCC a VV, GND a G
//En la pantalla LCD durante el setup aparece la red a la que conectarse y la app que lo hace funcionar
//orden colores RGB Red Green Blue
//las variables de esta programación permiten fijar los margenes de los colores y brillo
#include <Adafruit_NeoPixel.h>
#define NeoPIN D6
#define NUMPIXELS 30
int brightness;
int min_brightness=40; //limite inferior de brillo
int max_brightness=80;//limite máximo, podría llegar a 255
int min_color=0; //limite inferior de color
int max_color=100;//limite superior de color, el máximo puede llegar a 255
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, NeoPIN, NEO_GRB + NEO_KHZ800);
#include <ESP8266WiFi.h>
const char *ssid = "XXXXXXXXXXX"; //red wifi
const char *password = "XXXXXXXXXXXX";// password
const char *app="ejercicio_3";
WiFiServer server(80);
int redColor = 0;
int greenColor = 0;
int blueColor = 0;
int delayval = 1000;
int delayp_p=100; //delay entre pixels
// LCD
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
void setup() {
Serial.begin(115200);
lcd.init();
lcd.backlight();
delay(10);
delay(10);
pixels.begin();
delay(50);
Serial.println("NeoPixel started");
// Conecta a la red wifi.
Serial.println();
Serial.println();
Serial.print("Conectado con ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("Conectado por WiFi.");
// Inici del Servidor web.
server.begin();
Serial.println("Servidor web iniciado");
// Esta es la IP
Serial.print("Esta es la IP : ");
Serial.print("http://");
Serial.print(WiFi.localIP());
Serial.println("/");
for (int i=0; i<3;i++){
lcd.clear(); // Borra contenido pantalla
lcd.setCursor(0,0); // Inicio del cursor
lcd.print(ssid); //muestra nombre de la red
lcd.setCursor(0,1); // Inicio del cursor
lcd.print(WiFi.localIP());//muestra ip
delay(5000);
lcd.clear(); // Borra contenido pantalla
lcd.setCursor(0,0); // Inicio del cursor
lcd.print("App inventor");
lcd.setCursor(0,1); // Inicio del cursor
lcd.print(app);//muestra el nombre de la app correspondiente
delay(5000);
}
lcd.clear(); // Borra contenido pantalla
lcd.setCursor(0,0); // Inicio del cursor
lcd.print(WiFi.localIP());
lcd.setCursor(0,1); // Inicio del cursor
lcd.print(app);
}
void loop() {
// Consulta si se ha conectado algun cliente.
WiFiClient client = server.available();
if (!client) {
return;
}
// Espera hasta que el cliente envie datos.
Serial.println("Nuevo cliente.");
while(!client.available()){
delay(1);
}
/////////////////////////////////////////////////////
//Lee la programació enviada al cliente.
String req = client.readStringUntil('\r');
Serial.println(req);
client.flush();
// Consulta la petición del cliente.
String val;
if (req.indexOf("/dato=1") != -1)
{
for (int i=0; i < NUMPIXELS; i++) {
pixels.setPixelColor(i, pixels.Color(0, 0, 0));
pixels.show();
}
setColor();
pixels.setBrightness(brightness);
lcd.clear(); // borra pantalla
lcd.setCursor(0,0); // Inicio del cursor
lcd.print("RGB y brillo");
lcd.setCursor(0,1); // Inicio del cursor
lcd.print("Random cada pixels);
for (int i=0; i < NUMPIXELS; i++) {
// pixels.Color takes RGB values, from 0,0,0 up to 255,255,255
pixels.setPixelColor(i, pixels.Color(redColor, greenColor, blueColor));
// This sends the updated pixel color to the hardware.
pixels.show();
setColor();
// Delay for a period of time (in milliseconds).
delay(delayp_p);
}
delay(delayval);
}
else if (req.indexOf("/dato=2") != -1)
{
lcd.clear(); // borra pantalla
lcd.setCursor(0,0); // Inicio del cursor
lcd.print("R= 0");
lcd.setCursor(5,1); // Inicio del cursor
lcd.print("G= 0");
lcd.setCursor(10,0); // Inicio del cursor
lcd.print("B= 0");
for(int i=0; i < NUMPIXELS; i++) {
pixels.setPixelColor(i, pixels.Color(0,0,0) );
}
// init
pixels.show();//
}
else {
Serial.println("Error.");
client.stop();
return;
}
Serial.println(val);
delay(10);
//////////////////////////////////////////////
// Página WEB. ////////////////////////////
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println(""); // Comillas importantes.
client.println(val);
Serial.println("Cliente desconectado.");
}
void setColor(){
redColor = random(min_color, max_color);
greenColor = random(min_color, max_color);
blueColor = random(min_color, max_color);
brightness = random(min_brightness, max_brightness);
}
Obra publicada con Licencia Creative Commons Reconocimiento Compartir igual 4.0