martes, 6 de noviembre de 2018

Wemos D1 wifi - arduino

Arduino Wifi D1

Pasos a realizar para que arduino d1 lo reconozca en el computador:

1. Instalar el software de arduino
2. En Gestor de librerias instalar la que Arduino uno wifi dev Ed Library, con esto el pc reconoce el arduino en el administrador de dispositivos y lo instala en su puerto libre con el nombre de:

USB - Serial CH340

3. Instalar driver CH-341 ser
https://drive.google.com/file/d/1GXze6hSuZxkdogoQlpPmoLylfS25XUbC/view?usp=sharing

4. Ir a arduino y en archivo y luego en preferencias escribir la siguiente direccion
 http://arduino.esp8266.com/stable/package_esp8266com_index.json

5. En arduino y luego en Gestion de Tarjetas, buscar esp8266 y luego instalar.
Wemos D1 R1 es el programador




Para iniciar con alguna aplicación de lectura de un sensor de humedad se debe

1. Descargar el codigo del siguiente link 
2. Registrarse en la pagina https://thingspeak.com/users/sign_up
3. En la pagina se dirige a channel
    - Crear nuevo channer
    - Ingresa los primeros datos y guarda el channel hasta que tenga el id, ejemplo
       Channel ID 593314
   - Luego clic en apikeys y obtiene el codigo
            Codigo de Leer :  G8PMEHI2WR6U21IS
            Codigo de Escribir : QV9FLAWP16UZBOA2   --- Este es el  que se utiliza

   -














Wemos D1 R1 - Programas




Primer Programa de prender un LED

int ledPin = D9;    

void setup() {
  pinMode(ledPin, OUTPUT);     
}
void loop() {
  digitalWrite(ledPin, HIGH);   
  delay(100);                      
  digitalWrite(ledPin, LOW);  
  delay(100);                      
}

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Programa de prender LED por red LAN
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

#include <ESP8266WiFi.h>

const char* ssid = "nombrewifi";
const char* password = "******";

WiFiServer server(80);

void setup(){
  Serial.begin(9600);
  delay(10);

  pinMode(D9,OUTPUT);
  digitalWrite(D9,LOW);

  Serial.println();
  Serial.println();
  Serial.print("conectandose a red:");
  Serial.println(ssid);

  WiFi.begin(ssid, password); // conexion a la red

  while (WiFi.status() !=WL_CONNECTED)
  {
    delay(500);
    Serial.print(".");
  }
  Serial.println();
  Serial.println("Wifi conectao");

  server.begin(); //iniciamos el servidor
  Serial.println("srvidor iniciado");

  Serial.println("ingrese desde un navegador web usando la sgte IP:");
  Serial.println(WiFi.localIP());//obtenemos ip
}

void loop(){
  WiFiClient client = server.available();
  if (client) // si hay un cliente presente

  {
    Serial.println("nuevo cliente");
    //esperamos hasta que hayan datos disponibles
    while(!client.available()&&client.connected())
    {
      delay(1);
    }
    // leemos la primera linea de la peticion del cliente
    String linea1 = client.readStringUntil ('r');
    Serial.println(linea1);

    if (linea1.indexOf("LED=ON")>0) // Buscamos un LED =ON en la 1 linea
    {
      digitalWrite(D9,HIGH);
    }
    if (linea1.indexOf("LED=OFF")>0) // Buscamos un LED =OFF en la 1 linea
    {
      digitalWrite(D9,LOW);
    }

    client.flush();

    Serial.println("Enviando respuesta..");
    //Encabezado http
    client.println("HTTP/1.1 200 OK");
    client.println("Content-Type: text/html");
    client.println("connection:close");//la conexion se cierra despues de finalizar
    client.println();
    //pagina html para el navegador
    client.println("<!DOCTYPE  HTML>");
    client.println("<html>");
    client.println("<head><title>Miguel Antonio</title></head>");
    client.println("<body>");
    client.println("<h1 align='center'>Test ESP8266</h1>");
    client.println("<h1 style='text-align:center;'>");
    client.println("<br />");
    client.println("<button onClick=location.href='./?LED=ON'>LED ON</button>");
    client.println("<button onClick=location.href='./?LED=OFF'>LED OFF</button>");
    client.println("<br />");
    client.println("</div>");
    client.println("</body>");
    client.println("</html>");

    delay(1);
    Serial.println("respuesta enviada");
    Serial.println();
  }
}


Luego de cargar el programa en el wemos, debemos presionar reset, revisar el monitor serial y cuando sepamos la ip.

Entrar a la pagina de internet escribir la ip, apareceran los botones que activan o desactivan el led.




//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Programa Variar la Frecuencia  de Parpadero de un LED con potenciometro

int potPin = 0;   // Pin de entrada para el potenciómetro 
int ledPin = 13;   // Pin de salida para el LED
void setup() { 
   pinMode(ledPin, OUTPUT);  // Declara el pin del LED como de salida
} 
void loop() { 
   digitalWrite(ledPin, HIGH); // Enciende el LED 
   delay(analogRead(potPin));  // Lee el valor del potenciómetro 
   digitalWrite(ledPin, LOW);  // Apaga el LED 
   delay(analogRead(potPin));   
} 
 

Verificar