Conexión de Arduino a Internet: una guía completa


Si eres nuevo en Arduino y quieres conectarlo a Internet, el proceso puede parecer complicado al principio. Muchos principiantes enfrentan desafíos al programar con Arduino cuando se trata de conectarse a Internet. Sin una interfaz fácil de usar y herramientas de depuración integradas, identificar y corregir errores puede ser difícil. En este artículo, proporcionamos una guía completa para conectar su placa Arduino a Internet, incluido el código necesario.

Cuando comencé a jugar con mi Arduino Uno, estaba muy orgulloso de poder hacer parpadear los LED y hacer sonar los sensores. Pero rápidamente me di cuenta de que el verdadero potencial de un Arduino solo se puede realizar cuando lo conectas a Internet.

Puede consultar los proyectos innovadores de Arduino.

Casi todos los proyectos Arduino de nivel intermedio a avanzado requieren una conexión a Internet por una variedad de razones, ya sea para registrar datos en la nube, p. B. datos meteorológicos, o para transmitir comandos en tiempo real a su dispositivo de forma remota, p. B. a través de una aplicación de su teléfono.

En este tutorial, echamos un vistazo completo a cómo conectar su dispositivo Arduino a Internet. Se cubre todo, desde el hardware hasta los circuitos y el código.

Índice del contenido

Conecte Arduino a Internet a través de Ethernet

La primera forma de conectar tu Arduino a Internet es con un cable Ethernet. Si está utilizando una placa Arduino que tiene un puerto Ethernet incorporado, como Por ejemplo, si tiene un Arduino Yún, puede omitir la sección de requisitos de hardware y la descripción del diseño del circuito a continuación. Simplemente conecte el cable ethernet a su dispositivo y comience a codificar.

Sin embargo, si, como la mayoría de las personas, posee una versión más simple de Arduino como Arduino Uno que no tiene un puerto ethernet incorporado, deberá comprar un dispositivo separado llamado ethernet shield para conectarlo a su Arduino.

Requisitos de hardware

Necesitará un cable Ethernet para conectarse a Internet, una placa Arduino Uno y un
Escudo Ethernet. Cómo conectarlos:

  1. Conecte el escudo de ethernet a la parte superior del Arduino Uno.
  2. Conecte el cable Ethernet al blindaje Ethernet.
Escudo de Arduino y Ethernet
Fig. 1: Escudo de Arduino y Ethernet

La figura 1 muestra Arduino Uno y su escudo Ethernet. Después de conectar los dos, su Arduino Uno debería verse como la Fig. 2.

Arduino con escudo Ethernet
Fig. 2: Arduino con Ethernet Shield

Código arduino para conectarse a internet a través de ethernet

Antes de comenzar el código para conectar Arduino a Internet, debemos incluir una biblioteca externa para usar en el programa. Esta biblioteca nos ayuda a conectarnos y enviar/recibir datos a través de Internet.

Nota: Esta biblioteca debe estar preinstalada en su IDE. Si encuentra errores por algún motivo, descargue esta biblioteca del repositorio oficial de GitHub del proyecto Arduino.

#include <Ethernet.h>

En el próximo paso definiremos algunas constantes y variables requeridas para este programa.

Primero necesitamos la dirección MAC. Esto suele estar impreso en una etiqueta adhesiva en el escudo de Ethernet. A continuación, debemos definir una dirección IP estática.

Asegúrese de que ningún otro usuario esté utilizando la dirección IP que está agregando. Finalmente definimos el Cliente Ethernet Variable.

byte mac[] = { oxDE, oxAD, oxBE, oxEF, 
oxFE, oxED };
IPAddress staticIP(10, 0, 0, 20);
EthernetClient client;

Ahora podemos escribir el método para conectarnos a Internet. Hay dos pasos aquí. Primero tratamos de obtener una IP a través de DHCP (Protocolo de configuración dinámica de host), así que obtenga su IP dinámica. Si este paso falla, recurrimos a la IP estática definida anteriormente.

