NodeMCU: Enchufe controlado desde página Web

Standard

Hasta el momento lo que se ha visto en los posts anteriores (éste, éste y éste) sobre el NodeMCU no ha sido mas que configuración y encender un par de LEDs, pero qué tal si empezamos a hacer algo más interesante. En éste artículo veremos cómo controlar un aparato de corriente alterna (una licuadora, un taladro, cualquier cosa que se conecte al enchufe que tiene forma de D= ) y controlarlo a través de la red local desde una página web simple.

Primero, necesitas saber que existen dos tipos de corrientes eléctricas, la corriente continua o directa y la corriente alterna, la primera es aquella que nos proporcionan, por ejemplo, las baterías; prácticamente toda la electrónica (incluyendo al NodeMCU) funciona con ella. La segunda, la corriente alterna, es la que llega a nuestra casa después de recorrer largas distancias desde las centrales hidroeléctricas o termoeléctricas o cualquier otra central que produzca electricidad. Hubo una guerra (intelectual no militar) entre el ahora famoso Nikola Tesla quien defendía la corriente alterna y el inventor del foco, Thomas Alva Edison, si quieres conocer más checa este video:

Pero, hacer que la corriente continua del NodeMCU (3.3 volts) logre encender un aparato de corriente alterna, como la licuadora que funciona con 120 volts es más complicado que prender un simple LED, pero no tanto, gracias a una cosa que se llama relevador (en algunos lugares también lo conocen simplemente como relé)

Un relevador es como un switch, es decir, deja o no deja pasar electricidad para que un aparato funcione o deje de funcionar, pero a diferencia de un switch normal al cual tienes que oprimir con tu dedo (cual hombre de las cavernas sin conexión a Internet) el relevador funciona con electromagnetismo, cuando tu le aplicas voltaje (de corriente directa) internamente se genera un campo magnético que atrae una laminita que cierra el circuito eléctrico, algo así:

Y entonces, gracias al relevador podemos “poner de acuerdo” a la corriente directa y a la corriente alterna: el nodeMCU le manda una señal al relevador, el relevador se cierra y la la corriente alterna empieza a fluir para encender la licuadora.

Para más facilidad utilizaremos un módulo de relevador, una pequeña tarjeta que además de tener un relevador contiene todos los elementos electrónicos para conectarlo directamente a nuestro NodeMCU (o cualquier otra placa de desarrollo) y accionarlo fácilmente. Es algo parecido a lo siguiente y se encuentra relativamente fácil y barato en tiendas de electrónica.

La conexión que tienes que realizar es la siguiente:

Ya que tienes ese circuito hecho deberás cargar el siguiente programa a tu NodeMCU:

if srv~=nil then
 srv:close()
end

wifi.setmode(wifi.STATION)
wifi.sta.config("Intelirobot","12345678") --Nombre de la red y contraseña
print(wifi.sta.getip())

relevador = 0
gpio.mode(relevador, gpio.OUTPUT)
srv=net.createServer(net.TCP)
srv:listen(80,function(conn)
 conn:on("receive", function(client,request)
 local buf = "";
 local _, _, method, path, vars = string.find(request, "([A-Z]+) (.+)?(.+) HTTP");
 if(method == nil)then
 _, _, method, path = string.find(request, "([A-Z]+) (.+) HTTP");
 end
 local _GET = {}
 if (vars ~= nil)then
 for k, v in string.gmatch(vars, "(%w+)=(%w+)&*") do
 _GET[k] = v
 end
 end
 buf = buf.."<h1>INTELIROBOT</h1>";
 buf = buf.."<p>RELEVADOR <a href=\"?pin=ON\"><button>ON</button></a>&nbsp;<a href=\"?pin=OFF\"><button>OFF</button></a></p>";
 
 local _on,_off = "",""
 if(_GET.pin == "ON")then
 gpio.write(relevador, gpio.HIGH);
 elseif(_GET.pin == "OFF")then
 gpio.write(relevador, gpio.LOW);
 end
 client:send(buf);
 client:close();
 collectgarbage();
 end)
end)

Cuando cargas el programa, si todo salió bien, en la ventana de mensajes debería mostrarte una serie de direcciones, la primera es la dirección IP que le asigna el modem a tu NodeMCU, en este ejemplo es 192.168.1.197:

Esa dirección la deberás de poner en un navegador de Internet (ya sea en computadora o en algún dispositivo móvil) para que se muestre una página muy básica con dos botones, un ON y un OFF con los que podrás encender o apagar el relevador.

Recuerda que con este programa funciona sólo en área local, lo que significa que solamente podrás ver la página si estás conectado a la misma red WiFi que el NodeMCU.

¡Ahora sí! conecta esa licuadora y controla su encendido y apagado desde cualquier dispositivo que pueda conectarse a la red local.

 

Comments

comments

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *