ESP8266 base de control de propósito general puede configurar wifi web (parte II)

Nota: Una lista para ir junta puede comprarse aquí

En parte II voy a entrar en cómo programar el ESP8266 así que un USB para módulo serial y un terminal no es necesario: todos se realizará vía web. También, explicaré cómo conducir un contador binario y relés de control 4 (multi multi en off) usando GPIO0 como control y GPIO2 como reset. De esta manera la ESP8266 realmente se convierte en un potente dispositivo que puede agregarse a cualquier proyecto de automatización y su fácil de programar en el sitio.

Se pueden obtener más detalles sobre mis proyectos en el sitio Web de Horacio Bouzas

El firmware de control

El firmware tiene que ser capaz de permitir al usuario conectar con el módulo y configurar el SSID y contraseña de la red, el módulo conectará al. Los pasos para diseñar el firmware son las siguientes:

1. Ponga el módulo en modo servidor (AP)

2. Coloque un nombre y una contraseña

3. crear un servidor

4. escuchar en el puerto 80

5. módulo dirección es 192.168.4.1

6. presentar una página web pidiendo SSID y contraseña

7. cambiar a modo de estación y configurar el SSID y la contraseña

8. conectar a la red

9. comience a escuchar para eventos que vienen en la dirección ip asignada por la red y el puerto 9999

Aquí está el código para hacerlo:

File.Open("init.lua","w")

File.WriteLine ([[print ("control WIFI")]])

--poner el módulo en modo AP

File.WriteLine ([[wifi.setmode (Wi-Fi. SOFTAP)]])

File.WriteLine ([[imprimir ("ESP8266 modo es:"... WiFi.getMode())]])

File.WriteLine([[cfg={}]])

--Establecer el SSID del módulo de contraseña de acceso y modo de AP

File.WriteLine([[cfg.SSID="ESP_STATION"]])

File.WriteLine([[cfg.pwd="the_ESP8266_WIFI_password"]])

File.WriteLine ([[if ssid y contraseña luego]])

File.WriteLine ([[imprimir ("ESP8266 SSID es:"... cfg.SSID... "y la contraseña es:"... cfg.password)]])

File.WriteLine([[end]])

-Ahora debería ver un router inalámbrico SSID llamado ESP_STATION al análisis de redes WIFI disponibles

-Permite conectar al módulo desde un ordenador del dispositivo móvil. Por lo tanto, encontrar el SSID y conectarse usando la contraseña seleccionada

File.WriteLine([[WiFi.AP.config(cfg)]])

File.WriteLine ([[ap_mac = wifi.ap.getmac()]])

--crear un servidor en el puerto 80 y esperar una conexión, cuando una conexión va en función c se ejecutará

File.WriteLine ([[sv=net.createServer (net. TCP, 30)]])

