Contactos

ESP8266 Firmware, programación en Arduino IDE. Actualización del firmware ESP8266 ESP 01 Esquema de conexión

La compañía china Espressif en 2014, comenzó a vender los módulos de Wi-Fi, en las fichas ESP8266. Lo que inmediatamente ganó gran popularidad de los aficionados de radio debido a su barra y las grandes oportunidades. Hoy existe un gran número de Los diferentes módulos basados \u200b\u200ben el chip ESP8266, en este artículo le informarán sobre el ESP-01.

Especificaciones técnicas

Fuente de alimentación: 3 V ~ 3.6 V
Corriente de operación máxima: 220 mA
Frecuencia de funcionamiento: 2.4 GHz
Modos: P2P (cliente), Soft-AP (punto de acceso)
Número de GPIO: 2.
MEMORIA FLASH: 1024 KB.
potencia de salida En el modo 802.11b: + 19.5dBm
Apoyo estándar inalámbrico: 802.11 B / G / N
Dimensiones: 24.8mm x 14.3mm x 8 mm

Información general sobre ESP-01

En esencia, el chip ESP8266 es un microcontrolador en miniatura con un transmisor Wi-Fi, que puede funcionar en plena autonomía, sin una tarifa arduino adicional. Uso del módulo ESP-01, puede transmitir datos sobre la temperatura, la humedad, incluidos los relés y así sucesivamente. Para facilitar el uso del chip ESP8266, el fabricante realizó una serie de módulos de ESP-01 por ESP-14. El primero de esta serie es el módulo ESP-01 (todavía hay un ESP-01S, un poco más tarde), que es uno de los conocidos, debido a su precio y en tamaño pequeño, solo 14.3 mm por 24.8 mm. Pero en él, hay dos inconvenientes, es un número limitado de conclusiones programadas GPIO y su ubicación incómoda (inconvenientemente de METT).


El módulo ESP-01 es una pequeña tarifa, negra en la que se encuentran dos fichas principales, es un microcontrolador ESP8266 y la memoria flash por 1 MB. Cerca se encuentra un resonador de cuarcita y una antena impresa. El tablero tiene dos LEDs, rojo y azul. El LED rojo está brillando cuando el módulo tiene comidas, y el azul parpadea al ejecutar los comandos (el LED rojo se ha eliminado en el NSP-01S debido al consumo de electricidad constante). Para conectar el módulo ESP-01, hay ocho salidas (dos filas de cuatro salidas, Pitch 2.54 mm), dos de las entradas digitales listas, que soportan la modulación del pulso. Aunque el módulo tiene dos salidas de GPIO de forma predeterminada, puede usar otros contactos disponibles si tiene herramienta requerida para soldar.


Propósito de las conclusiones
GND:"-" módulo de poder
GPIO2:(I / O programable digital)
GPIO0:(I / O digital es programable, también se usa para los modos de carga)
Rx:Recepción UART
TX:Transmisión de uart
Ch_pd:(Encendido / apagado, debe mostrarse en 3.3 en directamente o a través de una resistencia)
Primera:restablecer, necesita tirar a 3.3V
VCC: Módulo de potencia "3.3b"

Conexión de un módulo
Para el módulo ESP-01, se requiere una fuente de alimentación. corriente continuaque debe producir 3.3 V y la corriente de al menos 250 mA. Desafortunadamente, el estabilizador regular instalado en Arduino no es capaz de emitir la corriente necesaria para trabajar ESP-01 (si decide conectar ESP-01, espere la operación inestable y el reinicio constante). Además, la señal lógica, este módulo, Está diseñado para 3,3 V, es decir, un voltaje de 3.3b debe suministrarse a la salida RX, y de la salida TX, habrá un voltaje igual a 3.3 V (así como para otras conclusiones). Si necesita conectar el módulo arduino u otros controladores que se emiten a la salida lógica 5 V, es necesario usar resistencias o un módulo de nivel lógico si se conecta directamente, el módulo falla.

¡Atención! ESP-01 es muy caprichoso para la nutrición, es necesario usar un estabilizador de voltaje externo por 3.3V, ya que se utilizará el primer ejemplo adaptador USB

La tabla es mayor, se puede ver que el módulo ESP-01 puede operar en varios modos de suspensión, con un mínimo de consumo de corriente, se llaman programáticamente, excepto por el último "apagado" para usar este modo, es necesario instalar Un puente entre GPIO16 y RST, más tarde daré un ejemplo.

Instalación ESP8266 en IDE Arduino

Descargar desde el sitio Arduino.cc IDE Arduino.
A continuación, debe instalar la placa de ESP en el IDE Arduino, para esto, ejecutamos el programa IDE Arduino, abierto: Archivo -\u003e Configuración.
En novom ventana abierta, en el campo " Enlaces adicionales para el gestor de plan:»Añadir un enlace:

Http://arduino.esp8266.com/stable/package_esp8266com_index.json.

En la ventana abierta, estamos buscando. eSP8266 por ESP8266 Community "y haga clic" Colocar". La instalación tardará unos minutos, luego aparecerá " Instalado", Prensa" Cerca«

Haga clic en " Herramientas -\u003e Tableros -\u003e Módulo Generis ESP8266«.

Ahora necesita conectar el módulo ESP-01 a la computadora a través de un adaptador USB especial en Ch340G Chip


