¿Cómo puedo conectarme a un Arduino usando WiFi?

27

Estoy trabajando en la construcción de una estación meteorológica con energía solar, basada en Arduino. La estación meteorológica consta de un sensor de temperatura y una fotorresistencia, y planeo agregar un anemómetro en el futuro. Me gustaría conectar la estación meteorológica a mi red inalámbrica para poder recuperar los datos del sensor de mi computadora sin tener que tender cables (vivo en un alquiler).

¿Cuáles son las diferentes opciones para conectar el Arduino a WiFi? He mirado los escudos de Ethernet, los escudos de WiFi y algo llamado Xbee, pero no entiendo para qué son cada uno de ellos.

También tengo un enrutador doméstico inalámbrico que podría usar. ¿Es posible conectar mi Arduino Uno al enrutador a través de los enrutadores ethernet o puerto USB y luego recibir datos y enviar comandos al Arduino de forma inalámbrica a través de mi red doméstica? Si es así, ¿cómo se lograría esto?

Actualmente tengo un Arduino Uno desnudo.

jlbnjmn
fuente
44
¿Tienes un escudo de Ethernet?
jfpoilpret
3
Necesita aclarar su pregunta: ¿qué significa "comunicarse con él"? Subir bocetos? Enviar comandos a un boceto? ¿Obtener datos de un boceto?
jfpoilpret
Intenté agregar detalles y contexto a la pregunta. No tengo escudos actualmente.
jlbnjmn
No creo que ninguna revisión del Uno oficial tenga un puerto ethernet. Supongo que debe tener un Arduino Ethernet (que es similar), o tal vez un clon no oficial de algún tipo.
Peter Bloomfield
He editado la pregunta para especificar el puerto ethernet en el enrutador inalámbrico. Entonces la pregunta es: [Arduino +? + (¿Router inalámbrico O?) = Arduino enviando datos a través de mi red inalámbrica].
jlbnjmn

Respuestas:

24

Tiene algunas opciones para conectar su Arduino a la red / Internet.

Ethernet

Algo así como el Arduino Ethernet Shield le permite conectar un cable Ethernet desde la pared o enrutador a su Arduino. Obviamente, la principal limitación es que su dispositivo ahora está atado por el cable. Para uso en exteriores, no haría esto.

Wifi

El Arduino WiFi Shield te permite conectarte a la red WiFi de tu hogar. Esto es igual que Ethernet, excepto que ahora es inalámbrico.

El ESP8266 es una alternativa más barata que, con el firmware predeterminado, tiene la misma funcionalidad que el WiFi Shield. Tenga cuidado de alimentarlo con 3.3V y no 5V como el resto del Arduino. También utiliza niveles lógicos de 3.3V, así que no conecte el pin TX del Arduino directamente al pin RX del ESP; use un divisor de voltaje.

RF

Si tiene muchos sensores u otros dispositivos que necesitan comunicarse entre sí, la mejor opción suele ser un módulo de RF. Tienes muchas opciones aquí, XBee es una de ellas. Consulte la Guía de compra de Sparkfun XBee para ver todas las opciones disponibles. Y eso es solo XBee. Hay muchas otras opciones inalámbricas disponibles, a todo tipo de precios.

Lo que pasa con RF es que ninguno de estos se conectará a Internet. Hará que todos sus dispositivos se comuniquen entre sí o con una estación base, que luego se conectará a la red mediante un módulo WiFi o Ethernet.

Router inalámbrico en serie

Dependiendo del tipo de enrutador inalámbrico que use, puede hacer que Arduino se comunique directamente con él y usarlo como conexión a una red.

Sachleen
fuente
1
En cuanto a la comunicación "RF", también puede utilizar los populares módulos nRF24L01 +. Hay algunas buenas bibliotecas para esto. El problema con el enlace de RF es que necesita tener otro Arduino o Raspberry Pi, etc. funcionando como el "receptor" que luego se conecta a su computadora donde desea almacenar / ver / analizar los datos. Para Wifi ahora también hay escudos CC3000
Mike WP
Mientras investigaba las opciones que proporcionó, me encontré con el Yun. ¿Sería esa una opción más sencilla? Gracias.
jlbnjmn
Tal vez. Nunca lo usé yo mismo. Los escudos no son difíciles de interactuar y pueden ser más baratos.
sachleen
4

