SERVEUR de LED pour le Shield Ethernet (4 / 5 étapes)

Étape 4: Le programme

L’esquisse de l’arduino est basé sur l’exemple de webserver.pde avec quelques modifications. Une copie de mon croquis est post ci-dessus pour le téléchargement facile.
J’ai utiliser quelques trucs pour charger une page web avec plus d’informations. Le code HTML est stocké dans la mémoire de programme, donc, nous avons assez de RAM pour les autres choses. Des questions sur le code il suffit de demander.

Astuce : après avoir Télécharger le fichier, renommez-le de .tmp .ino si nécessaire

Voici le code :

#include < Ethernet.h >
#include < SPI.h >
#include < avr/pgmspace.h >

prog_char string_0 [] PROGMEM = "< html >< corps >< h2 > Controle de LED pela Internet < / h2 >< taille de la police = 4 >< former méthode achete = >" ;
prog_char string_1 [] PROGMEM = "< br >< input type = soumettre nom = valeur b1 = Led1 >" ;
prog_char string_2 [] PROGMEM = "< br >< input type = soumettre nom = valeur b2 = Led2 >" ;
prog_char string_3 [] PROGMEM = "< br >< input type = soumettre nom = valeur b3 = DEL3 >" ;
prog_char string_4 [] PROGMEM = "< br >< input type = soumettre nom = valeur b4 = Led4 >" ;
prog_char string_5 [] PROGMEM = "" ;  "< br > insérer votre nom ici:" ;
prog_char string_6 [] PROGMEM = "" ;  « < nom d’entrée = valeur msg = no_name MAXLENGTH = 20 > » ;
prog_char string_7 [] PROGMEM = "< / form >< body / >< / html >" ;
prog_char string_8 [] PROGMEM = "Ligada (ON)" ;
prog_char string_9 [] PROGMEM = "Desligada" (arrêt) ;

prog_char string_10 [] PROGMEM = "< meta http-equiv = content de rafraîchissement = 30 > » ; pour l’actualisation automatique

Les const char PROGMEM * [] string_table = / / changer le nom de "string_table" en fonction de
{
string_0,
string_1,
string_2,
string_3,
string_4,
String_5,
string_6,
string_7,
string_8,
string_9,
string_10
};

tampon de char [85] ;    Assurez-vous que c’est assez grand pour la plus grande chaîne qu'il doit détenir

la mac de Byte [] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED} ;
la propriété intellectuelle de Byte [] = {192, 168, 1, 134} ;
la passerelle de Byte [] = {192, 168, 1, 1} ;
sous-réseau Byte = {255, 255, 255, 0} ;

String inString = String(35) ;

EthernetServer server(8246) ;

led1 booléen = false ;
led2 booléen = false ;
led3 booléen = false ;
led4 booléen = false ;

String msg = "" ;
tam int = 0 ;
int st1 = 9, st2 = 9, st3 = 9, st4 = 9 ;

void setup()
{
Serial.Begin(9600) ;
Ethernet.Begin (mac, ip, passerelle, sous-réseau) ;
Server.Begin() ;
Serial.println ("Serial READY") ;
Serial.println ("Ethernet READY") ;
Serial.println ("Server READY") ;
pinMode(4,OUTPUT) ;
pinMode(5,OUTPUT) ;
pinMode(6,OUTPUT) ;
pinMode(7,OUTPUT) ;
pinMode(8,INPUT) ;
pinMode(9,INPUT) ;
}

void loop()
{

EthernetClient client = server.available() ;

int mené = 0 ;
Si {(client)

une requête http se termine par une ligne vide
Boolean current_line_is_blank = true ;
tandis que (client.connected()) {}

Si (client.available()) {}

char c = client.read() ;
Si nous avons appris à 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,
afin que nous puissions envoyer une réponse
Si (inString.length() < 35) {}
inString.concat(c) ;

}
Si (c == « \n » & & current_line_is_blank) {}

if(inString.IndexOf("B1") > 0) {}

{if(LED1==false)}
ST1 = 8 ;
LED1 = true ;
digitalWrite(4,HIGH) ;
}
else {}
ST1 = 9 ;
LED1 = false ;
digitalWrite(4,LOW) ;
}
a = 1 ;

}
if(inString.IndexOf("B2") > 0) {}

