
Domótica, crear un foco inteligente Wifi por 5 USD
Si es posible comenzar a controlar nuestros electrónicos desde nuestro celular o computadora, en este tutorial vamos a crear un foco inteligente Wifi por 5 USD
Requerimientos para crear un foco inteligente Wifi por 5 USD:
Además, los requerimientos son muy simples:
- Adaptador USB para programar Esp8266 Esp-01 (2USD)
- Esp8266 Esp-01 (3USD)
- Modulo Relevador (2USD)
- Cables (0.50 USD)
Ambos podemos conseguirlos aqui
Conexiones:
Solo hay que conectar el “Adaptador USB para programar” y conectamos un puente (cable) que conecte el pin GND y IO0
Recomendación de conexiones
Programación
Descargar Arduino desde este link https://www.arduino.cc/en/software
Conectamos ESP32 vía USB a la computadora:
Configurar ESP32 en Arduino IDE
Agregamos las librerías de ESP32 haciendo click en Archivo -> Preferencias y pegamos este link https://arduino.esp8266.com/stable/package_esp8266com_index.json
Vamos a Herramientas -> Placa: “Arduino” -> Gestor de tarjetas
Buscamos esp82 e instalamos la versión 3.0.1 y damos click en instalar
Ahora vamos a Herramientas-> Placa -> ESP8266-> Generic ESP8266 Module
Código para crear un foco inteligente Wifi por 5 USD
Pegamos este código:
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
//COLOCAMOS USUARIO Y CONTRASEÑA DE NUESTRO WIFI
const char* ssid = "Nombre_de_la_red";
const char* password = "Contraseña_de_la_red";
//Pin del foco
int pinFoco=2;
int encendido=0;
//Instanciamos el servidor web
ESP8266WebServer server(80);
void setup() {
Serial.begin(115200);
Serial.println("Desconectamos antes de conectar el WiFi");
WiFi.disconnect();
Serial.print("Conectando a ");
Serial.println(ssid);
//Conectamos el esp a la red wifi
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
//Intentamos conectarnos a la red
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
pinMode(pinFoco,OUTPUT);
//Si logramos conectarnos mostramos la ip a la que nos conectamos
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
//Iniciamos el web server
server.begin();
//Si entramos a la raiz mostramos las opciones
server.on("/", []() {
String content="";
content += "<html>";
content += "<div><a href=\"encender\">Encender</a></div>";
content += "<div><a href=\"apagar\">Apagar</a></div>";
if(encendido==1){
content += "<div>Estado encendido</div>";
}
else{
content += "<div>Estado apagado</div>";
}
content += "</html>";
server.send(200, "text/html", content);
});
//Si entramos encender encendemos el foco
server.on("/encender", []() {
digitalWrite(pinFoco,HIGH);
encendido=1;
String content="";
content += "<html>";
content += "<div>Encendido</div>";
content += "</html>";
server.send(200, "text/html", content);
});
//Si entramos apagar apagamos el foco
server.on("/apagar", []() {
digitalWrite(pinFoco,LOW);
encendido=0;
String content="";
content += "<html>";
content += "<div>Apagado</div>";
content += "</html>";
server.send(200, "text/html", content);
});
}
void loop() {
server.handleClient();
}
Recordemos cambiar el nombre de la red y la contraseña en esta línea de código:
const char* ssid = “Nombre_de_la_red”;
const char* password = “Contraseña_de_la_red”;
Buscar el puerto de ESP32
Abrimos el buscador de aplicacion y escribimos “administrador de dispositivos” y damos enter
Buscamos en la categoría Puertos (COM) el nuevo puerto que se creo.
Vamos a Herramientas-> Puerto->COM5 en nuestro caso quizás el tuyo sea diferente.
Subimos el código
- Desconectamos el puente
- Desconectamos el USB
- Dejamos desconectado el puente
- Conectamos USB
Hacemos click en el monitor de serie y esperamos que cargue la ip del ESP8266
Pegamos la ip en el navegador
Conectamos el relevador al esp8266-01
🎦 Lista de reproducción en YouTube de ESP32: https://www.youtube.com/watch?v=uUWOFP8V1WY&list=PLCTD_CpMeEKRDz5ISmZHaVR-4a64rzOKC&ab_channel=ProgramadorNovato
🎦 Curso Arduino IDE: https://www.youtube.com/watch?v=oGinJt9aALc&list=PLCTD_CpMeEKSqw3Nh7rA9aXUAzbPIPkdv
🎦 Curso de C++: https://www.youtube.com/watch?v=APN8aCyPvww&list=PLCTD_CpMeEKTofxs7iottRxJ5YPM7BOcc
Ave que vuela, a la cazuela.