Je souhaiterais ajouter une connectivité wifi à un projet qui tourne sur une carte Arduino Mega.
Il s'agit de reçevoir des requetes Http venant d'un smartphone ou pc pour contrôler une plateforme mobile.
Exemple : //192.168.43.132/F1/ (F1 = avancer)
J'ai jusqu'à présent utilisé une carte Arduino Uno Wifi qui ne fonctionne plus en plus d'être vieille et non suivie.
Il y a-t-il un modèle de shield Wifi qui vous a particulièrement rendu heureux ?
Je souhaiterais ajouter une connectivité wifi à un projet qui tourne sur une carte Arduino Mega.
Il s'agit de reçevoir des requetes Http venant d'un smartphone ou pc pour contrôler une plateforme mobile.
Exemple : //192.168.43.132/F1/ (F1 = avancer)
J'ai jusqu'à présent utilisé une carte Arduino Uno Wifi qui ne fonctionne plus en plus d'être vieille et non suivie.
Il y a-t-il un modèle de shield Wifi qui vous a particulièrement rendu heureux ?
Merci pour vos conseils
bonjour
pourquoi absolument un shield ?
un module esp8266 ou esp32 devrait certainement faire l'affaire, voir peut etre meme remplacer le mega2560
expose plus ton application actuelle
Merci pour votre réponse.
Il s'agit d'un projet de robot sur 2 roues.
La carte assure la gestion des composants suivants :
une carte contrôleur des 2 moteurs DC
2 encodeurs sur les moteurs
3 capteurs ultrasons
un accéléromètre
4 boutons poussoirs
4 leds
1 buzzer
1 afficheur lcd
1 lecteur de carte SD
la réception des commandes en wifi
Le projet est déjà opérationnel excepté que la carte Arduino Wifi est hors service. Elle était chargée de recevoir les commandes en wifi et les transmettre à la Mega.
dakota99:
Merci pour votre réponse.
Il s'agit d'un projet de robot sur 2 roues.
La carte assure la gestion des composants suivants :
une carte contrôleur des 2 moteurs DC
2 encodeurs sur les moteurs
3 capteurs ultrasons
un accéléromètre
4 boutons poussoirs
4 leds
1 buzzer
1 afficheur lcd
1 lecteur de carte SD
la réception des commandes en wifi
Le projet est déjà opérationnel excepté que la carte Arduino Wifi est hors service. Elle était chargée de recevoir les commandes en wifi et les transmettre à la Mega.
Merci
Ok
poste ton programme d'origine mega que l'on regarde comment est/etait articulé la gestion wifi
La réception des requêtes http est gérée par le Arduino Uno wifi que je souhaite remplacer.
La commande reçue est ensuite envoyée au Mega pour traitement.
#include <SoftwareSerial.h>// import the serial library #include <stdio.h> #include <stdlib.h> #include <ArduinoWiFi.h> #include <Wire.h>
char txc[20];
String readString;
// ====================================
void setup()
{Serial.begin(9600);
Serial.println("Setup");
Wifi.begin();
Wire.begin(4); // Rejoindre le bus à l'adresse #4
readString = "";
Serial.println("Arduino Wifi Started");
}
void loop()
{
while(Wifi.available()){proc1(Wifi);}
} // end loop
Il y a-t-il un modèle de shield Wifi qui vous a particulièrement rendu heureux ?
Pas encore vu passer d'utilisateur de shiled WiFi 'heureux' sur ce forum !!
Par contre a plusieurs reprises des utlisateurs de shields WiFi ont exposé leurs problèmes avec des 'shieds ESP8266' mal conçus
3 solutions pour rester proche d'Arduino :
-transposer l'application sur ESP8266 ou ESP32 (en conservant l'IDE Arduino). pas de carte Arduino.
Dans cette voie la gestion des 2 encodeurs sera probablement le 'point chaud'
-transposer l'application sur une carte Arduino MKR WiFi 1010 (récente) ou la UNO WiFi Rev2 (imminente)... en espérant que ces deux cartes aient une durée de vie plus longue que la UNO WiFi retirée du circuit
-associer à la carte Mega un ESP8266 ou un ESP32 (bien câblés et alimentés et flashés avec un firmware AT) en 'modem WiFi'. Avec une carte Mega un port serie matériel est disponible pour l'ESP .....çà arrange les choses.
Reste a alimenter l'ESP (500mA conseillés) et réaliser une adaptation 4V/3,3V pour l'entrée Rx de l'ESP
La solution #3 (associer à la carte Mega un ESP8266) est sans doute la plus proche de ce que vous avez aujourd'hui vu que c'est ce que faisait l'arduino UNO WiFi (un ATmega328P avec un ESP8266 en guise de Module Wi-Fi)
ça fait en gros 2 processeurs tournant en parallèle, exécutant des programmes différents et communicant entre eux par voie série I2C qui est assez simple à mettre en oeuvre
ce shield est côuteux, peu ou pas employé sur ce forum
Il y a l'avant et l'après ESP !
Nombre de puces WiFI d'origines diverses : Microchip, Texas, Atmel .... et les modules qui les emploient, ont été reléguées au second plan . Elles apportaient les mêmes fonctionalités à un coût supérieur et avaient elles aussi leurs bugs rarement corrigés
issu de DFRobot cette carte est assortie d'une doc modeste.....bien utile car il faudra 'mettre les mains dans le cambouis'.... ce n'est pas si 'plug and play' que ça en a l'air !! ne serait-ce que la liaison série avec la carte Arduino.
Sparkfun fait un shield WiFi avec ESP8266 nettement moins cher
al1fch:
ce shield est côuteux, peu ou pas employé sur ce forum
Il y a l'avant et l'après ESP ! Nombre de puces WiFI d'origines diverse Microchip, Texas, Atmel .... et les modules qui les emploient, ont été reléguées au second plan . Elles apportaient les mêmes fonctionalités à un coût supérieur et avaient elles aussi leurs bugs rarement corrigés
issu de DFRobot cette carte est assortie d'une doc modeste.....bien utile car il faudra 'mettre les mains dans le cambouis'.... ce n'est pas si 'plug and play' que ça en a l'air !! ne serait-ce que la liaison série avec la carte Arduino.
Sparkfun fait un shield WiFi avec ESP8266 nettement moins cher
+1
pour illustration qui rappellera des déjà vieux souvenirs à certains ici
Vu les contraintes sur les pins et timing, pour ne pas avoir à tout repenser à mon avis la solution de 2 Arduinos séparés (et communicants) est la plus simple
Oui absolument, l'objectif étant de dépanner ce robot rapidement. (il est utilisé comme mascotte dans des classes de maternelles. Et la rentrée des classes a déjà eu lieu )
Vos différents commentaires m'amènent à la conclusion qu'un nombre d'heures conséquent sera nécessaire pour que cela fonctionne comme avant ....
Donc pour l'instant j'essaie de trouver une carte Arduino Uno wifi d'occasion. Même si ce n'est pas une carte de premier choix, elle a quand même fait son job 2 ans.
C'est une carte 100% ESP8266, au format physique UNO et programmable sous l'environnement ARDUINO une fois ajoutée l'extensiion. Porter l'application sur ce microcontrolleur représente un travail conséquent vu la liste des périphériques à gérer.
Cette carte que tu as déniché, J-M-L semble voisine de la UNO Wifi retirée
je la vois aussi içi chez Bangood un poil plus décrite, idem chez Aliexpress
Avec un schéma ce serait encore mieux. on peut espérer la présence d'au moins un pont diviseur pour le RX ESP en plus d'une alimentation 3,3V robuste.
Une différence cependant avec la UNO WIFI : la liaison ESP-Mega 328 en 'fonctionnement normal' ne semble pas passer par un UART additionnel (UART I2C/SPI). Il y a donc une (petite) adaptation de l'application à réaliser.
Un ensemble de switch permet de faire des commutations au niveau des liaisons série pour établir tel ou tel chemin. et eviter le softserial. Elle parait donc assez souple d'utilisation, 'tous les modules peuvent fonctionner séparément'
al1fch:
Cette carte que tu as déniché, J-M-L semble voisine de la UNO Wifi retirée
--> petit bug dans vos liens
oui bien moins cher en chine mais si j'ai bien compris le besoin était urgent pour l'école, donc pas forcément le temps d'attendre l'arrivée par bateau à rame pour sauver 7 ou 8 euros
--> il semblerait que en mode opérationnel on fasse "ATmega328 <-> ESP8266" (restera à vérifier si c'est sur serial ou I2C) et que pour télécharger les codes on prenne "USB <-> ATmega328" pour la partie "Arduino" et "USB <-> ESP8266 " pour le code sur l'ESP
Super merci pour ces liens. Je vais commander un Uno et un Mega pour tester.
entretemps j'ai trouvé un Arduino Uno wifi d'occasion que je vais recevoir.
J'ai aussi testé WIFI Shield V3 PCB Antenna SKU:TEL0078
Mais évidemment cela ne va pas tout seul.
Je l'ai connecté au réseau wifi du bâtiment et lui ai imposé une adresse IP statique.
Le ping fonctionne.
Mais je ne vois pas dans la doc comment lui envoyer une requête http avec une commande.
Et dans quel mode je dois le mettre pour ce faire : AP+STA ou AP mode ?
sur l'Arduino Uno wifi j'envoie une requête : 192.168.0.99/arduino/digital/F1
mais dans ce cas cette syntaxe ne fonctionne pas.