WLAN en el Arduino: conecte el ESP8266-01 al Arduino y controle NodeMCU Amica de forma remota con su teléfono inteligente
El Arduino es una de las placas de desarrolladores más conocidas. Desafortunadamente, los modelos estándar no tienen un chip Wi-Fi instalado. Este práctico consejo le muestra cómo conectar un módulo WLAN ESP8266-01 al Arduino y cómo puede controlar de forma remota el NodeMCU Amica con su teléfono inteligente.
Controle NodeMCU Amica con su teléfono inteligente
El NodeMCU Amica tiene una variedad de pines, así como un chip Wi-Fi ESP8266 incorporado y un conector microUSB. Por lo tanto, tiene sentido usar el dispositivo más como un dispositivo independiente. La forma de conectar una placa ESP8266 "clásica" al Arduino se describe más adelante en el artículo.
- Para poder programar chips ESP, primero debe descargar e instalar los controladores para todos los chips CP210er de Silicon Labs. Afortunadamente, esto sucede relativamente rápido.
- Luego abra el IDE de Arduino y vaya a Configuración. Agregue la URL "//arduino.esp8266.com/stable/package_esp8266com_index.json" (sin las comillas) a las URL adicionales del administrador de la placa. Luego inicie el administrador de la placa, ingrese "ESP8266" e instale el paquete.
- También vaya al administrador de la biblioteca, ingrese "Blynk" e instale la última versión. Todos los componentes necesarios ya están instalados.
- Necesita la aplicación Blynk para controlar el NodeMCU con su teléfono inteligente. Si aún no lo ha hecho, cree una nueva cuenta aquí o inicie sesión con una existente. Luego cree un nuevo proyecto y seleccione el NodeMCU como tablero.
- Con los códigos de muestra en el IDE de Arduino, también debe encontrar un código para Blynk (→ "Boards_WiFi") en el NodeMCU. Simplemente ingrese el token Blynk de su proyecto aquí, que se le ha enviado automáticamente por correo electrónico. También ingrese su SSID y contraseña.
- Para cargar el código en el tablero, debe seleccionarlo desde la pestaña "Herramientas". En nuestro caso, se tuvo que seleccionar "NodeMCU 1.0 (Módulo ESP12E)", la frecuencia de 80 MHz, el tamaño de memoria "4M (3M SPIFFS)" y la velocidad de transmisión de 115200. Sin embargo, tenga en cuenta que la información puede variar según el modelo.
- Luego, simplemente puede cargar el código en el tablero y controlarlo con la aplicación Blynk. Aquí puede crear fácilmente diferentes widgets y, por ejemplo, controlar un LED con un botón.
Conecte WiFi en el Arduino - ESP8266-01 al Arduino
A continuación, queremos conectarnos y usar el módulo ESP8266-01 con el Arduino.
- Si gira la placa para que apunte hacia abajo con la antena dorada, puede encontrar el pin VCC en la parte superior izquierda, que por supuesto tiene que estar configurado en ALTO. A la derecha está el pin RST, que generalmente no necesita usar. El pin CH_PD junto a él también debe establecerse en ALTO nuevamente. En la parte superior derecha tenemos el pin TXD que emite señales y en la parte inferior izquierda tenemos un pin RXD que recibe las señales, por supuesto. También tenemos GPIO0 y GPIO2, así como el pin de tierra clásico, que se encuentra en la parte inferior derecha.
- Para poder usar el módulo en Arduino, tiene sentido usar SoftwareSerial, ya que HardwareSerial se usa principalmente para la comunicación entre Arduino y la PC. En nuestro caso, sin embargo, el módulo usa 115200 como la velocidad de transmisión, lo que significa que la comunicación entre el ESP y el Arduino a través de SoftwareSerial no es posible.
- Para cambiar la velocidad en baudios, muchos usuarios simplemente actualizan el nuevo firmware que proporciona una velocidad en baudios diferente. Sin embargo, esto no es absolutamente necesario ya que la velocidad en baudios también se puede cambiar mediante un comando. Este comando es "AT + UART_DEF". Otros comandos como "AT + IPR" o "AT + CIOBAUD" también se pueden encontrar en Internet, pero esto no es aconsejable, ya que "AT + IPR" en particular también puede bloquear el módulo.
- Para enviar el comando al módulo, se recomienda conectarlo a la PC con un adaptador USB, que generalmente se suministra de forma gratuita o se puede encontrar en Internet por alrededor de un euro. Si no tiene un adaptador USB, puede pedir uno en línea, lo cual es muy recomendable, o usar un adaptador universal FTDI, que es bastante complejo y que a menudo no funciona correctamente. Alternativamente, hay otra variante que se explicará más adelante.
- Si ha conectado el módulo con el adaptador a la PC, puede enviar el comando "AT + UART_DEF = 9600, 8, 1, 0, 0" con la velocidad en baudios 115200 y CR + LF. Luego puede volver a conectar el módulo y enviar comandos a la velocidad en baudios 9600.
- Luego tienes que programar el Arduino. El código es relativamente simple. Primero definimos una cadena vacía con el comando »String s =" ";«, importamos SoftwareSerial (»#include«) y creamos un nuevo objeto SoftwareSerial (»SoftwareSerial Serial_ESP (2, 3);«). En el método de configuración, se inicia la conexión al ESP (»Serial_ESP.begin (9600);«) y la conexión a la PC (»Serial.begin (9600);«). Si el ESP envía una señal, se agrega a la cadena y la cadena se emite en el monitor en serie (»while (Serial_ESP.available ()> 0) {s + = (char) Serial_ESP.read ();} if (s ! = "") {Serial.println (s); s = "";} «). Por el contrario, las señales enviadas por el monitor en serie, es decir, la PC, también se pasan al ESP (»while (Serial.available ()> 0) {Serial_ESP.write (Serial.read ());}«). Sin embargo, es muy importante que todo se convierta en un carácter, ya que el ESP devuelve los números. También puede encontrar el código nuevamente en la galería de imágenes al final del artículo.
- Una vez que haya cargado el código en el Arduino, debe conectar el ESP. ¡Precaución! El ESP utiliza 3.3 voltios en lugar de 5V. 5V rompen esto completamente. Sin embargo, dado que el Arduino funciona con lógica de 5V, el voltaje debe ajustarse en consecuencia.
- En teoría, puede usar un divisor de voltaje con resistencias, pero en la práctica todo es bastante impreciso y puede ser fácilmente alterado. Por lo tanto, debe cambiar un convertidor de nivel lógico entre el Arduino y el ESP.
- Conecte el pin de 5V del Arduino al HV, es decir, el pin de alto voltaje del convertidor y el pin de LV del convertidor al pin de VCC del ESP. También conecte el pin LV en paralelo al pin CH_PD del ESP para que el chip también esté encendido. Además, para obtener suficiente corriente, debe conectar el pin 3.3V del Arduino al pin LV del convertidor, por lo tanto, al VCC y CH_PD del ESP. Ahora conecte el pin TX de SoftwareSerial, en nuestro caso el pin 3 en el Arduino, con HV 1, 2, 3 o 4 y el pin LV opuesto con el pin RXD en el ESP. Repita este paso para el pin RX del Arduino también.
- Finalmente, debes conectar el suelo. Para hacer esto, conecte la tierra del Arduino a la tierra en el lado de alta tensión del convertidor. Luego, conecte la tierra en el lado LV a la tierra del ESP. Finalmente, debe conectar la tierra de AT y la tierra de BT.
- Ahora puede enviar fácilmente comandos AT con su PC al ESP a través del Arduino. Puede conectar fácilmente el Arduino a su WiFi, crear un servidor web y mucho más. Simplemente agregue los comandos AT respectivos al código Arduino (en el método de configuración) que se enviarán al ESP, que también puede encontrar en el "Conjunto de instrucciones AT".
- Si no tiene un adaptador USB listo, también puede enviar el comando para cambiar la velocidad en baudios a través de HardwareSerial utilizando el mismo circuito, utilizando los pines TX y RX de Arduino, es decir, 0 y 1. Sin embargo, no olvide ajustar la velocidad de transmisión en baudios en el código en consecuencia.
En el siguiente consejo práctico, le daremos una introducción al lenguaje de programación Java.