Personaliza la frecuencia del procesador " Frecuencia de CPU: "80 MHz"", Velocidad" Velocidad de carga: "115200""Y elige" Puerto«.

Luego cargues el boceto, lo que obligará al ESP8266 para flasheará el LED.

/ * Probado en Arduino IDE 1.8.5 Fecha de prueba 06/15/2018. * / #Define TXD 1 // GPIO1 / TXD01 Configuración de vacío () (PINMODE (TXD, salida);) Bucle VOID () (DigitalWrite (TXD, Alto); Retraso (1000); DigitalWrite (TXD, BAJO); Retardo ( 1000);)

Cómo usar el módulo ESP-01 para controlar el LED a través de Internet, el módulo que le permite administrar cualquier dispositivo eléctrico.

En esta lección de ESP8266, utilizamos el módulo ESP-01 para controlar el LED a través de Internet. ESP8266 es una plataforma barata, pero efectiva para comunicarse a través de Internet.

También es fácil de usar con Arduino. ¡Pasando esta lección, obtendrá el conocimiento principal de administrar cualquier dispositivo eléctrico a través de Internet desde cualquier lugar del mundo!

Aquí usaremos un convertidor USB-TO-TTL para programar ESP8266 ESP-01. Y lo utilizaremos para desarrollar un servidor web para control remoto DIRIGIÓ.

Cómo funciona

ESP8266 se puede controlar desde una red local Wi-Fi o desde Internet (después del reenvío de puertos). El módulo ESP-01 tiene contactos de GPIO que se pueden programar para activar o desactivar los LED o un relé a través de Internet. El módulo se puede programar utilizando el convertidor ARDUINO USB-TO-TTL a través de contactos sucesivos (RX, TX).

Equipo de conexión a su ESP8266

Podemos usar el convertidor USB-TO-TTL o usar Arduino para programar ESP8266. Aquí hay tres formas en que puede seguir para descargar el código en ESP8266: seleccione el que más le convenga. Consulte Diagramas para cada opción y ajuste su equipo en consecuencia.

1. Convertidor USB-TO-TTL usando el conector DTR

Si usa un convertidor USB-TO-TTL con salida DTR, la descarga continuará sin problemas. Tenga en cuenta que el monitor en serie no funcionará.

USB TTL → ESP8266 ESP-01
GND → GND.
Tx → rx.
Rx → tx.
RTS → RST.
Dtr → gpio0.

2. Convertidor USB en TTL sin salida DTR

Para conectar un convertidor USB-TTL sin salida DTR, debemos usar la transmisión manual. Para hacer esto, usamos dos botones: vea el siguiente diagrama:

USB TTL → ESP8266 ESP-01
GND → GND.
Tx → rx.
Rx → tx.
Botón de reinicio → RST
Botón Flash → GPIO0

Al cargar el código, haga clic en el botón Descargar (Flash). Mantenga el botón hacia abajo, en el momento en que hace clic una vez que el botón Reiniciar / Restablecer (restablecer). Ahora puedes soltar el botón Flash. ESP8266 está ahora en modo en el que puedes descargar el boceto.

3. Uso de Arduino Uno para cargar el código en ESP8266

Puede usar para iniciar el código ESP8266 ESP-01. Al cargar el código, siga el mismo procedimiento que en el segundo párrafo, mantenga presionado el botón "Descargar" cuando hace clic una vez en el restablecimiento, y luego suelte el botón Flash.

Arduino → ESP8266 ESP-01
GND → GND.
TX → TX.
Rx → rx.
Restablecer → RST BOTON
Botón Flash → GPIO0

Descargar Código ESP8266.

Use cualquiera de los métodos anteriores y abra, luego seleccione la placa ESP8266 en el menú:

Herramientas → Junta → Genérico Módulo ESP8266
(Herramientas → Tarifa → Módulo ESP8266)

Nota. Si no ha instalado y configurado la tarifa ESP8266 para Arduino, hágalo realizando pasos por encima de este manual. A continuación, puede ir más lejos.

Ahora copie el código a continuación en Arduino IDE y haga clic en el botón Descargar. Cambie SSID hasta el punto acceso Wi-Fi y cambia la contraseña a tu contraseña de wifi y compilar.

#Incluir. const char * ssid \u003d "your_ssid"; // Escriba su ssid const char * contraseña \u003d "your_password"; // Escriba su contraseña int ledpin \u003d 2; // GPIO2 del servidor de Wifiserver de ESP8266 (80); // Configuración del puerto de servicio () (Serial.Begin (115200); Retraso (10); PinMode (ledpin, salida); DigitalWrite (LEDPIN, BAJO); // Conectar a WIFI Network serial.println (); serial.println (); serial.print ("conectando a"); serial.println (SSID); wifi.begin (ssid, contraseña); while (wifi.status ()! \u003d Wl_connexed ) (Retraso (500); serial.print ("");) serial.println (""); serial.println ("wifi conectado"); // arranca el servidor.begin (); serial.println (" El servidor comenzó "); // Imprima la dirección IP serial.print (" Use esta URL para conectar: \u200b\u200b"); serial.print (" http: // "); serial.print (wifi.localip ()); serial. Println ("/");) Bucle VOID () (// Compruebe si un cliente ha conectado WIFICLIENT CLIENT \u003d Server.AVEABLE (); Si (! Cliente) (return;) // Espere hasta que el cliente envíe algunos datos en serie. Println ("Nuevo cliente"); Mientras (! Client.Available ()) (Delay (1);) // Lea la primera línea de la Solicitud de Solicitud de Solicitud \u003d Client.Readstringuntil ("\\ R"); serial.println ( Solicitud); cliente.flush (); // ma TCH El valor INT de solicitud \u003d bajo; if (Solicite.indexof ("/ LED \u003d ON")! \u003d -1) (DigitalWrite (ledpin, alto); Valor \u003d alto;) Si (Solicitud.indexof ("/ LED \u003d OFF")! \u003d -1) ( Digitalwrite (ledpin, bajo); valor \u003d bajo;) // Establezca LEDPIN de acuerdo con la solicitud // DigitalWrite (LEDPIN, valor); // devolver la respuesta Client.Println ("http / 1.1 200 ok"); Client.Println ("Tipo de contenido: Texto / HTML"); cliente.println (""); // no olvides este cliente.println (""); Cliente.println (" "); Client.Print (" PIN LED ahora es: "); Si (valor \u003d\u003d alto) (Client.Print (" ON ");) de la manera (Client.Print (" OFF ");) Client.Println ( "

"); Cliente.println (" click aquí Gire el LED en Pin 2 en
"); Cliente.println (" click aquí, gire el LED en PIN 2 OFF
"); Cliente.println (""); Retraso (1); serial.println (" cliente desconectado "); serial.println (" ");)

Abra el monitor en serie y abra la URL que se muestra en su monitor en serie, a través de un navegador web. Conecte la GPIO 2 de ESP8266 a una salida más larga del LED. ¡Ahora puedes controlar el LED de forma remota a través de Internet!

Elimine todos los cables que fueron necesarios para descargar el código. El módulo LM1117 se utiliza para garantizar una salida ajustable de 3.3 V. Esto le permitirá hacer que el módulo ESP8266 o ESP-01 sea autónomo.

Conexión ESP8266 a Internet

Actualmente, el módulo ESP8266 está disponible solo a través de la red de ubicación de Wi-Fi. Para administrar dispositivos de Internet, debe redirigir los puertos en el enrutador.

Para hacer esto, encuentre la dirección IP de su sistema o use el comando ifconfig en su terminal, o vaya a whatsmyip.org Página. Copia tu dirección IP. Ahora abra la configuración del enrutador y vaya a la configuración de "Redirección". Ingrese los datos para el "Puerto de servicio" y "Direcciones IP". El puerto de servicio es el número de puerto de su código Arduino (Puerto de servicio: 80):

Servidor Wifiserver (80); // Puerto de servicio

La dirección IP es la que indicó anteriormente. Deje la configuración predeterminada restante. Ahora vaya a su navegador e ingrese la dirección: xxx.xxx.xx.xx: 80. Se debe abrir una página para controlar el LED.

Para trabajar con el REMOTEXY, el módulo ESP8266 debe tener una versión del firmware con los comandos no inferior a V0.40. Para verificar la versión del módulo, así como para cambiar el firmware si es necesario, conecte el módulo a la computadora a través del puerto serie. El módulo se puede conectar a través de la placa arduino o a través del adaptador USB-UART.

Conexión a través de la junta arduino

Cuando se usa Arduino, el chip principal de ATMEGA se traduce al modo de reinicio, solo el convertidor de USB-UART incorporado permanece activo. Para esto, el contacto de reinicio está conectado al suelo. Los contactos RX y TX están conectados directamente al ESP8266, y no aumentará la cruz, como si estuvieran conectados a trabajar con el controlador.

Conexión a través del adaptador USB-UART

El convertidor debe tener una salida de origen de 3.3V a Power ESP8266. Además, esta fuente debe proporcionar la corriente necesaria de al menos 200 mA.



El contacto CPIO0 determina el modo de operación del módulo. Con un contacto no conectado, el módulo funciona en modo normal y ejecuta los comandos AT. Al comunicarse con el contacto del suelo, el módulo se traduce al modo de actualización del firmware incorporado. La traducción del módulo al modo de firmware requiere que el contacto CPIO0 esté conectado a la "Tierra" en el momento de la fuente de alimentación al módulo. Si cierra un contacto cuando se ejecuta el módulo, la traducción del módulo al modo de actualización del firmware no sucederá.

Comprobando la versión actual

Para enviar a los comandos y ver las respuestas, debe usar cualquier programa de monitor de puerto serie. El programa terminal de Arduino IDE es muy adecuado. El programa debe establecer el modo de envío de comandos al final de la traducción de la fila y el reembolso del carro. La velocidad de funcionamiento del módulo predeterminado es de 115200 bits / s. Para operar el módulo en modo normal, el contacto CPIO0 debe estar desconectado.

Puede verificar la versión actual del firmware por el comando AT: AT + GMR. Un ejemplo de una respuesta del módulo:

En la versión: 0.40.0.0 (8 de agosto de 2015 14:45:58)
Versión SDK: 1.3.0

Build: 1.3.0.2 Sep 11 2015 11:48:04
está bien.

También vale la pena aprender el tamaño de la memoria flash de su módulo, la configuración de las direcciones de carga de datos dependen de esto al actualizar el firmware. Esta declaración describe el firmware del módulo con el tamaño del flash flash de 8Mbit (512KB + 512KB) o 16MBI (1024KB + 1024KB), como el más común. El tamaño de la memoria flash se puede encontrar ejecutando el comando a la hora del comando de restablecimiento del módulo: a + RST.

