Puis-je reprogrammer mon Arduino via un bouclier wifi?

9

Mon Arduino est connecté à des lumières au-dessus de mon aquarium et je peux les contrôler à partir d'un navigateur Web sur mon LAN. Je me demande si je peux modifier le programme sur l'Arduino sans avoir à le brancher sur une machine via USB ce qui serait un peu gênant. Il doit y avoir un moyen de profiter de la connexion wifi.

J'ai utilisé le bouclier wixel de Pololu pour envoyer des programmes sans fil (il agit simplement comme une radio de port série) mais c'est une technologie différente de mon bouclier WiFi.

Quelqu'un connaît-il un moyen de le faire via le WiFi? Peut-être que si je télécharge un nouveau code dans la mémoire flash dans le bouclier WiFi, il pourrait alors démarrer à partir de la mémoire flash? Je ne sais pas comment faire cela ou si c'est même possible.

Peut-être qu'une approche complètement différente serait plus simple?

Poulpe
la source

Réponses:

8

C'est possible, en théorie, mais pas banal en pratique. Le morceau de code responsable du chargement de votre nouveau croquis sur l'Arduino s'appelle le chargeur de démarrage . Toutes les versions populaires des chargeurs de démarrage que je connais sont basées sur série / USB. Afin de charger un croquis sur le bouclier WiFi, le chargeur de démarrage devrait être réécrit pour communiquer avec le bouclier WiFi au lieu de série. Cela prendrait un certain travail, mais pas impossible dans la pratique.

Notez que vous devrez le faire, que vous stockiez l'esquisse sur le bouclier WiFi (ce qui, je pense, serait difficile: je ne suis pas sûr que cela soit possible) ou que vous téléchargiez l'esquisse directement sur votre Arduino: le le chargeur de démarrage devra communiquer avec le bouclier pour lire les données d'esquisse.


Il existe un moyen de reprogrammer facilement votre Arduino sans fil, et c'est Bluetooth. Vous devrez vous procurer un module Bluetooth (je ne sais pas si un bouclier Bluetooth fonctionnera) et le connecter aux ports série matériels . Le chargeur de démarrage qui se trouve sur votre Arduino peut déjà parler en série, ce problème est donc résolu. Vous devrez cependant (potentiellement) résoudre deux autres problèmes:

  • Les modules Bluetooth les moins chers que vous trouvez sur Ebay sont de 3,3 V. Cela signifie que vous devrez leur fournir une alimentation de 3,3 V, et la ligne d'envoi de votre Arduino devra être décalée en tension de 5 V à 3,3 V. Vous pouvez résoudre le premier sous-problème (alimentation) en achetant un module Bluetooth conçu pour la communication 5V, ou si votre Arduino a une alimentation 3V3 en l'utilisant pour alimenter le module Bluetooth. Un module prêt pour 5V résout également le deuxième problème; Alternativement, vous pouvez changer la tension de la sortie 5V de votre Arduino en utilisant l'une des techniques décrites dans cette question .
  • Afin de programmer votre Arduino automatiquement, l'Arduino doit être réinitialisé juste avant le téléchargement du croquis: lorsque l'Arduino fonctionne normalement, le chargeur de démarrage n'est pas actif. La réinitialisation de l'Arduino active le chargeur de démarrage, permettant le téléchargement de nouveaux croquis. sur l'Arduino USB utilise intelligemment la ligne DTR pour réinitialiser l'appareil. Cependant, la plupart des modules série Bluetooth ne fournissent que des sorties TS / RX, vous devrez donc probablement réinitialiser l'Arduino manuellement pour télécharger un croquis, à moins que vous ne trouviez une sortie de signal sur le module Bluetooth que vous pouvez rassembler pour vous connecter à un circuit de réinitialisation .
angelatlarge
la source
2

Aujourd'hui, j'ai découvert un produit qui peut y parvenir: l'ESP8266. Il vous permettra de programmer / reprogrammer votre arduino via une connexion wifi. Différentes sociétés produisent des versions de la puce sur divers arrangements de carte de dérivation. Plus précisément, il peut devenir un AVRISP WiFi pour un Arduino.

Vous pouvez également programmer l'ESP8266 lui-même avec le SDK Arduino et il a beaucoup de puissance propre.

Voir ici sur whatimadetoday (pas mon article) pour une bonne introduction sur la façon de commencer avec l'ESP8266 et le SDK Arduino. Une fois le SDK configuré pour programmer l'ESP8266, vous pouvez parcourir les exemples de l'IDE et trouver «Arduino_Wifi_AVRISP».

Vous pouvez trouver le tableau pour des prix qui varient d'environ 5 à 15 $.

Poulpe
la source