jueves, 7 de septiembre de 2017

Tutorial: Aprender a usar Wemos D1 Mini (Arduino+Wifi)


Bienvenido a un nuevo tutorial de Lunegate, hoy vamos a prender a usar un Arduino equipado con un modulo Wifi. El Wemos D1 Mini v2.3. Este pequeño controlador, nos ahorrará mucho trabajo y tiempo.

INTRODUCCIÓN

El Wemos D1 mini usa la arquitectura de Arduino, pero cuenta con menos pines de los normal. Aun así es muy barato, versátil y cuenta con una gran cantidad de shields, que nos harán no tener que volvernos locos haciendo circuitos en protoboard, sino simplemente pinchando uno encima de otro.

Un punto a remarcar, es que os recomiendo compraros la versión 2.3, ya que primeramente compre la v1.0.0 y me ha traído bastantes dolores de cabeza.

Las dimensiones son 13cm x 11cm x 1cm y un peso de 22 g. El precio es de 2,98€ más gastos de envió 4,37€.

Para este tutorial, se requerirá
Dificultad:

           Tiempo:  10 minutos (montarlo y programarlo)


MATERIAL NECESARIO

A continuación os describo el material necesario para realizar el tutorial y donde conseguirlo:

Imagen
Nombre producto
Donde comprarlo
Wemos D1 Mini


PROGRAMACIÓN

Para poder hacer funcionar nuestro Wemos, debemos cargar en nuestro IDE de Arduino, las librerías necesarias para hacerle funcionar.

Para ello, abriremos nuestro IDE, e iremos a Archive->Preferencias y donde hay campo llamado, "Gestor de URLs adicionales para tarjetas", debéis pulsar la venta e introducir esta url.

http://arduino.esp8266.com/stable/package_esp8266com_index.json



A continuación, después de introducir la url, pulsaremos en Herramientas ->  Placa -> Gestor de tarjetas. Cargara un rato las nuevas librerías, y cuando haya descargado todas, en el buscador ponéis, wemos. Buscáis la que se llame esp8266 by ESP8266 Communty. La seleccionáis y os aparecerán los botones de selección de versión, pulsáis la última (no recomiendo usar las RC), coged las estables. Pulsáis instalar y cuando acabe cerráis la vista.

Ahora ya desde Herramientas -> Placa -> Encontrareis en mi caso la última que es: Wemos D1 R2 & mini.

Ahora si queremos cargar ejemplos o carlas las librerías en nuestro proyecto, debéis ir a Programa -> incluir librería -> Gestionar librerías.



Además del controlador, los paquetes que habéis instalado traen consigo una batería de ejemplos muy útiles y muy completos. Para ello, iréis a Archivo -> Ejemplos -> ESP8266, y elegiréis Blink.
Pulsáis a cargar y veréis que el led mas cercano a la antena wifi lucirá, yo tengo configurado Wemos a 115200 (ahí es configurarlo como prefiráis, luego el Serial vereis que esta configurado a 74880), y carga el software relativamente rápida.

Una vez que vemos que nuestro hardware funciona, vamos a cargar el software de control para configurar nuestra conexión wifi.

#include <ESP8266WiFi.h>
#include <ESP8266mDNS.h>
#include <WiFiUdp.h>

const char* ssid = "#######";             //Set your wifi network name(ssid)
const char* password = "######";                //Set your router password

int RelayPin = D1;          //Relay Shield is controlled by pin D1
WiFiServer server(80);

void setup() {
  Serial.begin(74880); //change according to your com port baud rate
  delay(10);


  pinMode(LED_BUILTIN, OUTPUT);
  digitalWrite(RelayPin, LOW);

  // Connect to WiFi network
  Serial.println();
  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid);

  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);

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

  // Start the server
  server.begin();
  Serial.println("Server started");

  // Print the IP address
  Serial.print("Use this URL : ");
  Serial.print("http://");
  Serial.print(WiFi.localIP());
  Serial.println("/");
}


