La comunicación inalámbrica entre los dispositivos y módulos electrónicos es muy importante, para que 'encajen' en el mundo de Internet de las cosas. El protocolo HTTP y el lenguaje HTML han hecho posible transferir los datos a cualquier parte del mundo, a través de la web. Ya hemos cubierto algunos proyectos que usan Wi-Fi con Arduino, échales un vistazo para comenzar:
- Envío de correo electrónico usando Arduino y módulo WiFi ESP8266
- Robot controlado por WiFi usando Arduino
- Controlar el LED RGB mediante Arduino y Wi-Fi
Ahora, en este tutorial, estamos creando un programa para enviar datos a la web usando Arduino y el módulo Wi-Fi. Para esto, primero necesitamos una dirección IP de servidor global o local, aquí, para facilitar y demostrar, estamos usando el servidor local.
Componentes requeridos:
- Arduino UNO
- Módulo Wi-Fi ESP8266
- Cable USB
- Cables de conexión
- Ordenador portátil
- Fuente de alimentación
Módulo Wi-Fi ESP8266:
Conexiones de circuito:
El diagrama de circuito para "Publicar datos de Arduino a la Web" se muestra a continuación. Necesitamos principalmente un módulo Wi-Fi Arduino y ESP8266. Los pines Vcc y GND de ESP8266 están conectados directamente a 3.3V y GND de Arduino y CH_PD también está conectado con 3.3V. Los pines Tx y Rx de ESP8266 están conectados directamente a los pines 2 y 3 de Arduino. La biblioteca serial de software se utiliza para permitir la comunicación serial en los pines 2 y 3 de Arduino. Ya hemos cubierto la Interfaz del módulo Wi-Fi ESP8266 con Arduino en detalle.
Al usar Software Serial Library aquí, permitimos la comunicación serial en los pines 2 y 3, y los hicimos Rx y Tx respectivamente. Por defecto, los pines 0 y 1 de Arduino se utilizan para la comunicación en serie, pero al usar la biblioteca SoftwareSerial, podemos permitir la comunicación en serie en otros pines digitales del Arduino.
Nota: Para ver la respuesta de ESP8266 en el monitor serial, abra Serial Monitor of Arduino IDE.
Explicación de trabajo:
En primer lugar, debemos conectar nuestro módulo Wi-Fi al enrutador Wi-Fi para la conectividad de red. Luego configuraremos el servidor local, enviaremos los datos a la Web y finalmente cerraremos la conexión. Este proceso y los comandos se explican en los pasos siguientes:
1. Primero necesitamos probar el módulo Wi-Fi enviando el comando AT , revertirá una respuesta que contenga OK .
2. Después de esto, necesitamos seleccionar el modo usando el comando AT + CWMODE = mode_id , hemos usado Mode id = 3. ID de modo:
1 = Modo de estación (cliente)
2 = Modo AP (host)
3 = Modo AP + Estación (¡Sí, ESP8266 tiene un modo dual!)
3. Ahora necesitamos desconectar nuestro módulo Wi-Fi de la red Wi-Fi previamente conectada, usando el comando AT + CWQAP, ya que ESP8266 está conectado automáticamente por defecto con cualquier red Wi-Fi disponible previamente.
4. Después de eso, el usuario puede reiniciar el módulo con el comando AT + RST . Este paso es opcional.
5. Ahora necesitamos conectar ESP8266 al enrutador Wi-Fi usando el comando dado
6. Ahora obtenga la dirección IP usando el comando dado:
Devolverá una dirección IP.
7. Ahora habilite el modo multiplexado usando AT + CIPMUX = 1 (1 para conexión múltiple y 0 para conexión simple)
8. Ahora configure ESP8266 como servidor usando AT + CIPSERVER = 1, port_no (el puerto puede ser 80). Ahora tu Wi-Fi está listo. Aquí '1' se usa para crear el servidor y '0' para eliminar el servidor.
9. Ahora, usando el comando dado, el usuario puede enviar datos al servidor creado localmente:
Id = ID no. de conexión de transmisión
Longitud = La longitud máxima de los datos es 2 kb
10. Después de enviar el ID y la longitud al servidor, necesitamos enviar datos como: Serial.println (“[email protected]”);
11. Después de enviar los datos, necesitamos cerrar la conexión con el comando dado:
Ahora los datos se han transmitido al servidor local.
12. Ahora escriba la dirección IP en la barra de direcciones del navegador web y presione Intro. Ahora el usuario puede ver los datos transmitidos en la página web.
Consulte el video a continuación para ver el proceso completo.
Pasos para la programación:
1. Incluya SoftwareSerial Library para permitir la comunicación serial en PIN 2 y 3 y declare algunas variables y cadenas.
#incluir
2. Después de esto, tenemos que definir algunas funciones para realizar nuestras tareas deseadas.
En la función Setup () , inicializamos la comunicación UART serial incorporada para ESP8266 como client.begin (9600); a la tasa de baudios de 9600.
configuración vacía () {Serial.begin (9600); client.begin (9600); wifi_init (); Serial.println ("Sistema listo…"); }
3. En la función wifi_init () , inicializamos el módulo wifi enviando algunos comandos como reiniciar, configurar el modo, conectar al enrutador, configurar la conexión, etc. Estos comandos también se han explicado anteriormente en la parte de descripción.
anular wifi_init () {connect_wifi ("AT", 100); connect_wifi ("AT + CWMODE = 3", 100); connect_wifi ("AT + CWQAP", 100); connect_wifi ("AT + RST", 5000);…………………
4. En la función connect_wifi () , enviamos datos de comandos a ESP8266 y luego leemos la respuesta del módulo Wi-Fi ESP8266.
void connect_wifi (String cmd, int t) {int temp = 0, i = 0; while (1) {Serial.println (cmd);…………………
5. La función sendwebdata () se utiliza para enviar datos al servidor local o página web.
void sendwebdata (String webPage) {int ii = 0; while (1) {unsigned int l = webPage.length (); Serial.print ("AT + CIPSEND = 0,"); client.print ("AT + CIPSEND = 0,");…………………
6. La función void send () se utiliza para enviar cadenas de datos a la función sendwebdata () . Eso se enviará posteriormente a la página web.
void Send () {página web = "
Bienvenido a Circuit Digest
"; sendwebdata (página web); página web = nombre; página web + = dat;…………………7. La función get_ip () se utiliza para obtener la dirección IP del servidor creado local.
8. En la función void loop () , enviamos instrucciones al usuario para actualizar la página y verificamos si el servidor está conectado o no. Cuando el usuario actualiza o solicita la página web, los datos se transmiten automáticamente a la misma dirección IP.
bucle vacío () {k = 0; Serial.println ("Actualice su página"); mientras (k <1000)………………
Podemos mostrar cualquier dato de Arduino a la página web usando este proceso, como temperatura y humedad de la habitación, hora del reloj, coordenadas GPS, frecuencia cardíaca, etc.