Ets Ene 8 2013, RST CAUSA: 2, Modo de arranque: (3.1)

Carga 0x40100000, LEN 1396, habitación 16
Cola 4.
CHKSUM 0x89
Carga 0x3FFE8000, LEN 776, habitación 4
Cola 4.
CHKSUM 0xE8.
Cargar 0x3FFE8308, LEN 540, habitación 4
Cola 8.
CHKSUM 0xc0.
CSUM 0xc0.

2ª versión de arranque: 1.4 (B1)
SPI SPEAD: 40MHZ
MODO SPI: DIO
Tamaño y mapa de SPI FLASH: 8MBIT (512KB + 512KB)
Saltar a ejecutar usuario1 @ 1000

# T # n "t Use datos de memoria RTC MEM
Slџ.rll
Thinker Technology Co., Ltd.

Programa de firmware

Para actualizar el firmware, debe descargar el programa para el firmware y el firmware en sí. El programa de firmware ESP8266 utilizará las herramientas de descarga de Flash v2.4 desde el sitio web oficial de los sistemas Espressif. Enlace a la página de descarga en el sitio web oficial :. Debe ir a la sección "Herramientas".

Enlace al programa en nuestro almacenamiento de archivos: flash_download_tools_v2.4_150924.rar

Firmware

El firmware también se puede descargar desde el sitio oficial. Enlace a la página de descarga en el sitio web oficial :. Debe ir a la sección "SDKS & DEMOS" y descargar la versión de firmware ESP8266 NONOS SDK de al menos v1.3.0. Es de esta versión que se implementa el soporte de los comandos V0.40 y más.

Enlace al firmware en nuestro almacenamiento de archivos: ESP8266_NONOS_SDK_V1.4.0_15_09_18_0.rar

Todos los archivos descargados deben estar sin pavimentar y poner en el directorio donde la ruta completa a los archivos consiste solo en caracteres latinos, es decir, sin los símbolos de la localización del idioma.

Configuración

Ejecuta el programa firmware flash Descargue Herramientas V2.4 (archivo .exe durmiendo). En la ventana que se abre, debe especificar correctamente los archivos y la configuración descargables de la conexión.


Los archivos descargables se encuentran en el directorio bin del archivo con el firmware. Para cada archivo debe especificar dirección correcta Descargas. Use la siguiente tabla para seleccionar archivos y direcciones de destino:

Establezca los siguientes ajustes:

  • SPIAUTOSET - INSTALADO;
  • Crystalfreq - 26m;
  • Tamaño del flash - 8MBIT o 16MBIT, dependiendo del tamaño de la memoria flash;
  • COM PORT: seleccione el puerto al que está conectado ESP;
  • Baudrance - 115200.

Para el inicio del firmware, haga clic en el botón "Inicio".

Secuencia de pasos para el firmware ESP8266

1. Conecte el módulo a la computadora de acuerdo con el esquema de conexión en este artículo.

2. Ejecute el monitor de puerto serie. Ejecute en los comandos ATR y AT + GMR para determinar la versión actual del firmware y el tamaño de la memoria del módulo. Este paso también le permite verificar la corrección del módulo.

3. Ejecute el programa de firmware de las herramientas de descarga Flash, configure correctamente los archivos descargables, configure la configuración.

4. Desconecte la potencia del módulo ESP8266.

5. Conecte la CPIO0 de contacto a la Tierra.

6. Potencia al módulo ESP8266.

7. Haga clic en el botón Inicio en el programa Firmware.

8. Espere el firmware del módulo. Al final del firmware, aparecerá el final en el verde.

9. Desconecte la potencia del módulo ESP8266. Desconecte la tierra desde el contacto CPIO0.

10. Encienda el módulo, ejecute el monitor de puerto secuencial. Asegúrese de que la operación del módulo y la nueva versión del firmware ejecutando el comando en AT + GMR.

Después de su aparición sobre la base de WiFi, el chip ESP8266, el acero de acuerdo con la gente actual. Enormes oportunidades y un precio mínimo, que incluso al inicio de las ventas y al por menor no superaron los $ 5 hicieron su negocio. Alrededor de las comunidades organizadas de chip en las que las personas comparten información y crean software.

¿Cuál es la razón de tal popularidad, además del bajo precio?

Lo que es que las tarifas en ESP8266 no son solo módulos para la comunicación a través de WiFi. El chip es esencialmente un microcontrolador con sus interfaces SPI, UART, así como puertos de GPIO, lo que significa que el módulo se puede usar de forma autónoma sin Arduino y otros microcontroladores.

Información

Nuestros compañeros chinos ya están produciendo alrededor de doce variedades de tablas ESP8266: con conexión antena externa, con una antena de cerámica, con una PCB de antena, sin antena. También en diferentes módulos Se ha mostrado la cantidad diversa de GPIO. En más detalle, puede leer en el sitio de habla rusa.

EN esta reseña Utilizaré uno de los primeros platos. ESP-01.. También por trabajo de pleno derecho Con un chip, se requerirá un convertidor. USB / UART.Recomiendo, que ya estaba en Mysku.

Conexión

El pinout del conector ESP-01, presentado en la Figura:

Si no tiene dos gpios criados en sus proyectos, y no hay ningún deseo de participar en "Hacks sucios", luego recomiendo adquirir sus tableros más nuevos, por ejemplo ESP-07. o ESP-12. Solo tenga en cuenta que estos tableros requieren autoperocesamiento y a la venta para esto hay minería especial.

Imágenes de estas plantas.


ESP-01 HACKED BY DAVE ALLLAN, como ejemplo. Además, obtienes 4 GPIO: GPIO14, GPIO12, GPIO13 y GPIO15

Diagrama de conexión:
- ESP-01 VCC a USB / UART VCC (+ 3.3b);
- ESP-01 GND a USB / UART GND;
- ESP-01 URXD a USB / UART TXD;
- ESP-01 UTXD a USB / UART RXD;
- ESP-01 CH_PD a USB / UART VCC (+ 3.3b);
- ESP-01 GPIO0 A USB / UART GND - ¡Solo durante el firmware! ..

Firmware

Para ESP8266, hay un SDK y el firmware original de los sistemas Espressif, pero muchos no se adaptan a su "humedad", por lo que no hay firmware original, como Nodemcu, Frankenstein y otros.

En esta revisión, se utilizará el firmware original de Nodemcu. Lista de equipo y ejemplos se puede ver.

Actualizamos el firmware original "Fábrica" \u200b\u200ben el ANDEMCU:
- Cargue la utilidad de firmware -;
- Cargar el firmware -;
- Nos conectamos a través de ESP-01 a USB / UART de acuerdo con el esquema que se presenta anteriormente. No olvides conectar GPIO0 a GND. Insertar USB / UART en Puerto USB ordenador;
- Ejecutar xtcom_util.exe, vaya a Herramientas -\u003e Dispositivo de configuración, seleccione el puerto COM al que esté conectado la placa, coloque la velocidad del puerto 57600, haga clic en Abrir, luego Conecte, el programa debe decir "Conectar con Target Ok!" , Cierre la ventana Configuración. Vaya al menú API de prueba, seleccione (4) Descarga de imagen Flash, especifique la ruta al archivo "NODEMCU_512k_lateest.bin", deje 0x00000, haga clic en Descargar. La descarga de firmware debe comenzar, el mensaje se emitirá al final;
- Desconecte la placa, la salida GPIO0 se desconecta del cable general, encendemos la alimentación. ¡Ejecute el terminal de masilla, refrigerante u otro (atención! Cambie la velocidad del puerto por 9600), verifique la disponibilidad de la placa con el equipo
\u003e Imprimir (NODE.CHIPID ())
10013490

Primer guión

Si tiene problemas al trabajar con scripts, se recomienda suministrar comidas de 3.3V no de USB / UART, sino de una fuente separada. El voltaje debe ser de 33V, por ejemplo, a través del módulo de suministro de energía estabilizado en AMS1117 3.3V 800MA.

Para escribir y descargar scripts en ESP8266, se utilizará un IDE pequeño y conveniente:

Nuestro primer script se apagará e incluirá el LED con una frecuencia de 2 segundos:
- Apague la alimentación, a la gpio2 Conecte la resistencia y el LED. Conectar la alimentación;
- Ejecute Esplorer, seleccione la COM deseada y la velocidad de puerto de 9600, haga clic en Abrir;
- Inserte el código y haga clic en Guardar en ESP;

Pin \u003d 4 --gpio2 gpio.mode (pin, gpio.output) para i \u003d 1, 10, 1 do gpio.write (pin, gpio.low) tmr.delay (2000000) gpio.write (pin, gpio.high ) TMR.DELAY (2000000) Fin
- Repetirte presiona DOFILE.

Conecte el sensor DHT11

Para demostrar, el trabajo más avanzado con Nodemcu firmware se conecta al Sensor ESP-01 DHT11:
- DHT11 VCC a USB / UART VCC
- DHT11 GND a USB / UART GND
- DHT11 fuera a USB / UART GPIO2

Código de cerdos vuelan del foro ESP8266.com

