Android APP Inventor ESP8266

ESP8266 controlado desde Android

A través de una red WiFi conectada a Internet es posible controlar cualquier cosa conectada al módulo ESP8266 desde un móvil con Android. Esta opción se vuelve muy eficaz para automatizar rutinas de nuestras casas, por ejemplo, encender una luz o mover una cortina. Evidentemente, se puede controlar el módulo ESP8266 desde cualquier lugar, solamente es necesario tener acceso a internet, tal y como funciona el internet de las cosas.

Diagrama de comunicación entre ESP8266, un dispositivo Android y un relé

Será necesario:

  • Añadir funcionalidades al ESP8266 a través de sus pines 
  • Desarrollar un programa para el ESP8266 a través del IDE Arduino o Esplorer IDE
  • Desarrollar un aplicación Android con el entorno App Inventor

Funcionalidad de los pines ESP8266


El módulo ESP8266 tiene incorporado el protocolo hardware TCP/IP para comunicarse con la red de internet. La versión 01 dispone de 2 pines que se puede configurar como salidas o entradas digitales. En una salida podemos conectar un relé, para encender una lámpara por ejemplo.Circuito de conexión entre ESP8266 y un relé

 

Programador ESP8266


Para programar al módulo ESP8266 es necesario hacerlo a través:

  • ESPlorer IDE: Programa para transferir las comandas al módulo  ESP8266. Click aquí para descargar
  • Arduino IDE: También se puede programar desde el entorno de Arduino. Click aquí para descargar librería

Seguidamente es necesario conectar el módulo ESP8266 con el PC a través de un conector FTDI. El conector FTDI permite transferir las senyales de programación del PC al módulo ESP8266. 

Pines de conexión del módulo WiFi ESP8266

Un ejemplo de programa para transferir al módulo ESP8266:

wifi.setmode(wifi.STATION)
wifi.sta.config("tu_nombre_red","tu_contraseña_red")
print(wifi.sta.getip())
led1 = 3
led2 = 4
gpio.mode(led1, gpio.OUTPUT)
gpio.mode(led2, gpio.OUTPUT)
srv=net.createServer(net.TCP)
srv:listen(80,function(conn)
    conn:on("receive", function(client,request)
        local buf = "";
        buf = buf.."HTTP/1.1 200 OK\n\n"
        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
        
        if(_GET.pin == "ON1")then
              gpio.write(led1, gpio.HIGH);
        elseif(_GET.pin == "OFF1")then
              gpio.write(led1, gpio.LOW);
        elseif(_GET.pin == "ON2")then
              gpio.write(led2, gpio.HIGH);
        elseif(_GET.pin == "OFF2")then
              gpio.write(led2, gpio.LOW);
        end
        client:send(buf);
        client:close();
        collectgarbage();
    end)
end)

App Inventor


 Es el momento de diseñar una sencilla aplicación para nuestro móvil Android que nos permita conectar al WiFi y controlar al módulo ESP8266.

Diagrama de diseño APP InventorDiagrama de bloques APP Inventor

La App Inventor se puede programar moviendo y arrastrando bloques. Los pasos son:

  • Descargate el controlador del ESP8266 
  • Dirígite a la web de App Inventor, y accede desde tu cuenta de google. 
  • Seleccione “Projects” y clique en “Import project (.aia)”. Seguidamente deberás seleccionar el archivo anterior descargado
  • Diseñe la interfície gráfica y los botones a partir de los bloques prediseñados
  • Añade funcionalidades a los botones y bloques elegidos
  • Instale la aplicación (apk) a tu móvil y introduce la ip que tiene asignada el módul ESP8266. 
  • Ahora puede controlar cualquier objeto conectado a las salidas del módul ESP8266.

Para aprender a desarrollar una aplicación con App Inventor, la web del MIT (institución que creó esta plataforma de diseño) dispone de tutoriales y también de una plataforma para desarrollar la aplicación de forma online. Vea este vídeo de introducción

Dejar un comentario