void connectToInternet()
{
// Step 1 - Try connecting
with DHCP
If (Ethernet.begin(mac) == 0)
{
Serial.print(“[ERROR]
Failed to connect via DHCP”);
Ethernet.begin(mac,
staticIP); // Connect via static IP
defined earlier
}
// Add a delay for initialization
delay(1000);
Serial.println(“[INFO] Connection
Successful”);
Serial.print(“”);
printConnectionInformation(); // Custom
method
Serial.print
ln(“---------------------------------”);
Serial.println(“”);
}

Como puede ver en el código anterior, usamos un método personalizado imprimirInformaciónDeConexión() para mostrar la información de conexión. Así que sigamos adelante y escribamos el código para ello.

void printConnectionInformation()
{
    // Print IP Address
    Serial.print(“[INFO] IP Address: ”);
    Serial.println(Ethernet.localIP());	
    // Print Subnet Mask
Serial.print(“[INFO] Subnet Mask: ”);
    Serial.println(Ethernet.
subnetMask());
    // Print Gateway
    Serial.print(“[INFO] Gateway: ”);
    Serial.println(Ethernet.gatewayIP());
    // Print DNS
    Serial.print(“[INFO] DNS: ”);
    Serial.println(Ethernet.
dnsServerIP());
}

Finalmente, escribimos las funciones estándar para el programa, es decir H configuración() Y Cinta().

void setup()
{
    Serial.begin(9600);
    // Connect to the internet
    connectToInternet();
}
void loop()
{
    // Nothing much to do here.
}

Si todo funciona, debería ver una salida similar a la que se muestra en la Fig. 3 en la ventana del monitor serie.

Conecte Arduino a Internet a través de Ethernet
Fig. 3: Conexión exitosa de Arduino a Internet a través de Ethernet

Conecte Arduino a Internet a través de WiFi

La segunda opción es conectar tu Arduino a Internet de forma inalámbrica a través de WiFi. Si, como la mayoría de las personas, posee un Arduino Uno u otra placa Arduino que no tiene capacidad de Wi-Fi incorporada, deberá comprar un escudo de Wi-Fi por separado, como el escudo de Ethernet.

Si tiene un Arduino Yún u otra placa Arduino con capacidad inalámbrica incorporada, puede omitir los "Requisitos de hardware" y la descripción en la página siguiente e ir directamente al código.

Arduino Uno y su escudo inalámbrico
Figura 4: Arduino Uno y su escudo inalámbrico

Requisitos de hardware

Necesitarás un Arduino Uno y un Wireless Shield. Cómo conectarlos:

  1. Conecte el escudo inalámbrico a la parte superior del Arduino Uno.
  2. Conecte el Arduino Uno a su computadora a través del puerto USB.

La Fig. 4 muestra el Arduino Uno y el Wireless Shield. Cuando todo esté conectado correctamente, su placa Arduino Uno debería verse como la Fig. 5.

Escudo inalámbrico conectado a Arduino Uno
Figura 5: Escudo inalámbrico conectado a Arduino Uno

Código Arduino para conectarse a internet a través de WiFi

Cuando nos conectamos a Internet a través de Ethernet, usamos la biblioteca externa. Asimismo, para la conexión inalámbrica a Internet, utilizamos la biblioteca externa.

nota: Esta biblioteca debe estar preinstalada en su IDE. Si encuentra errores por algún motivo, descargue esta biblioteca del repositorio oficial de GitHub del proyecto Arduino.

#include <SPI.h>
#include <WiFi.h>

A continuación definimos las constantes y variables requeridas para la conexión inalámbrica. Necesitamos esto para conectarnos al WiFi. SSID y la contraseña del wifi que usaremos. También crearemos una variable WiFiClient para conectarse a Internet.

char ssid[] = “Write WiFi SSID here”;
char pass[] = “Write WiFi password 
here”;
int keyIndex - 0;
int status = WL_IDLE_STATUS;
WiFiClient client;