void loop() {
 
  
  // Check for an active client
  WiFiClient client = server.available();
  if (!client) {
    return;
  }

  // Wait until client responds
  Serial.println("new client");
  while(!client.available()){
    delay(1);
  }

  // Read client request
  String request = client.readStringUntil('\r');
  Serial.println(request);
  client.flush();

  // Match the request

  int value = LOW;
  if (request.indexOf("/Relay=ON") != -1) {
    digitalWrite(LED_BUILTIN, HIGH);
    value = HIGH;
  }
  if (request.indexOf("/Relay=OFF") != -1){
    digitalWrite(LED_BUILTIN, LOW);
    value = LOW;
  }



  // Return the client response
  client.println("HTTP/1.1 200 OK");
  client.println("Content-Type: text/html");
  client.println(""); //  do not forget this one
  client.println("<!DOCTYPE HTML>");
  client.println("<html>");

  client.print("Relay pin is now: ");

  if(value == HIGH) {
    client.print("On"); 
  } else {
    client.print("Off");
  }
  client.println("<br><br>");
  client.println("Click <a href=\"/Relay=ON\">here</a> to turn the Relay ON<br>");
  client.println("Click <a href=\"/Relay=OFF\">here</a> to turn the Relay OFF<br>");
  client.println("</html>");

  delay(1);
  Serial.println("Client disconnected");
  Serial.println("");

}


Bien, vamos a explicar que debemos hacer antes de lanzarlo, tenemos que configurar 2 parámetros, el ssid y el password. El ssid, es el nombre de nuestra red wifi de la casa, si no la hebeis modificado podréis encontrarla debajo del router. Y el password pues exactamente lo mismo.

Una vez cargado abriréis el monitor site, y veréis que carga los Serial.print, que están en la aplicación. Ahí si es todo correcto los datos que has introducido, te mostrará que la conexión ha sido correcta, devolviéndote una dirección IP. Cópia dicha dirección y pégala en tu explorador web. En dicha web, tendrás 2 opciones, encender y apagar, pulsándolas podrás ver como se enciende y se apaga el led de vuestro Wemos.

Bien, con esto acaba nuestro tutorial de iniciación a Wemos, en este caso la comunicación es mono-direccional entre Web y Wemos. en tutoriales próximos, explicaremos como se realiza la comunicación bi-direccional entre web y hardware.

Como siempre, dejo la fuente de donde he obtenido la información: Fuente.

PUNTUACIÓN

Calidad Componentes
4,5
Montaje
4,5
Precio
4,0
Características
4,0
Puntuación Global
4,5


Tags: , , ,

Ude

Eduardo Parada Pardo

Soy desarrollador e investigador en robótica, me gusta aprender nuevas tecnologías y todo lo relacionado con el mundo de la robótica. Si te gusta este blog, no dudes en preguntar cualquier duda.

4 comentarios:

Anónimo dijo...

gracias

spiner.jmrm@gmail.com dijo...

hola Eduardo buenas Tengo un problema hace ya tiempo compre unos wemos mega y no consigo información para utilizarlo no estoy seguro de usar la librería correcta ni seleccionar la tarjeta correcta en mi IDE ya los videos que vi son en portugués ruso o ingles y ninguno dice concretamente como hacerlo desde el principio el alguno cuando da información del IDE incompleta deja imágenes que no concuerdan con lo que sale en mi IDE ya que al tener dos botones y dos llaves selectoras me hago un lio, espero que sepas como orientarme ya que fueron dos las que compre y las tengo muertas de risa sin poder concretar algún proyecto sin ellas gracias de antemano y chapó por tu labor

Ude dijo...

Buenos dias,
realmente no he trabajado con los wemos mega, pero deberia ser muy similares a los wemos mini. El problema que veo es que cuando te descargas los driver de wemos, te deja elegir Wemos mini R2, wemos D1 mini pro, wemos D1 R1 y no veo ningun opcion de Wemos mega, esto puede darte problemas para controlar todos los pines.

Asumo que has realizado este tutorial y habras probado todas las configuracion es de los wemos que he puesto antes a ver si alguno corria en tu wemos mega, no?

spiner.jmrm@gmail.com dijo...

Buenos días
Eso si, estaría genial completarlo, amigo Eduardo con información sobre como conectarlo a los datos de un móvil y el enlace de algunas aplicaciones con las que sacarle rendimiento. gracias amigo Eduardo por esa rápida respuesta

 

Productos y tecnologias usadas en este blog:

  • Copyright © LuneGate™ is a registered trademark.
    Designed by Templateism. Hosted on Blogger Platform.