Funciona para DHT11 en ESP-07 (versión w / 16pins) y ESP-01-01-El Firmware 20141219 probado. - Data Stream La sincronización de adquisición es crítica. "S -BARELY velocidad suficiente para trabajar para hacer que esto suceda. --Pre-asignó vars usados \u200b\u200ben lazo. Bitstream \u003d () para J \u003d 1, 40, 1 do the bitstream [J] \u003d 0 Fin BitLength \u003d 0 PIN \u003d 4; GPIO.MODE (PIN, GPIO.OUTPUT) GPIO.WRITE (PIN, GPIO.LOW) TMR.DELAY (20,000) - Uso de Markus Greitsch Truco Para acelerar Lectura / Escribir en GPIO GPIO_WRITE \u003d GPIO .Read GPIO_WRITE \u003d GPIO.WRITE GPIO.MODE (PIN, GPIO.Input) --BUS SIEMPRE DESCONTARÁ SIEMPRE LEVANTE Finalmente, no se molestará con el tiempo de espera mientras (gpio_read (pin) \u003d\u003d 0) termina C \u003d 0 MIENTRAS (GPIO_READ (PIN) \u003d \u003d 1 yc<100) do c=c+1 end --bus will always let up eventually, don"t bother with timeout while (gpio_read(pin)==0) do end c=0 while (gpio_read(pin)==1 and c<100) do c=c+1 end --acquisition loop for j = 1, 40, 1 do while (gpio_read(pin)==1 and bitlength<10) do bitlength=bitlength+1 end bitStream[j]=bitlength bitlength=0 --bus will always let up eventually, don"t bother with timeout while (gpio_read(pin)==0) do end end --DHT data acquired, process. Humidity = 0 HumidityDec=0 Temperature = 0 TemperatureDec=0 Checksum = 0 ChecksumTest=0 for i = 1, 8, 1 do if (bitStream > 2) Luego Humedad \u003d Humedad + 2 ^ (8-I) Fin de extremo para i \u003d 1, 8, 1 Do (Bitstream\u003e 2) Luego, HumidyDEC \u003d HumidyDEC + 2 ^ (8-I) Fin Fin for i \u003d 1, 8, 1 Do (Bitstream\u003e 2) Luego, Temperatura \u003d Temperatura + 2 ^ (8-I) Fin de extremo para i \u003d 1, 8, 1 Do (Bitstream\u003e 2) Luego TemperaturetureCEC \u003d TemperatureTurec + 2 ^ (8-I ) Fin de extremo para i \u003d 1, 8, 1 Do if (bitstream\u003e 2) luego, comprobación \u003d comprobación de comprobación + 2 ^ (8-i) checksumsttest de extremo de extremo \u003d (humedad + temperatura + temperatura + temperatureturedec)% 0xff Imprimir ("Temperatura: "..Tempresature ..". ".. TemperatureTurec) Imprimir (" Humedad: ".." Humedad. ".." HumidationDEC) Imprimir ("CheckSumsumreceived:" ..CheckSum) Imprimir ("CheckSumstest:" ..checksumttest )


Pido disculpas por la calidad del video, eliminé el teléfono.

Servidor http.

Ejemplo de conexión K. Punto wifi Acceso y respuesta a una solicitud HTTP.