Ahora definamos algunos métodos personalizados para conectarse y enviar/recibir datos a través de Internet. Primero, vamos a crear el método. conectado a Internet() para conectarse a Internet.

void connectToInternet()
{
   status = WiFi.status();
   if (status == WL_NO_SHIELD)
   {
     Serial.println(“[ERROR] WiFi Shield 
Not Present”);
     while (true);
}
while ( status != WL_CONNECTED)
{
   Serial.print(“[INFO] Attempting 
Connection - WPA SSID: ”);
   Serial.println(ssid);
   status = WiFi.begin(ssid, pass);
}
Serial.print(“[INFO] Connection 
Successful”);
Serial.print(“”);
printConnectionInformation();
Serial.print
ln(“-------------------------”);
Serial.println(“”);
}

Como puede ver en el código anterior, llamamos al método personalizado printConnectionInformation() para mostrar la información sobre nuestra conexión wifi. Así que sigamos adelante y escribamos este método:

void printConnectionInformation()
{
   Serial.print(“[INFO] SSID: ”);
   Serial.println(WiFi.SSID());
   // Print Router’s MAC address
   byte bssid[6];
   WiFi.BSSID(bssid);
   Serial.print(“[INFO] BSSID: ”);
   Serial.print(bssid[5], HEX);
   Serial.print(“:”);
   Serial.print(bssid[4], HEX);
   Serial.print(“:”);
   Serial.print(bssid[3], HEX);
   Serial.print(“:”);
   Serial.print(bssid[2], HEX);
   Serial.print(“:”);
   Serial.print(bssid[1], HEX);
   Serial.print(“:”);
   Serial.println(bssid[0], HEX);
   // Print Signal Strength 
   long rssi = WiFi.RSSI();
   Serial.print(“[INFO] Signal Strength 
   (RSSI) : ”);
   Serial.println(rssi);
   // Print Encryption type
   byte encryption = WiFi.encryption
   Type();
   Serial.print(“[INFO] Encryption Type 
: ”);
   Serial.println(encryption, HEX);
   // Print WiFi Shield’s IP address
   IPAddress ip = WiFi.localIP();
   Serial.print(“[INFO] IP Address : ”);
   Serial.println(ip);
   // Print MAC address
   byte mac[6];
   WiFi.macAddress(mac);
   Serial.print(“[INFO] MAC Address: ”);
   Serial.print(mac[5], HEX);
   Serial.print(“:”);
   Serial.print(mac[4], HEX);
   Serial.print(“:”);
   Serial.print(mac[3], HEX);
   Serial.print(“:”);
   Serial.print(mac[2], HEX);
   Serial.print(“:”);
   Serial.print(mac[1], HEX);
   Serial.print(“:”);
   Serial.println(mac[0], HEX);	
}

Finalmente, escribamos las funciones estándar, es decir configuración() Y Cinta():

void setup()
{
    Serial.begin(9600);
    // Connect to the internet
    connectToInternet();
}
void loop()
{
    // Nothing to do here
}

¡Hurra! Hemos terminado con el código Arduino para conectarse a Internet a través de WiFi. Si no hay errores, la salida en la ventana de su monitor serial debería verse como la salida en la Figura 6.

Conexión exitosa de Arduino a Internet a través de WiFi
Fig. 6: Conexión exitosa de Arduino a Internet a través de WiFi

Este artículo se publicó por primera vez en la edición de diciembre de 2022 de la revista Open Source For You.

Mir HS Quadri es un analista de investigación especializado en inteligencia artificial y aprendizaje automático. Es el fundador de Arkinfo, que se centra en la investigación y el desarrollo de productos tecnológicos utilizando tecnologías de la Nueva Era. Comparte un profundo amor por analizar tendencias tecnológicas y comprender su impacto. Como entusiasta de FOSS, ha contribuido a varios proyectos de código abierto.

Si quieres conocer otros artículos parecidos a Conexión de Arduino a Internet: una guía completa puedes visitar la categoría Electrónica.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir