Étape 3: Connecter l’arduino à internet
À l’aide de l’exemple de serveur Web, il est vraiment facile à mettre vos données sur internet.Le croquis précédent modifié pourrait être dans l’ordre de requête http acept :
#include
#include
#include
dht11 DHT11 ;
#define nSensores 3
int puertos [nSensores] ;
flotteur fHumedades [nSensores] ;
flotteur fTemperaturas [nSensores] ;
int iNVisitas = 0 ;
Entrez une adresse MAC et l’adresse IP de votre contrôleur ci-dessous.
L’adresse IP sera tributaire de votre réseau local :
la mac de Byte [] = {0xDE, 0xAD, 0xBE, 0xEF, 0xEE, 0xEE} ;
la propriété intellectuelle de Byte [] = {192,168,1, 177} ;
Initialiser la bibliothèque de serveur Ethernet
avec l’adresse IP et le port que vous souhaitez utiliser
(le port 80 est par défaut pour HTTP) :
Serveur server(666) ;
void setup()
{
Démarrez la connexion Ethernet et le serveur :
Ethernet.Begin (mac, ip) ;
Server.Begin() ;
Serial.Begin(115200) ;
Puertos = {2,3,4} ;
}
Sub getdata(int iIndice)
{
chk int = DHT11.read(puertos[iIndice]) ;
fHumedades [iIndice] =-1 ;
fTemperaturas [iIndice] =-1 ;
Serial.Print (« capteur ») ;
Serial.Print(iIndice) ;
Serial.Print("") ;
commutateur (chk)
{
case 0 :
fHumedades [iIndice] = (float) DHT11.humidity ;
Serial.Print (fHumedades [iIndice], 2) ;
Serial.Print ("%") ;
fTemperaturas [iIndice] = (float) DHT11.temperature ;
Serial.Print (fTemperaturas [iIndice], 2) ;
Serial.println ("o C") ;
rupture ;
affaire -1 : Serial.println (« Checksum error") ; rupture ;
affaire -2 : Serial.println ("erreur de délai d’expiration") ; rupture ;
par défaut : Serial.println ("erreur inconnue") ; rupture ;
}
}
void loop()
{
écoute des clients entrants
Client client = server.available() ;
Si {(client)
une requête http se termine par une ligne vide
Boolean currentLineIsBlank = true ;
tandis que (client.connected()) {}
Si (client.available()) {}
char c = client.read() ;
Si vous avez obtenu à la fin de la ligne (a reçu un saut de ligne
caractère) et la ligne est vide, la requête http est terminée,
ainsi vous pouvez envoyer une réponse
Si (c == ' ' & & currentLineIsBlank) {}
Envoyer un en-tête de réponse http standard
client.println ("HTTP/1.1 200 OK") ;
client.println ("Content-Type : text/html") ;
client.println() ;
la valeur de chaque broche d’entrée analogique
pour (int i = 0; j’ai / / for (int analogChannel = 0; analogChannel < 6; analogChannel ++) {
client.Print (« capteur ») ;
client.Print(i) ;
client.Print(":") ;
if(fHumedades[i]==-1)
client.Print ("erreur leyendo el sensor") ;
d’autre
{
client.Print (fHumedades [i], 2) ;
client.Print ("%") ;
client.Print (fTemperaturas [i], 2) ;
client.println ("o C") ;
}
client.println("
");
}
client.Print((iNVisitas++)/2) ;
client.println ("visitas
");
rupture ;
}
if (c == ' ') {
vous commencez une nouvelle ligne
currentLineIsBlank = true ;
}
ElseIf (c! = "") {}
vous avez obtenu un personnage sur la ligne courante
currentLineIsBlank = false ;
}
}
}
donner le temps de navigateur web pour recevoir les données
Delay(1) ;
fermer la connexion :
client.Stop() ;
}
d’autre
{
pour (int i = 0; i getdata(i) ;
Delay(200) ;
}
}
Lorsque j’utilise ma configuration réseau appropriée. Pour pouvoir utiliser votre configuration, seulement changer les valeurs mac et ip.
Vous pouvez vous connecter à mon serveur propre arduino afin d’afficher la température ambiante de mon serveur