File.WriteLine([[SV:Listen(80,function(c)]])

File.WriteLine ([[c: a ("recibir", función (c, pl)]])

--imprimir la carga pl recibió de la conexión

File.WriteLine([[Print(PL)]])

File.WriteLine([[Print(String.Len(PL))]])

--Espere hasta que vuelve el SSID y analizar el SSID y la contraseña

File.WriteLine([[Print(String.Match(PL,"Get"))]])

File.WriteLine([[ssid_start,ssid_end=String.Find(PL,"SSID=")]])

File.WriteLine ([[if ssid_start y luego ssid_end]])

File.WriteLine ([[amper1_start, amper1_end =string.find (pl,"", ssid_end + 1)]])

File.WriteLine ([[if amper1_start y luego amper1_end]])

File.WriteLine ([[http_start, http_end =string.find (pl, "HTTP/1.1", ssid_end + 1)]])

File.WriteLine ([[if http_start y luego http_end]])

File.WriteLine ([[ssid=string.sub (pl, ssid_end + 1, amper1_start-1)]])

File.WriteLine ([[password=string.sub (pl, amper1_end + 10, http_start-2)]])

File.WriteLine ([[imprimir ("ESP8266 conectarse SSID:"... SSID... "con la contraseña:"... contraseña)]])

File.WriteLine ([[if ssid y contraseña luego]])

File.WriteLine([[SV:Close()]])

--cerrar el servidor y configurar el módulo a modo de estación

File.WriteLine ([[wifi.setmode (Wi-Fi. STATIONAP)]])

File.WriteLine ([[imprimir ("modo de ESP8266 ahora es:"... WiFi.getMode())]])

-configurar el wso de módulo se puede conectar a la red con el SSID y la contraseña recibida

File.WriteLine([[WiFi.Sta.config(SSID,password)]])

File.WriteLine ([[print ("configurar ESP8266 para el modo de estación... Espere por favor.")]])

File.WriteLine([[TMR.Delay(10000000)]])

File.WriteLine ([[imprimir ("ESP8266 estación IP ahora es:"... WiFi.Sta.getip())]])

File.WriteLine ([[imprimir ("ESP8266 AP IP ahora es:"... WiFi.AP.getip())]])

--ahora el módulo es configurado y conectado a la red que permite empezar a fijar cosas para arriba para la lógica de control

File.WriteLine ([[gpio.mode (8, gpio. SALIDA)]])

File.WriteLine ([[gpio.mode (9, gpio. SALIDA)]])

File.WriteLine([[TMR.Delay(10)]])

File.WriteLine ([[gpio.write (8, gpio. ALTO)]])

File.WriteLine([[TMR.Delay(10)]])

File.WriteLine ([[gpio.write (8, gpio. BAJO)]])

File.WriteLine ([[sv=net.createServer (net. TCP, 30)]])

File.WriteLine([[SV:Listen(9999,function(c)]])

File.WriteLine ([[c: a ("recibir", función (c, pl)]])

File.WriteLine ([[if tonumber(pl) ~ = nil entonces]])

File.WriteLine ([[if tonumber(pl) > = 1 y tonumber(pl) < = 16 entonces]])

File.WriteLine([[Print(tonumber(PL))]])

File.WriteLine([[TMR.Delay(10)]])

File.WriteLine ([[gpio.write (8, gpio. ALTO)]])

File.WriteLine([[TMR.Delay(10)]])

File.WriteLine ([[gpio.write (8, gpio. BAJO)]])

File.WriteLine ([[para cuenta =1,tonumber(pl) do]])

File.WriteLine ([[print(count)]])

File.WriteLine([[TMR.Delay(10)]])

File.WriteLine ([[gpio.write (9, gpio. BAJO)]])

File.WriteLine([[TMR.Delay(10)]])

File.WriteLine ([[gpio.write (9, gpio. ALTO)]])

File.WriteLine ([[c:send("Sequence finished")]])

File.WriteLine([[end]])

File.WriteLine([[end]])

File.WriteLine([[end]])

File.WriteLine ([[imprimir ("ESP8266 estación IP ahora es:"... new_ip)]])

File.WriteLine ([[c:send("ESP8266 STATION IP now is:".. new_ip)]])

File.WriteLine ([[c:send("Action completed")]])

File.WriteLine([[end)]])

File.WriteLine([[end)]])

File.WriteLine([[end]])

File.WriteLine([[end]])

File.WriteLine([[end]])

File.WriteLine([[end]])

--Esta es la página que pide el SSID y la contraseña del usuario

File.WriteLine ([[c:send("")]])

File.WriteLine ([[c:send("")]])

File.WriteLine ([[c:send("")]])

File.WriteLine ([[c:send("ESP8266 Wireless control setup")]])

File.WriteLine ([[mac_mess1 = "el módulo de dirección MAC es:"... ap_mac]])

File.WriteLine ([[mac_mess2 = "Tendrá esta dirección MAC para encontrar la dirección IP del módulo, por favor tome nota de ella".]])

File.WriteLine ([[c:send("".. mac_mess1... "")]])

File.WriteLine ([[c:send("".. mac_mess2... "")]])

File.WriteLine ([[c:send("Enter SSID and Password for your WIFI router")]])

File.WriteLine ([[c:send("

")]])

File.WriteLine ([[c:send("

")]])

File.WriteLine([[c:Send("SSID:")]])

File.WriteLine([[c:Send("")]])

File.WriteLine ([[c:send("
")]])

File.WriteLine([[c:Send("Password:")]])

File.WriteLine([[c:Send("")]])

File.WriteLine([[c:Send("")]])

File.WriteLine([[end)]])

File.WriteLine([[end)]])

File.Close()

Artículos Relacionados

ESP8266 base de control de propósito general puede configurar wifi web (parte I)

ESP8266 base de control de propósito general puede configurar wifi web (parte I)

Nota: Listo para placas pueden adquirirse aquíDe AT comandos para firmware controladoEl tipo de módulo de wifi de nuevo ESP8266 no sólo es barato, unos 3-4 dólares, su también un módulo bastante versátil que permite toneladas de aplicaciones de contr
ESP8266 base de control de propósito general web wifi configurable (parte III)

ESP8266 base de control de propósito general web wifi configurable (parte III)

Nota: Listo para placas pueden adquirirse aquíLa parte electrónicaEn la parte I y II vimos cómo programar y configurar remotamente el ESP8266 para convertirlo en un procesador de eventos TCP y usar GPIO para comunicarse con el mundo. Ahora toma esos
Wii Nunchuck como controlador de propósito general a través de la placa Arduino

Wii Nunchuck como controlador de propósito general a través de la placa Arduino

Fondo:He hecho un uno mismo-equilibrio monopatín eléctrico que se dirige con un Wii Nunchuck usando el joystick de pulgar en la parte superior o por inclinación izquierda o derecha, dependiendo de cuál de los dos botones en el extremo están siendo pr
Indicación de LCD usando propósito General IO directa

Indicación de LCD usando propósito General IO directa

Dificultad: e a s y .. Esquemas, soldadura, C programaciónUn montón de dispositivos tiene pantallas de LCD (pantalla de cristal líquido) - su báscula de baño, microondas y reloj digital son algunos ejemplos comunes. Más de una vez he quiero ser capaz
360 grados Multi propósito brillante luz LED

360 grados Multi propósito brillante luz LED

Hola,Esto es muy útil luz de LED brillante de 360 grados multi propósito. como el nombre sí mismo usted puede encontrar los detalles de esta lámpara...360 grados , esta luz se ilumina la luz en la dirección.Multi purpose significa que esta lámpara se
Una planta con propósito: Cómo cuidar de Aloe Vera

Una planta con propósito: Cómo cuidar de Aloe Vera

Esta beneficiosa planta con propósito es realmente fácil de cultivar en su casa y en el jardín así que estad atentos porque hay consejos para el cuidado que viene su manera.Paso 1: Aquí estoy en mi patio trasero todo cuidado de Aloe vera de las cosas
Volver a propósito de un caso de disco

Volver a propósito de un caso de disco

¿Quién hubiera pensado, hace décadas, que algún día nos ¿ser tirar discos y manteniendo el cuadro llegaron? La imagen muestra un chasis de proyecto electrónico que procedente de una caja de plástico que Sony discos. Este instructable muestra cómo vol
Soporte de TV de madera multi propósito

Soporte de TV de madera multi propósito

La idea de un soporte para nuestra TV comenzó en el sofá. Mi esposa y yo a menudo ver un episodio de alguna serie en las noches antes de ir a la cama. Medio dormido en el sofá es una "pesadilla" para levantarse, cepillarse los dientes y luego ir
Establecer un propósito para la lectura

Establecer un propósito para la lectura

antes de leer, establezca un propósitoo razón, para la lectura.Paso 1: por ejemplo, su propósito puede ser * Para obtener información* Para aprender a hacer algo* Para resolver un problemaA la forma de una opinión* Para entretenersePaso 2: Con el fin
Cómo volver a propósito LCD del muerto portátil

Cómo volver a propósito LCD del muerto portátil

Tengo un Fujitsu e8410 que les he dado a reparar. Fue XB dos veces. Así que se desglosan para cosechar las partes utilizables. La Guía paso a paso de romper un ordenador portátil está disponible. La corona de la cosecha fue la aleación de magnesio en
Multi propósito childrenchair

Multi propósito childrenchair

el propósito de este instructivo es hacer una childrenschair multiuso.Los requisitos que-Durable-Barato-Materiales limitados-Multiusos-Fácil de hacerPaso 1: Multiuso childrenschair La silla final tiene tres funcionalidades-Silla baja-Silla alta-Tabla
Multi propósito almohada bolsillos

Multi propósito almohada bolsillos

esto es una bolsa muy versátil y customizeable de una funda de almohada. Utilizarlo como un delantal, ponerlo en andador de la abuela, atar al cochecito de niño, usarlo para lo que quieras! Este es un buen proyecto para principiantes y tarda menos de
El anillo de propósito doble Wending

El anillo de propósito doble Wending

Hola instructables...En esta sesión le mostrará cómo hacer que vuestra boda DIY de anillo de compromiso por tus manos y tu corazón. Hoy hice 2 diferentes tipos de anillos, pero todos con el mismo fin.Realmente ambos anillos es un regalo a mi esposa p
DIY arte vuelva a propósito,-ciclo de una camiseta en una bolsa de supermercado con estilo. Video tutorial al final de este instructivo.

DIY arte vuelva a propósito,-ciclo de una camiseta en una bolsa de supermercado con estilo. Video tutorial al final de este instructivo.

Aquí está un gran tutorial para reasignar, ciclismo hasta una camiseta en una bolsa de supermercado con estilo.Video tutorial al final del proyectoPaso 1: Bricolaje volver a propósito, ciclo de bolsa una camiseta en una tienda de comestibles con esti