{if(LED2==false)}
ST2 = 8 ;
LED2 = true ;
digitalWrite(5,HIGH) ;
}
else {}
ST2 = 9 ;
LED2 = false ;
digitalWrite(5,LOW) ;
}
a = 2 ;

}
if(inString.IndexOf("B3") > 0) {}

{if(LED3==false)}
ST3 = 8 ;
LED3 = true ;
digitalWrite(6,HIGH) ;
}
else {}
ST3 = 9 ;
LED3 = false ;
digitalWrite(6,LOW) ;
}
a = 3 ;

}
if(inString.IndexOf("B4") > 0) {}

{if(LED4==false)}
ST4 = 8 ;
LED4 = true ;
digitalWrite(7,HIGH) ;
}
else {}
ST4 = 9 ;
LED4 = false ;
digitalWrite(7,LOW) ;
}
a = 4 ;

}
/*
if(inString.IndexOf("MSG") > 0) {}
char charBuf1 [50] ;
char charBuf2 [50] ;
strcpy (msg,(char*) inString.substring (inString.indexOf ("g") +2,inString.indexOf ("H"))) ;
Serial.Print ("msg:") ;
Serial.println(MSG) ;
}
*/
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() ;

strcpy_P (tampon, (char *) pgm_read_word (&(string_table[0]))); Moulages nécessaires et déréférencement, il suffit de copier.
client.println (buffer) ;
pour (int i = 1; i < 8; i ++)
{
strcpy_P (tampon, (char *) pgm_read_word (&(string_table[i]))); Moulages nécessaires et déréférencement, il suffit de copier.
client.println (buffer) ;
{Switch(i)}

cas 1: strcpy_P (tampon, (char *) pgm_read_word (&(string_table[st1]))); client.println (buffer) ; rupture ;
cas 2: strcpy_P (tampon, (char *) pgm_read_word (&(string_table[st2]))); client.println (buffer) ; rupture ;
case 3: strcpy_P (tampon, (char *) pgm_read_word (&(string_table[st3]))); client.println (buffer) ; rupture ;
case 4: strcpy_P (tampon, (char *) pgm_read_word (&(string_table[st4]))); client.println (buffer) ; rupture ;

}
Delay(30) ;
}
{if(digitalRead(8)==High)}
client.println ("< br > Alexandre 1, ON") ;
} else {}
client.println ("< br > Alexandre 1, OFF") ;
}
{if(digitalRead(9)==High)}
client.println ("< br > Alexandre 2, ON") ;
} else {}
client.println ("< br > Alexandre 2, OFF") ;
}

strcpy_P (tampon, (char *) pgm_read_word (&(string_table[10]))); client.println (buffer) ;


rupture ;
}
Si (c == « \n ») {}
Nous commençons une nouvelle ligne
current_line_is_blank = true ;
} ElseIf (c! = « \r ») {}
Nous avons obtenu un personnage sur la ligne courante
current_line_is_blank = false ;
}
}
}
donner le temps de navigateur web pour recevoir les données
Delay(1) ;
inString = "" ;
client.Stop() ;
}
}

Articles Liés

Queue du Scorpion USB LED pour Coder de nuit

Queue du Scorpion USB LED pour Coder de nuit

Aujourd'hui, c'est notre jour de l'élection locale pour la plupart des villes en Indonésie. Elle est également déclarée comme un jour férié. Hier, j'ai préparé pour une longue nuit pour le codage. Mais j'avais toujours des ennuis, tapant dans l'obscu
BRICOLAGE Simple Sheild sortie LED pour Arduino UNO R3

BRICOLAGE Simple Sheild sortie LED pour Arduino UNO R3

Arduino uno inutilisables sans bouclier externe. Dans ce tutoriel, nous pouvons chared comment faire sortir Shield pour arduino à l'aide de 4 pcs LED.Étape 1: Sortie schématique Sheild LED pour arduino Ce schéma explique comment il conectod à la broc
900 panneau d’éclairage LED pour la vidéo et la photographie / / 360 degrés de rotation

900 panneau d’éclairage LED pour la vidéo et la photographie / / 360 degrés de rotation

Ainsi, les panneaux d'éclairage LED de qualité professionnelle est fous que cher, c'est stupide. Je vous présente avec mes propres (et bientôt vos propres) panneau d'éclairage pro. Je l'appelle pro parce que ce n'est pas juste quelques LEDs filaire v
LED pour les débutants

LED pour les débutants

Cette instructable montre comment associer une ou plusieurs LEDs dans une base et claire. Jamais fait aucun travail avant avec LED et ne savent pas comment s'en servir ? Son ok, ni avoir j'ai.Si vous avez câblé haut LED avant, cette explication peut
Serveur web Quicky pour linux.

Serveur web Quicky pour linux.

Voici quelques exemples de solutions rapides à mettre en place un serveur web. J'aime utiliser le serveur web de python pour télécharger rapidement des fichiers entre les systèmes informatiques que ce soit, ils sont touchpads/comprimés, ordinateurs p
Rétro-éclairage LED pour un moniteur LCD ou télévision

Rétro-éclairage LED pour un moniteur LCD ou télévision

Écrans LCD chômés peuvent souvent être trouvées pas cher ou gratuit.  J'ai commencé à faire cela initialement parce que j'ai besoin des écrans multiples pour travaux scolaires mais ne voulait pas débourser de l'argent pour une nouvelle marque.  La cl
Bon marché posemètre et testeur de LED pour moins puis $5

Bon marché posemètre et testeur de LED pour moins puis $5

Ive a récemment été jouer avec l'intense luminosité LED pour un projecteur LCD LED. Le problème que j'ai trouvé était son très difficile, donc de voir si toutes les LED sont le même éclat et il est donc difficile de comparer chaque LED. Si vous voule
Baïonnette Plug Compatible ampoule de LED pour le plus vieux voilier

Baïonnette Plug Compatible ampoule de LED pour le plus vieux voilier

Vous avez une vieille cabine voilier, remorque, véhicule récréatif ou hors réseau qui utilise des ampoules à baïonnette-style (12 V) ?Etes-vous inquiet au sujet de courir vers le bas de votre groupe de batteries et n'étant ne pas en mesure de démarre
LED'tennae : Plafonnement des antennes de LED pour vous

LED'tennae : Plafonnement des antennes de LED pour vous

Autrement dit, c'est comment construire des antennes de LED pour vous le cap sans aucune soudure.La genèse de cette idée a commencé à un meetup Magazine faire à San Francisco. Ils avaient déménagé de l'ancien bâtiment de l'Exploratorium et invité la
À l’aide d’une seule LED RVB (ou une bande LED) pour afficher les informations : horloge, thermomètre et un communicateur bizarre

À l’aide d’une seule LED RVB (ou une bande LED) pour afficher les informations : horloge, thermomètre et un communicateur bizarre

L'un des premiers projets que j'ai fait avec un Arduino était Noël guirlande de lumières. En fait, elle a été faite d'une simple bande de RVB LED coupée en deux, comme Arduino a seulement 6 sorties PWM de matériel. Je ne voulais pas qu'il affiche des
Comment faire une série de 9 broches pour câble Ethernet

Comment faire une série de 9 broches pour câble Ethernet

ces instructions vous montrera comment faire une série de 9 broches pour câble Ethernet. Câbles série servent à contrôler et configurer des périphériques avec les ports série. Lorsque vous convertissez une extrémité à l'Ethernet, le signal est capabl
Rénovation d’un anneau de LED pour un Microscope stéréo

Rénovation d’un anneau de LED pour un Microscope stéréo

Construire un tube LED pour faire revivre un vieux microscope stéréo.Microscopes stéréo sont des outils génial, d'observer et inspecter toutes sortes de petits objets.Si vous êtes chanceux, que vous trouverez quelques sur ebay, en assez bonne forme e
Pratique éclairage LED pour le plaisir et le Profit

Pratique éclairage LED pour le plaisir et le Profit

LEDs ont enfin commencé à surpasser les lampes fluorescentes compactes (LFC) dans effeciency (lumens par watt) le moment idéal pour aller au-delà de merde LED throwie projets d'immobiliers de signalisation, pratique Accueil éclairage LED. Ce instruct
Petit solaire rechargeable led lumière instantanée avec aucun panneau solaire/cellule. (utilise la led pour recharger!)

Petit solaire rechargeable led lumière instantanée avec aucun panneau solaire/cellule. (utilise la led pour recharger!)

Leds, nous voyons partout. que font-ils ? ils s'allument. Eh bien oui, c'est leur but principal, mais pas beaucoup de gens savent que, si vous les exposez aux rayons du soleil, elle peutproduire une petite quantité de tension. Sorte de manière, il pe