Comment puis-je me connecter à un Arduino en utilisant le WiFi?


27

Je travaille à la construction d'une station météorologique à base d'Arduino à énergie solaire. La station météo se compose d'un capteur de température et d'une photorésistance, et je prévois d'ajouter un anémomètre à l'avenir. Je souhaite connecter la station météo à mon réseau sans fil afin de pouvoir récupérer les données des capteurs de mon ordinateur sans avoir à faire passer des câbles (j'habite dans une location).

Quelles sont les différentes options pour connecter l'Arduino au WiFi? J'ai regardé les boucliers Ethernet, les boucliers WiFi et quelque chose appelé Xbee, mais je ne comprends pas à quoi servent chacun d'eux.

J'ai également un routeur domestique sans fil que je pourrais utiliser. Est-il possible de connecter mon Arduino Uno au routeur via le port Ethernet ou USB du routeur, puis de recevoir des données et d'envoyer des commandes à l'Arduino sans fil via mon réseau domestique? Si oui, comment cela pourrait-il être accompli?

J'ai actuellement un Arduino Uno nu.


4
Avez-vous un blindage Ethernet?
jfpoilpret

3
Vous devez clarifier votre question: que signifie «communiquer avec elle»? Télécharger des croquis? Envoyer des commandes à un croquis? Obtenir des données à partir d'un croquis?
jfpoilpret

J'ai essayé d'ajouter des détails et du contexte à la question. Je n'ai actuellement aucun bouclier.
jlbnjmn

Je ne pense pas que toute révision de l'Uno officielle ait un port Ethernet. Je suppose que vous devez avoir un Arduino Ethernet (qui est similaire), ou peut-être un clone non officiel d'une sorte?
Peter Bloomfield

J'ai édité la question pour spécifier le port Ethernet sur le routeur sans fil. La question est donc: [Arduino +? + (Routeur sans fil OU?) = Arduino envoie des données sur mon réseau sans fil].
jlbnjmn

Réponses:


24

Vous avez quelques options pour connecter votre Arduino au réseau / Internet.

Ethernet

Quelque chose comme le bouclier Ethernet Arduino vous permet de brancher un câble Ethernet du mur ou du routeur à votre Arduino. De toute évidence, la principale limitation est que votre appareil est désormais attaché par le câble. Pour une utilisation en extérieur, je ne ferais pas ça.

Wifi

Le Arduino WiFi Shield vous permet de vous connecter à votre réseau WiFi domestique. C'est exactement comme l'Ethernet, sauf qu'il est désormais sans fil.

L' ESP8266 est une alternative moins chère qui, avec le firmware par défaut, a les mêmes fonctionnalités que le WiFi Shield. Faites attention à l'alimenter avec 3,3 V et non 5 V comme le reste de l'Arduino. Il utilise également des niveaux logiques de 3,3 V, ne connectez donc pas la broche TX de l'Arduino directement à la broche RX de l'ESP; utilisez un diviseur de tension.

RF

Si vous avez beaucoup de capteurs ou d'autres appareils qui doivent communiquer entre eux, la meilleure option est généralement un module RF. Vous avez ici de nombreuses options, XBee étant l'une d'entre elles. Consultez le Guide d'achat du Sparkfun XBee pour consulter toutes les options disponibles. Et c'est juste XBee. Il existe de nombreuses autres options sans fil disponibles, à toutes sortes de prix.

Le truc avec RF, c'est qu'aucun d'entre eux ne se connecte à Internet. Tous vos appareils communiqueront entre eux ou avec une station de base, qui sera ensuite connectée au réseau par un module WiFi ou Ethernet.

Routeur sans fil série

Selon le type de routeur sans fil que vous utilisez, vous pouvez demander à l'Arduino de communiquer directement avec lui et de l'utiliser comme connexion à un réseau.


1
Quant à la communication "RF", vous pouvez également utiliser les modules populaires nRF24L01 +. Il existe de bonnes bibliothèques pour cela. Le problème avec la liaison RF est que vous devez avoir un autre Arduino ou Raspberry Pi etc. fonctionnant comme le "récepteur" qui est ensuite connecté à votre ordinateur où vous souhaitez stocker / visualiser / analyser les données. Pour le Wifi, il y a maintenant aussi des boucliers CC3000 disponibles adafruit.com/products/1534
Mike WP

En recherchant les options que vous avez fournies, je suis tombé sur le Yun. Serait-ce une option plus simple? Merci.
jlbnjmn

Peut être. je ne l'ai jamais utilisé moi-même. Les boucliers ne sont pas difficiles à interfacer et peuvent être moins chers.
sachleen

4

Mariez OpenWrt et votre Arduino

Obtenez un petit routeur compatible OpenWrt comme "TP-Link TL-WR703N", flashez-le avec la version stable actuelle d'OpenWrt et connectez votre Arduino au port USB du routeur.

Cette solution représente la moitié ou moins du coût des écrans WiFi et a beaucoup plus de puissance.

... et moins cher en YÙN.

Le serveur Web domotique intelligent sur le routeur OpenWRT WR703N interfacé à Arduino, par rapport à Raspberry Pi et Ubuntu peut être un point de départ pour en savoir plus et votre moteur de recherche préféré trouvera beaucoup plus de liens sur le mariage entre WR703N et Arduinos ...

(!) Veuillez également consulter /arduino//a/1754/653 ....


4

ESP8266 est un module wifi à 5 $ bon marché avec connectivité UART et SPI. Cela peut être intégré à Arduino de manière transparente soit via le firmware d'origine en utilisant les commandes AT, soit en écrivant un firmware personnalisé en utilisant le SDK fourni et GIPO disponible. Pour plus de référence http://www.esp8266.com/


3

Je travaille avec xbee sur l'arduino et la framboise pi depuis quelques mois maintenant. Bien qu'il ait ses problèmes et ses bizarreries, c'est un excellent outil dans la chaîne de communication. Ce n'est pas parfait mais étant donné le côté maillé de celui-ci, pour moi, il va plus loin que mon wifi et peut même être plus fiable (mon raspberry pi avec wifi tombe parfois en panne, mais le xbee connecté continue de fonctionner en arrière-plan.

Plus précisément dans mon cas, il permet une connexion série entre mes appareils (plusieurs Arduinos, un Raspberry Pi (coordinateur) et mon Mac (utilisé principalement pour la surveillance mais aussi pour l'injection occasionnelle de données série)). Dans ce cas, c'est parfait. Il ne permet pas l'accès à Internet ou l'accès au-delà du cadre xbee, mais cela me convient parfaitement car la mise en œuvre est aussi simple que Serial.print et Serial.read sans surcharge Ethernet.


2

J'utilise Spark Core qui est une plate-forme de programmation Arduino très facile à utiliser. Cette plate-forme a été construite sur le principe que le WiFi doit être facile à utiliser et bon marché. Peut même programmer le Spark Core de n'importe où, à tout moment.


Comment se compare-t-il à XBee en termes de: prix (y compris les éléments de connexion Arduino tels qu'un bouclier), plage de distance, programmation (sur Arduino)?
jfpoilpret

2

Vous pouvez essayer un Arduino Yun, c'est comme un Uno mais il a un WiFi directement sur la carte.

Il y a une partie dans le "Guide de l'Arduino Yún" appelée "Configurer le WiFi embarqué" , qui décrit comment configurer le WiFi.


1
Bonjour, pourriez-vous modifier votre réponse avec plus d'informations. OP connaît déjà le Yun, donc votre réponse serait plus utile si, par exemple, elle guidait les gens sur la façon d'utiliser la puce WiFi dessus.
sachleen

1

Ce que vous voulez est assez facile à faire, et le code existe déjà. Mais de la façon dont je l'invente, vous ne connecterez pas le capteur Arduino à votre wifi. Au lieu de cela, vous utiliserez un autre Arduino comme passerelle comme ceci:

Capteur Arduino: situé à l'extérieur, connecté au capteur de température, à la vitesse du vent, au pluviomètre?

Passerelle Arduino: située à l'intérieur, avec blindage Ethernet Wiznet 5001

Le capteur Arduino et la passerelle Arduino se parlent en utilisant un émetteur-récepteur sans fil TRÈS facile à utiliser, nRF24L01 +. Les modules sans fil coûtent 3 $ chacun et la bibliothèque à utiliser est très mature. Toutes les données du capteur sont facilement communiquées à la passerelle à l'aide de cette bibliothèque.

La passerelle Arduino avec Ethernet agit comme un serveur Web, permettant à n'importe quel ordinateur de votre réseau local d'ouvrir une page et de visualiser les conditions actuelles. Regardez cette page pour le code Arduino: http://arduino.cc/en/Tutorial/WebServer

Vous souhaitez également enregistrer les informations historiques de température / vitesse du vent, n'est-ce pas? C'est la meilleure partie! Le Gateway Arduino peut pousser des données vers un service comme Xively, un service gratuit de collecte de données sur le Web qui vous donne également un moyen astucieux de visualiser / représenter graphiquement vos données. Il y a un petit problème avec l'utilisation de Wiznet avec le module nRF24L01. Le module sans fil et le blindage Ethernet utilisent tous deux le même bus pour communiquer, alors jetez un œil à ce blog pour voir comment vous pouvez utiliser les deux en même temps:

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

Xively vous permet également de rendre ces données publiques ou privées, vous pouvez donc choisir de fournir vos données de station météo à la communauté.

Quelques autres notes: J'aime les modules nRF24L01 + parce qu'ils sont très bon marché. Les modules Xbee coûtent plus cher que les Arduinos eux-mêmes. Vous pouvez continuer à ajouter des modules nRF24L01 + autour de la maison une fois que vous avez établi une passerelle. Le même problème de coût existe avec le bouclier wifi - cher.


1

Si vous voulez une alternative moins chère pour ajouter des capacités WiFi à Arduino, regardez bouclier ESP WiFi .

Cela fonctionne très bien avec la bibliothèque WiFiEsp . Le modèle de programmation est exactement le même que le Arduino WiFi Shield


0

Vérifiez le module wifi ESP8266, c'est un module bon marché et peut être contrôlé à l'aide de n'importe quel microcontrôleur par des commandes AT, c'est aussi Soc pour que vous puissiez l'utiliser de manière autonome.


0

L'utilisation de l'ensemble cmd ESP8266 AT est difficile et sujette aux erreurs. Nous vous suggérons de reflasher l'ESP8266-01 comme un pont UART-WiFi comme décrit ici ESP8266 Wifi Add on pour Arduino Made Simple

Notez que la configuration vous permet également de reconfigurer vos paramètres wifi sans reprogrammer l'ESP8266-01


0

L'utilisation du champ ESP8266 est sujette aux erreurs, nécessite une mise à jour qui doit être flashée, une soudure requise et n'est pas appropriée pour un environnement de production. En outre, il y a des problèmes avec l'alimentation car vous devez avoir un alimentation séparée de 3,3 V. C'est 2016 (!) Et il y a beaucoup plus d'options disponibles maintenant.

"La carte WiFi UNO est l'Arduino UNO avec WiFi intégré." http://www.arduino.org/products/boards/arduino-uno-wifi

et

"La Star Otto est la première carte Arduino dotée du processeur STM32F469 avec WiFi." http://www.arduino.org/products/boards/arduino-star-otto (En fait, en octobre, il n'est toujours pas disponible, "Coming Soon").

Veuillez noter que ces deux cartes proviennent de l’ AUTRE organisation Arduino.


0

Après plusieurs essais et erreurs dans mon projet IoT, je recommanderais de travailler sur ESP32 sur ESP8266 (et aussi Arduino Uno & Nano), sauf si vous connaissez très bien la portée de votre projet.

Avantages de l'ESP32 par rapport à l'ESP8266:

  1. RAM plus grande, ESP8266: instruction 32 Ko et données utilisateur de 80 Ko, ESP32: 520 Ko

Je travaille sur un projet IoT et j'essaie d'authentifier l'appareil sur GCP à l'aide d'un certificat. Le certificat racine de GCP fait déjà environ 120 Ko, il ne rentre donc pas dans ESP8266. Il existe des alternatives mais cela complique les choses.

  1. ESP32 a bluetooth et ESP8266 pas

Eh bien, à un moment donné de votre projet IoT, vous voudrez peut-être que Bluetooth connecte votre appareil à votre téléphone ...

  1. Certaines versions d'ESP32 ont des ports intégrés pour la caméra (recherchez ESP32 CAM)

Avec ESP8266, vous pouvez sûrement utiliser un appareil photo, mais cela impliquera plus de codage et de câblage et des performances potentiellement moins bonnes.

Et enfin, j'ai essayé de câbler une puce wifi avec Arduino Uno & Nano mais j'ai rencontré des bugs et des problèmes avec les commandes AT. Donc maintenant je suis assez content de ESP32 car tout est intégré.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.