
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