Wifi.setmode (wifi.station) wifi.sta.config ("ssid", "contraseña") Imprimir (wifi.sta.getip ()) srv: escucha (80, función (conn), conn: ON ("Recibir", Función (Conn, Payload Payload) Imprimir (Payload) Conn: Enviar ("

Hola, usuario.

") Final) final)

Epílogo

Chip ESP8266 es definitivamente un gran avance, en primer lugar en la relación precio / calidad. Por supuesto que vale la pena mencionar problemas existentes En el firmware original y no original, pero se realiza el trabajo y espero que en el futuro haya fichas similares, se integrarán en cada hervidor. Planeo comprar +158. Agregar a favoritos Me gustó la revisión +103 +196

Cómo comprobar ESP8266.

Para revisar el ESP8266, que acaba de comprar necesitará.

¡Atención!El rango de fuente de alimentación permisible del módulo ESP8266 de 3.0 a 3,6 voltios. El suministro de alto voltaje de suministro al módulo está garantizado para abandonar la salida ESP8266.

Para verificar el ESP8266 ESP-01, es suficiente conectar tres pines: VCC y CH_PD (habilitación de chip) para alimentar 3.3 voltios, y GND en el suelo. Si no tiene un ESP-01, y se muestra otro módulo y el GPIO15, también deberá conectar GPIO15 al suelo.

Con un firmware inicial exitoso en el módulo ESP8266, se iluminará un LED rojo (el indicador de alimentación, en algunas versiones del módulo, por ejemplo, se puede faltar a ESP-12) y el azul parpadeará un par de veces (esto es El indicador de transmisión de datos del módulo al terminal sobre la línea TX-RX, puede tener otro color) y en su red inalámbrica Puede aparecer un nuevo punto de acceso con el nombre "ESP_XXXX", que puede ver en cualquier dispositivo WiFi. El nombre del punto de acceso depende del fabricante del firmware y puede ser diferente, como AI-PHINKER_AXXXXC. Si aparece el punto de acceso, puede continuar los experimentos más allá, si no, verifique la alimentación, CH_PD, GND y si todo está conectado correctamente, lo más probable es que tenga un módulo defectuoso, pero es esperanza de que el firmware en el módulo con Configuraciones no estándar y tal vez ayudará a parpadear.

Cómo conectar rápidamente ESP8266

En el conjunto mínimo para la conexión y el firmware, el módulo ESP8266 incluye:

Rojo - comida 3.3v

Negro - GND.

Amarillo - En el lado ESP8266 - RX, en el lado del USB-TTL - TX

VERDE - EN EL LADO DE ESP8266 - TX, EN EL LADO DE LA USB-TTL - RX

Orange - CH_PD (habilitación de chip), siempre debe ser arrastrada en poder

Azul - GPIO0 - conectado a través del interruptor al suelo para encender el modo de parpadeo del módulo. Para el inicio habitual del módulo GPIO0, puede dejar en cualquier lugar conectado.

Rosa en el esquema correcto - Nutrición no estabilizada de 5-8 voltios

4. Para el inicio del módulo, desgarlo el circuito GPIO0 - GND y puede alimentar la alimentación (y exactamente en este orden: primero nos aseguramos de que la GPIO0 "se cuelga en el aire", luego aplique energía a VCC y CH_PD)

¡Atención! En lo anterior, en realidad, trabaja, los ejemplos de conexión ESP8266 son utilizados por las conclusiones ESP8266 "directamente" al suelo y la nutrición, o "colgando en el aire", ya que el reinicio no está conectado en ningún lugar, lo que es absolutamente incorrecto y adecuado solo para un Pareja de los primeros experimentos, aunque está bien viable en la abrumadora mayoría de los módulos. "Directamente" a la alimentación está conectada solo a la salida VCC, las salidas restantes: CH_PD, RESET, GPIO0, GPIO2, deben tirarse (pulpa) a la alimentación (VCC) a través de una resistencia de 4.7 a 50 kΩ. "Directamente", a un minus (cable general), conectamos solo GND, y GPIO0 PULT UP (pulldown), también, a través de una resistencia hasta 10k a GND para transferir el módulo al modo de carga de firmware. Si está planeando un experimento adicional con ESP8266, sin embargo, sí, así como para cualquier otro microcontrolador. Descripción detallada La pullup y la flexión van más allá del alcance de este artículo, pero puedes bajar fácilmente la descripción conexión correcta Puertos de E / S. "" La conexión le permitirá evitar múltiples "milagros" y problemas y será inevitablemente necesario cuando haya dificultad para iniciar o parpadear el módulo ESP8266.

Cómo conectar ESP8266

Si planea lidiar con ESP8266 más de una noche, necesitará una opción de conexión que proporcione una mayor estabilidad. A continuación se muestran dos esquemas de conexión: con soporte para el firmware de, y sin él.

Diagrama de conexión ESP8266 (sin iniciar el firmware, parpadeando antes de instalar el puente de la quemadura y reiniciar el módulo)

Diagrama de conexión con soporte para firmware de Arduino IDE, UDK, SMING. Para la herramienta de descarga de Flash y XTCOM_UTIL, es posible que deba deshabilitar RTS / DTR. Si el RTS y DTR se sienten incómodos, puede agregar al esquema de puente.

Estos circuitos no se muestran la conexión ADC y la GPIO gratuita: su conexión dependerá del hecho de que desea implementar, pero si desea estabilidad, no olvide tirar de toda la GPIO a la alimentación (PULTUP) y ADC al suelo ( pulldown) a través de las resistencias de pull-up.

Las resistencias en 10K se pueden reemplazar con otras de 4.7K a 50K, con la excepción de GPIO15, su nominal debe ser de hasta 10k. La denominación del condensador, que suaviza las pulsaciones de alta frecuencia, puede ser diferente.

Conexión de restablecimiento y gpio16 a través de la resistencia de sueño profundo para 470 ohmios que necesitará si usa el modo de suspensión profundo: para salir del modo de suspensión profundo, el módulo se reinicia de la misma alimentación del nivel bajo en GPIO16. Sin esta conexión, el sueño profundo será eterno para su módulo.

A primera vista, estos esquemas parecen que GPIO0, GPIO2, GPIO15, GPIO1 (TX), GPIO3 (RX) están ocupados y no puede usarlos para sus propósitos, pero no lo es. Nivel alto En GPIO0 y GPIO2, se requieren solo en GPIO15 solo para el inicio del módulo, y luego puede usarlos a su discreción, simplemente no olvide proporcionar los niveles requeridos antes de reiniciar el módulo.

Puede usar TX, RX como GPIO1 y GPIO3, respectivamente, no olvidando que cuando se inicie el módulo, cualquier firmware tirará del TX enviando la información de depuración en el UART0 a la velocidad de 74480, pero después de la descarga exitosa, no puede usarlos. sólo como UART0 para intercambiar datos con otro dispositivo, pero también como GPIO ordinario.

Para los módulos que tienen menos pasadores diluidos, como ESP-01, no se requiere la conexión de los PIN no dilutados, es decir, En ESP-01 solo diluido: VCC, GND, GPIO0, GPIO2, CH_PD y RESET, eso simplemente se aprieta. No es necesario soldar directamente al chip ESP8266EX y atribuyen los pines no diluidos solo si es para usted.

Estos esquemas de conexión nacieron después de una variedad de experimentos realizados por los usuarios de nuestros foros y se ensamblan en los granos de la documentación inicial dispersa e inaccesible por nuestra comunidad, simplemente traté de unir estos conocimientos en un solo lugar. Se pueden encontrar muchos consejos de conexión. Allí puede hacer preguntas que está interesado o encontrarlo. Si viste un error, inexactitud en este artículo o tienes algo que agregar, entonces.

¡Atención! Incluso estos esquemas no se pueden llamar "ideal". No hay límite para la perfección: es conveniente conectar el segundo USB-TTL a UART1 (C ESP8266 solo se puede tomar GND y UTXD1, es decir, GPIO2) para conectar el terminal de depuración (se requerirá el segundo convertidor USB-TTL). Luego, puede flashear el módulo ESP8266 a través del UART0 sin deshabilitar el terminal de depuración en el UART1. Será bueno conectar las resistencias de un pequeño nominal a las conclusiones de Tanto UART, coloque un diodo en la línea RTS, agregue un condensador a la línea de energía para inciadizar pulsos de baja frecuencia, etc. Muy conveniente, por ejemplo, hecho en esta placa de depuración: los LED están conectados a todas las GPIOS, un fotoresistor está conectado a ADC, pero es una pena que no haya un botón de reinicio y el puente solo uno en GPIO0.

Será correcto decirle que no hay ideal y al mismo tiempo esquema universal Conexiones ESP8266. La cosa es que mucho depende del firmware que vaya a verter allí. Los esquemas anteriores están diseñados para novatos, que están empezando a dominar el ESP8266, para los experimentos. Para proyectos reales, es posible que tenga que cambiar el esquema ligeramente. Por ejemplo, debe conectar RTS a GPIO15, y CTS a GPIO13. También en proyectos reales, recomiendo prestar especial atención a la nutrición.

Conexión ESP8266 a través de Arduino

Si no tiene un convertidor USB-TTL en cuestión, pero hay un arduino con un convertidor USB-TTL incorporado, puede usar un esquema de conexión de este tipo

Qué prestar atención a:

1. El restablecimiento de Arduino está conectado al GND (cable azul) para que el microcontrolador en Arduino no se ejecute, en esta vista, usamos Arduino como un convertidor transparente USB-TTL

2. Rx y TX están conectados no "por cruz", pero RX - RX - RX (verde), TX - TX (Amarillo)

3. Todo lo demás está conectado de la misma manera que en los ejemplos anteriores.

¡Atención! Este esquema también requiere coordinar los niveles de TTL 5 voltios Arduino y 3.3 voltios en ESP8266, pero funciona bien.

¡Atención!En Arduino, se puede instalar un estabilizador de potencia, lo que no resistirá la corriente requerida para ESP8266, por lo que antes de conectarse para verificar con un Datashet al estabilizador que está instalado. No conecte otros componentes de consumo de energía simultáneamente con el ESP8266 debido al riesgo de fracaso estabilizador de potencia incorporado integrado en Arduino.

Con la conexión con el puerto serie tendrá que ser un bit: debido a la variedad de firmware para ESP8266, la conexión se puede realizar en diferentes velocidades. Velocidad específica Puede determinar simplemente buscando tres opciones: 9600, 57600 y 115200. ¿Cómo hacer un busto? Conecte en el programa de terminal a su puerto secuencial virtual. Exponga los siguientes parámetros: 9600 8N1, luego reinicie el módulo, deshabilitando el CH_PD (habilitación de chip) de la alimentación (USB-TTL que permanece conectada a USB) y encienda (es decir, Simplemente culpe a Ch_PD, ¿por qué no lectura de alimentos romos, también puede cerrar el reinicio al suelo para reiniciar el módulo) y observar los datos en el terminal? Primero, los LED en el ESP8266 deben enterrarse como se describe al comienzo del artículo en la sección. En segundo lugar, en el terminal debe ver "basura" de diferentes personajes, finalizando la cadena "lista". Si está "listo", no vemos, reconectan el terminal a otra velocidad y vuelva a reiniciar el módulo.

En una de las opciones para la velocidad "listo", seguirá verán, felicidades, su módulo está listo para el trabajo. Si no, la daremos la bienvenida, intentaremos ayudar, pero pre-leer.

Un poco más sobre "basura". El hecho es que al iniciar el firmware, el módulo UART ESP8266 cambia a la tasa de transferencia de 74 880 (estos son tales son tales que estos chinos) proporcionan información de depuración de UART, luego cambia la velocidad del puerto a 115200 (pocillo, o 9600 o 57600 dependiendo de en la versión de firmware) para que esta información de depuración y nos vea como basura, porque Nos conectamos al módulo a otra velocidad. Puede conectarse a ESP8266 a una velocidad de 74 880 (admite esta velocidad) y verá esta información de depuración, habrá algo así:

wDT Restablecer carga 0x40100000, LEN 25052, Habitación 16 Tail 12 CHKSUM 0x0B Ho 0 Tail 12 Habitación 4 Carga 0x3FFE8000, Len 3312, Habitación 12 Cola 4 CHKSUM 0x53 Cargar 0x3FFE8CF0, LEN 6576, Habitación 4 Cola 12 CHKSUM 0x0D CSUM 0x0D

restablecer WDT.

cargar 0x40100000, LEN 25052, habitación 16

cola 12.

cHKSUM 0x0B.

ho 0 tail 12 room 4

carga 0x3ffe8000, len 3312, sala 12

Que hacer a continuación

Si tiene un nuevo módulo, entonces, lo más probable, una de las castas antiguas en el firmware se cose en ella. Lo más probable es que este sea un pensador AI en V0.16 SDK V0.9.2. Marque la versión del firmware que puede comandar "AT + GMR", es decir, Justo en el programa terminal, escriba AT + GMR sin cotizaciones y haga clic en Entrar. El módulo debe responder "OK" y emitir una versión de firmware (por ejemplo, "0016000092" - en versiones diferentes En el firmware, el formato de salida es diferente). El ESP8266 en el equipo de administración del módulo merece un artículo separado, sin embargo, puede lidiar con él, aprovechando a uno de nuestros directorios en los equipos:

En el momento de escribir este artículo versión real Firmware para ESP8266:

Actualización del firmware ESP8266.

El módulo ESP8266 es notable porque no requiere un programador especial: la actualización del firmware se realiza en el mismo hardware en el que conecta el módulo ESP8266 a la computadora, es decir. También a través de un convertidor USB-TTL (pozo o arduino o RPI). Para actualizar el firmware en el módulo ESP8266, haga lo siguiente:

1. Descargar nueva versión Firmware desde nuestro sitio desde la sección (aquí está el enlace en el momento de escribir este artículo)

2. Descargue una de las utilidades de firmware ESP8266 dependiendo de su sistema operativo De la sección de nuestro sitio



¿Te gustó el artículo? Compártelo