Internet : allumer une led

Led_Over_Internet

1) Matériel :

  • Une carte Arduino, dans notre cas une Leonardo,
  • Un « shield » Ethernet,
  • Une Box Internet,
  • Une Led et une résistance,
  • Un câble USB (pour le chargement des programmes dans la carte Arduino),
  • Un câble réseau pour la connexion du « shield »,
  • Éventuellement une alimentation externe pour alimenter la carte Arduino (7 à 12V), qui alimentera elle-même la carte Ethernet.

2) Assemblage du « shield » :

Juste clipsez le « shield » sur la carte Arduino, la LED sera connectée, patte longue (positive) sur la borne « Digital 2 » (via une résistance de 300 Ω à 2KΩ) et la patte négative  sur la Masse « GND ».

3)  Ecriture d’un premier programme  :

a) Préparation de la connexion internet :

Il faut assigner à notre « shield » internet arduino une adresse IP fixe. Pour cela il convient de déterminer une adresse M.A.C. (Media Access Control) destinée à identifier physiquement la carte. N’importe quel groupe de 6 octets inscrit en hexadécimal peut être utilisé à condition de ne pas correspondre à un dispositif physique de votre réseau local. Par soucis d’homogénéité avec mon réseau j’ai choisi l’adresse MAC 00:AD:BE:EF:FE:50 et l’adresse IP 192:168:0:50

Il faut ensuite indiquer à votre routeur ces informations. Comme j’utilise la FreeBox, Révolution, il suffit de se connecter à l’interface et de sélectionner la ligne routeur

Images intégrées 1

Puis d’assigner une adresse ipFixe dans la section « bauds permanents » :

Images intégrées 2

Pour pouvoir accéder sur internet, il faut ouvrir un port :

Muon2

b) Ecriture du programme :

Le programme est disponible ici

c) Lancement :

Téléversez, la fenêtre de debug devra s’afficher comme si dessous : (pour l’activer Ctrl+Maj+M) :

Muon3

Si vous n’obtenez pas l’adresse IP appuyez sur le bouton Reset du Shield (voire de la carte Arduino).

Pour activer la LED, saisissez dans un navigateur l’adresse IP soit locale :  http://192.168.0.50/ Soit Internet : <Adresse_IP_De_Votre_Box>:<Le_port_Choisi>. La Led clignotera tant que la page du navigateur sera active et la fenêtre de debug affichera :

Muon4

Annexe :

/* WebServer_Led_V0_2
Basé sur l’exemple WebServer
utilisant un Ethernet shield.
Circuit:
* Ethernet shield rattaché via le port SPI à une Arduinon LEONARDO
* Une LED branchée sur les broches DIGITAL 2 (+) et la Masse (-) GND
created 18 Dec 2009
by David A. Mellis
modified 22 Mars 2013
by AndroLogiciels
*/
#include <SPI.h>
#include <Ethernet.h>
// Déclaration des adresses MAC et IP
byte mac[] = {
0x00, 0xAD, 0xBE, 0xEF, 0xFE, 0x50 };
IPAddress ip(192,168,0,50);
// Initialize the Ethernet server library
// with the IP address and port you want to use
// (port 80 is default for HTTP):
EthernetServer server(80);
// — constantes des broches —
const int LED=2;
void setup() {
// Open serial communications and wait for port to open:
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for Leonardo only
}
// start the Ethernet connection and the server:
Ethernet.begin(mac, ip);
server.begin();
Serial.print(« server is at « );
Serial.println(Ethernet.localIP());
pinMode(LED, OUTPUT); //met la broche en sortie
}
void loop() {
// listen for incoming clients
EthernetClient client = server.available();
if (client) {
Serial.println(« new client »);
// an http request ends with a blank line
boolean currentLineIsBlank = true;
while (client.connected()) {
if (client.available()) {
char c = client.read();
Serial.write(c);
// if you’ve gotten to the end of the line (received a newline
// character) and the line is blank, the http request has ended,
// so you can send a reply
if (c == ‘\n’ && currentLineIsBlank) {
// send a standard http response header
client.println(« HTTP/1.1 200 OK »);
client.println(« Content-Type: text/html »);
client.println(« Connnection: close »);
client.println();
client.println(« <!DOCTYPE HTML> »);
client.println(« <html> »);
// add a meta refresh tag, so the browser pulls again every 5 seconds:
client.println(« <meta http-equiv=\ »refresh\ » content=\ »5\ »> »);
digitalWrite(LED,HIGH); // met la broche au niveau haut (5V) – allume la LED
client.println(« </html> »);
break;
}
if (c == ‘\n’) {
// you’re starting a new line
currentLineIsBlank = true;
}
else if (c != ‘\r’) {
// you’ve gotten a character on the current line
currentLineIsBlank = false;
}
}
}
// give the web browser time to receive the data
delay(2000);
// close the connection:
client.stop();
Serial.println(« client disonnected »);
digitalWrite(LED,LOW); // met la broche au niveau bas (0V) – éteint la LED
}
}

Votre commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l’aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l’aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.

Articles récents
Commentaires récents
fatima dans Bienvenue !
AdminDroid dans Bienvenue !
fatima dans Bienvenue !
Archives
Catégories
%d blogueurs aiment cette page :