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á:
MATERIAL NECESARIO
A continuación os describo el material necesario para realizar el tutorial y donde conseguirlo:
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("");
}
#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
4 comentarios:
gracias
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
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?
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
Publicar un comentario