Etape 21 : Arduino et ethernet adaptateur.
< code > / *
Serveur Web
Un serveur web simple
Circuit :
* Bouclier de Ethernet attaché à goupilles oA, 0 b 0C, 0D
*/
//——————————————————————————————————-
#include < SPI.h >
#include < Ethernet.h > / / saisie d’une adresse MAC et l’adresse IP de votre contrôleur ci-dessous.
la mac de Byte [] = {0 × 90, 0xA2, 0xDA, 0x0D, 0 × 48, 0xD3} ; L’adresse IP sera tributaire de votre réseau local :
attribuer une adresse IP du contrôleur : IPAddress ip(192,168,1,17) ;
IPAddress gateway(192,168,1,1) ;
Adresse IP sous-réseau (255, 255, 255, 0) ; Initialiser la bibliothèque de serveur Ethernet avec le port que vous souhaitez utiliser.
EthernetServer server(80) ;
Dim readString ;
//——————————————————————————————————-
//————————————————-
Tout code supplémentaire pour la déclaration: / / Declare Broche 8 comme une LED, parce que c’est ce qui nous reliera la LED à. Vous pouvez utiliser n’importe quel autre code pin et avez alors pour changer le code PIN.
int mené = 8 ; //————————————————-
//——————————————————————————————————-
void setup()
{
— — —-/ / Extra paramétrer le code :
pinMode (led, sortie) ; NIP sélectionné au contrôle / / — — —-
//——————————————————————————————————-
activer l’impression de données série
Serial.Begin(9600) ; commencer à Ethernet
Ethernet.Begin (mac, ip, passerelle, sous-réseau) ;
Server.Begin() ;
Serial.Print ("serveur est à") ;
Serial.println(Ethernet.localIP()) ;
Serial.println ("contrôleur LED Test 1.0″) ;
}
//——————————————————————————————————-
//——————————————————————————————————- void loop()
{
écoute des clients entrants
EthernetClient client = server.available() ;
Si {(client)
Serial.println ("nouveau client") ; tandis que (client.connected())
{
Si (client.available()) {}
char c = client.read() ; lire la requête HTTP char par char
Si (readString.length() < 100) {//store caractères de chaîne
readString += c ;
Serial.Print(c) ;
Serial.Write(c) ;
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 la requête HTTP est terminée
Si (c == « \n ») {}
Serial.println(ReadString) ; imprimer à serial monitor pour le débogage
//——————————————————————————————————–
Nécessaire pour afficher le Site :
client.println ("HTTP/1.1 200 OK") ; Envoyer cette page nouveau
client.println ("Content-Type : text/html") ;
client.println() ;
client.println ("< HTML >") ;
client.println ("< HEAD >") ; //——————————————————————————————————–
— — —-/ / ce qui est affiché : client.println ("< titre > domotique < /title >") ;
client.println ("< center >") ;
client.println ("</HEAD >") ;
client.println ("< BODY >") ;
client.println ("domotique < H1 > </H1 >") ;
client.println ("< hr/>") ;
client.println ("< center >") ; client.println ("< a href = \" /? lighton\ "\" > tourner sur lumière < /a > ") ;
client.println ("< br/>") ;
client.println ("< br/>") ;
client.println ("< a href = \" /? lightoff\ "\" > tourner Off lumière < /a >< br/> ") ; client.println ("</corps >") ;
client.println ("</HTML >") ; Delay(1) ;
client de s’arrêter
client.Stop() ; //————————————————-
Code qui doit être mis en œuvre :
if(ReadString.IndexOf("?Lighton") > 0) //checks pour le
{
digitalWrite (8, HIGH) ; broche 4 la valeur élevée
Serial.println (« allumée ») ;
}
else {}
if(ReadString.IndexOf("?lightoff") > 0) //checks pour désactiver
{
digitalWrite (8, faible) ; définir la broche 4 faible
Serial.println ("Led éteinte") ;
}
}
chaîne de compensation pour la prochaine lecture
readString = "" ; donner le temps de navigateur web pour recevoir les données
Delay(1) ;
fermer la connexion :
client.Stop() ;
Serial.println ("client disonnected") ; }
}
}
}
}
} < /code >