Bonjour,
Je suis un novice en progammation arduino et je participe à un concours dans lequel intervient de la programmation arduino.... ![]()
Voilà mon programme à pour but de se connecter en wifi à internet pour se connecter à une messagerie, checker les mails et si il y a un nouveau mail un programme doit être lancé pour activer des petits servomoteurs...
J'ai plusieurs interrogations ![]()
Premièrement est ce que l'utilisation de la wifi marche pour la carte arduino?
deuxièmement : je souhaiterai savoir comment modifier mon programme pour intégrer un module wifi et savoir si mon programme est bien ?
Je suis un novice soyez compréhensif ![]()
Merci d'avance, voici mon code:
#include <SPI.h>
#include <Ethernet.h>
#include <Arduino.h>
byte mac[] = { 0x90, 0xA2, 0xDA, 0x00, 0x23, 0x5D };
//byte ip[] = { 192,168,1, *** };
byte ip[] = { 109,023,0,257 };
unsigned int localPort = 8888;
//byte server[] = { 193,251,214,115 }; // pop.laposte.net
byte server[] = { 217,70,184,11 }; // mail.gandi.net
short nombreDeMessages;
short ancienNombreDeMessages;
EthernetClient client;
void setup()
{
pinMode (4, OUTPUT);
digitalWrite (4, HIGH);
pinMode (53, OUTPUT);
Serial.begin(9600);
Serial.println("Program started");
Serial.println("Starting network module...");
Ethernet.begin(mac, ip);
nombreDeMessages = ancienNombreDeMessages = -1;
delay(2000);
}
void loop (void)
{
nombreDeMessages = NombreDeMessages ();
Serial.println("connecting...");
if (client.connect(server, 110))
{
Serial.println("connected");
GetResponse1Line ();
SendMsg ("user ****");
GetResponse1Line ();
SendMsg ("pass ****");
GetResponse1Line ();
if (nombreDeMessages == -1)
Serial.println ("Erreur !");
else if (nombreDeMessages != ancienNombreDeMessages)
Serial.println ("mail !");//ici si aprés le "mail!" on met le nom du programme pour faire marcher le distributeur ça marche?
else if (nombreDeMessages = ancienNombreDeMessage)
Serial.println ("Pas de nouveau mail...");//je voudrais ajouter alors on disconnect et on recommence le truc
}
{
return nombreDeMessages = ancienNombreDeMessages = -1;
}
void GetResponse1Line ()
{
char c, prevC;
bool finLigne;
prevC = c = 0;
Serial.print ("<<< ");
do
{
prevC = c;
while (!client.available());
c = client.read();
Serial.print (c);
finLigne = c == 10 && prevC == 13;
}
while (!finLigne);
}
short GetResponseMultiLine ()
{
char c, prevC, prevPrevC;
bool finLigne;
bool finReponse;
short longueurLigne;
short nombreLignes;
prevPrevC = prevC = c = 0;
finReponse = false;
nombreLignes = 0;
Serial.print ("<<< ");
do
{
longueurLigne = 0;
do
{
prevPrevC = prevC;
prevC = c;
while (!client.available());
c = client.read();
Serial.print (c);
finLigne = c == 10 && prevC == 13;
longueurLigne++;
}
while (!finLigne);
nombreLignes++;
finReponse = longueurLigne == 3 && prevPrevC == '.';
}
while (!finReponse);
return nombreLignes;
}
void SendMsg (char *m)
{
client.println (m);
Serial.print (">>> ");
Serial.println (m);
}
//du coup je ne sais pas comment faire ici ...si il n'y a pas de nouveau mail je voudrais créer une boucle sans fin; pour qu'il actualise la messagerie jusqu'a ce qu'il y ait un nouveau mail et alors relancer le programme pour lancer les moteurs etc... pour envoyer les croquettes...
//Merci;)