Cásate con OpenWrt y tu Arduino

Obtenga un pequeño enrutador compatible con OpenWrt como "TP-Link TL-WR703N", actualícelo con la versión estable actual de OpenWrt y conecte su Arduino al puerto USB del enrutador.

Esta solución es la mitad o menos del costo de los escudos WiFi y tiene mucha más potencia.

... y más barato como un YÙN.

El servidor web de domótica inteligente en el enrutador OpenWRT WR703N conectado a Arduino, en comparación con Raspberry Pi y Ubuntu puede ser un punto de partida para leer sobre esto y su motor de búsqueda favorito encontrará muchos más enlaces sobre cómo casarse con WR703N y Arduinos ...

(!) Consulte https://arduino.stackexchange.com/a/1754/653 también ...

ido
fuente
4

ESP8266 es un módulo wifi barato de $ 5 con conectividad UART, SPI. Esto se puede integrar con Arduino sin problemas, ya sea a través del firmware estándar utilizando comandos AT o escribiendo un firmware personalizado utilizando el SDK proporcionado y GIPO disponible. Para más referencia http://www.esp8266.com/

Suneesh
fuente
3

He estado trabajando con xbee en arduino y raspberry pi durante algunos meses. Si bien tiene sus problemas y peculiaridades, es una gran herramienta en la cadena de comunicación. No es perfecto, pero dado el lado de malla, para mí llega más allá de mi wifi e incluso puede ser más confiable (mi raspberry pi con wifi ocasionalmente se cae, sin embargo, el xbee conectado continúa funcionando en segundo plano.

Específicamente en mi caso, permite una conexión en serie entre mis dispositivos (siendo varios arduinos, un raspberry pi (coordinador) y mi mac (usado principalmente para monitorear pero también ocasionalmente inyectando datos en serie)). En este caso es perfecto. No permite el acceso a Internet o el acceso más allá del marco xbee, pero eso me conviene perfectamente ya que la implementación es tan simple como Serial.print y Serial.read sin sobrecarga de Ethernet.

Madivad
fuente
2

Utilizo Spark Core, que es una plataforma de programación Arduino muy fácil de usar. Esta plataforma fue construida sobre la base de que WiFi debería ser fácil de usar y barato. Incluso puede programar el Spark Core desde cualquier lugar, en cualquier momento.

Aaron Klap
fuente
¿Cómo se compara con XBee en términos de: precio (incluyendo cosas de conexión de Arduino como un escudo), rango de distancia, programación (en Arduino)?
jfpoilpret
2

Puedes probar un Arduino Yun, es como un Uno pero tiene un WiFi directamente en el tablero.

Hay una parte en la "Guía para el Arduino Yún" llamada "Configuración del WiFi a bordo" , que describe cómo configurar el WiFi.

Johan
fuente
1
Hola, ¿podrías editar tu respuesta con más información? OP ya sabe sobre Yun, por lo que su respuesta sería más útil si, por ejemplo, guiara a las personas a cómo usar el chip WiFi en él.
sachleen
1

Lo que quieres es bastante fácil de hacer, y el código ya existe. Pero como lo imaginé, no conectarás el sensor Arduino a tu wifi. En cambio, usarás otro Arduino como tu puerta de enlace de esta manera:

Sensor Arduino: ¿Ubicado afuera, conectado al sensor de temperatura, velocidad del viento, pluviómetro?

Gateway Arduino: ubicado en el interior, con escudo Ethernet Wiznet 5001

El Sensor Arduino y Gateway Arduino se comunican entre sí mediante un transceptor inalámbrico MUY fácil de usar, nRF24L01 +. Los módulos inalámbricos cuestan $ 3 cada uno, y la biblioteca para su uso es muy madura. Todos los datos del sensor se comunican fácilmente a Gateway utilizando esta biblioteca.

El Gateway Arduino w / ethernet actúa como un servidor web, permitiendo que cualquier computadora en su red local abra una página y vea las condiciones actuales. Mire esta página para el código Arduino: http://arduino.cc/en/Tutorial/WebServer

¿Desea también guardar información histórica de temperatura / velocidad del viento, verdad? ¡Esta es la mejor parte! Gateway Arduino puede enviar datos a un servicio como Xively, un servicio gratuito de recolección de datos basado en la web que también le brinda una forma ingeniosa de visualizar / graficar sus datos. Hay un pequeño inconveniente con el uso de Wiznet junto con el módulo nRF24L01. El módulo inalámbrico y el escudo de ethernet usan el mismo bus para comunicarse, así que eche un vistazo a este blog para ver cómo puede usar ambos al mismo tiempo:

http://www.heald.ca/content/arduino-ethernet-nrf24l01-and-pachubecosmxively

Xively también le permite hacer que los datos sean públicos o privados, por lo que puede elegir contribuir con los datos de su estación meteorológica a la comunidad.

Algunas otras notas: Me gustan los módulos nRF24L01 + porque son muy baratos. Los módulos Xbee cuestan más que los propios Arduinos. Puede seguir agregando módulos nRF24L01 + en la casa una vez que establezca una puerta de enlace. El mismo problema de costo existe con el escudo wifi: costoso.

user851
fuente
1

Si desea una alternativa más barata para agregar capacidades WiFi a Arduino, mire el escudo ESP WiFi .

Funciona muy bien con la biblioteca WiFiEsp . El modelo de programación es exactamente el mismo que Arduino WiFi Shield

Twim
fuente
0

Verifique el módulo wifi ESP8266, es un módulo barato y puede controlarse usando cualquier microcontrolador mediante comandos AT, también es Soc para que pueda usarlo de forma independiente.

suxing
fuente
0

El uso del conjunto de cmd ESP8266 AT es difícil y propenso a errores. Le sugiero que actualice el ESP8266-01 como un puente UART-WiFi como se describe aquí ESP8266 Wifi Add para Arduino Made Simple

Tenga en cuenta que la configuración también le permite reconfigurar su configuración wifi sin reprogramar el ESP8266-01

drmpf
fuente
0

El uso del campo ESP8266 es propenso a errores, requiere una actualización que debe actualizarse, se requiere un poco de soldadura y no es apropiado para un entorno de producción. Además, hay problemas con la fuente de alimentación porque necesita tener una fuente de alimentación separada de 3.3V. Es 2016 (!) Y hay muchas más opciones disponibles ahora.

"La placa WiFi UNO es la Arduino UNO con WiFi integrado". http://www.arduino.org/products/boards/arduino-uno-wifi

y

"La Star Otto es la primera placa Arduino con el procesador STM32F469 con WiFi". http://www.arduino.org/products/boards/arduino-star-otto (En realidad, a partir de octubre, todavía no está disponible, "Próximamente").

Tenga en cuenta que estos dos tableros son de la OTRA organización Arduino.

Chiwda
fuente
0

Después de varias pruebas y errores en mi proyecto de IoT, recomendaría trabajar en ESP32 sobre ESP8266 (y también Arduino Uno y Nano), excepto si conoce muy bien el alcance de su proyecto.

Ventajas de ESP32 sobre ESP8266:

  1. RAM más grande, ESP8266: instrucción de 32 KB y datos de usuario de 80 KB, ESP32: 520 KB

Estoy trabajando en un proyecto de IoT e intento autenticar el dispositivo en GCP usando un certificado. El certificado raíz de GCP ya tiene aproximadamente 120 KB, por lo que no cabe en ESP8266. Hay alternativas pero eso complica las cosas.

  1. ESP32 tiene bluetooth y ESP8266 no

Bueno, en algún momento de su proyecto de IoT, es posible que desee que Bluetooth conecte su dispositivo con su teléfono ...

  1. Algunas versiones de ESP32 tienen puertos integrados para la cámara (busque ESP32 CAM)

Con ESP8266 seguramente puede usar una cámara, pero eso implicará más codificación y cableado y un rendimiento potencialmente peor.

Y por fin, intenté conectar un chip wifi con Arduino Uno y Nano, pero encontré algunos errores y problemas con los comandos AT. Por lo tanto, ahora estoy bastante contento con ESP32 porque todo está integrado.

Lewen
fuente