Donnez à votre projet arduino son propre mini-webserver, avec un bouclier ethernet

serveur web ArduinoIl y a quelque temps, je vous ai montré comment mettre en place un système de contrôle d`Internet pour votre Arduino - Mais il a dû rester connecté à un ordinateur via USB afin de maintenir la connexion Internet. Si vous avez un bouclier Ethernet cependant, ce n`est pas nécessaire Aujourd`hui, nous allons examiner la mise en place d`un Arduino comme un serveur web de base afin que nous puissions accueillir notre propre site de contrôle de l`appareil.

Tu auras besoin de:

  • Un Arduino, ou clone Arduino comme détaillé ici
  • Ethernet Shield (~ 35 $) - assurez-vous d`obtenir une version qui correspond à votre Arduino car ils ne sont pas tous compatibles
  • Port de secours sur votre routeur ou commutateur, et le câble Ethernet
  • L`exemple de WebServer fournis dans la demande Arduino

Mise en place

Le blindage Ethernet utilise des broches 10 à 13 pour contrôler la connexion réseau, donc laissons ceux de votre broche projet- 4 est également utilisé pour la carte SD, mais nous ne l`utiliserons aujourd`hui.

Tout d`abord - ouvrent la Fichier->Exemples->Ethernet->Serveur Web qui est fourni dans le Arduino IDE. Trouvez les lignes faisant référence MAC et l`adresse IP.

serveur web Arduino

L`adresse MAC pour le mien a été trouvé sur la boîte - le vôtre peut être sur le bouclier lui-même. Ajuster la première ligne de valeurs - vous devez quitter le précédent 0x peu cependant. Techniquement parlant, il n`a pas d`importance ce que vous mettez ici tant que vous n`avez pas de valeurs contradictoires sur votre sous-réseau - mais même ainsi, ce fut la adressée attribué par le fabricant, donc nous devrions probablement tenir à cela. Il suffit de savoir que si vous vous trompez, il fonctionnera toujours.

exemple webserver arduino

Ensuite, il y a l`adresse IP. Nous voulons une adresse fixe spécifique afin que nous puissions la redirection de port de configuration correctement - l`écran est capable d`obtenir une adresse de DHCP, mais qui est seulement utile si elle est simplement va être utilisé en tant que client, pas un serveur. Remplissez une adresse IP qui est utilisé et mémorable sur votre réseau local, votre routeur IP et 255.255.255.0 (le sous-réseau). Si rien de tout cela fait sens pour vous, allez lire notre libre et approfondie guide de mise en réseau domestique.

Port Forwarding

Modifier la ligne qui dit serveur EthernetServer (nombre), et changer le numéro 8081. Cette volonté configuration de notre serveur pour écouter sur le port 8081 dans le cas où votre FAI bloque le trafic Web sur le port traditionnel 80.

Téléchargez la démo à ce point et le tester à partir d`une machine locale. Vous aurez bien sûr besoin de brancher le câble Ethernet aussi. Gardez l`USB branché aussi, comme nous en avons besoin pour le pouvoir - vous pouvez le remplacer par une puissance de 9V plus tard, mais nous sommes toujours tester.

Noob-tip: si vous obtenez cette erreur, cela signifie que vous avez tort de mettre un O majuscule au lieu d`un 0 dans la zone d`adresse MAC. Il n`y a pas O en hex valeurs! Si vous êtes vraiment nouveau, il peut être utile de vérifier nos débutants de Guide Arduino!

exemple webserver arduino

Pour accéder à l`Arduino, saisissez l`adresse et le numéro de port directement à partir d`un navigateur.

exemple webserver arduino

Vous devriez voir quelque chose comme ça - so far so good. Malheureusement, cela est uniquement accessible sur le réseau local en ce moment, donc la tête sur dans la page de configuration du port de votre routeur pour configurer une redirection de port 8081 sur le même port sur votre IP Arduino (Voir: Qu`est-ce que la redirection de port?)

web arduino serveur tutoriel

Faites le test à partir d`un dispositif d`Internet mobile 3G avec Wifi disabled- pensez à utiliser votre Adresse IP publique, pas votre adresse de réseau local. Votre routeur doit être en mesure de vous le dire, ou tout simplement demander à Google "Quel est mon ip».

serveur web Arduino

Comprendre la sortie

La page étant servi dans la démo est en train de lire les valeurs des broches analogiques - mais comme il n`y a rien connecté, vous allez obtenir un non-sens. Essayez de connecter un capteur de lumière (résistance photo) au port A0 et +5v, avec un résistance 10k également A0 et gND (Ce qui est un diviseur de tension, étant donné que les broches analogiques ne peut lire la tension et la résistance non) juste pour confirmer que le serveur est en train de lire des valeurs. Notez que lorsque les changements d`intensité lumineuse, les valeurs sur les autres broches changent effectivement trop - c`est parce qu`ils sont tous sans lien.

Obtenir interactive

La lecture de ces valeurs est bien beau, mais de faire le saut contrôle un Arduino d`ici est tout à fait un bond, et en dehors du cadre de ce tutoriel aujourd`hui. Au lieu de réinventer la roue, je vais vous diriger vers le forum Arduino utilisateur hari qui a écrit une API de base pour interagir avec les broches numériques. En utilisant ce code (je l`ai modifié pour qu`il fonctionne avec la dernière bibliothèque Ethernet), connectez le long délai d`une LED (anode) à la broche 8, et la courte avance à la broche 7 (avec une résistance appropriée). Vous pouvez ensuite utiliser les URL de la forme http: // ip: port / digitalWrite / 8/1 pour allumer la LED, et http: // ip: port / digitalWrite / 8/0 pour l`éteindre, et lire les valeurs analogiques avec analogRead / 0.

Ce par exemple à partir bildr sera également vous apprendre à contrôler une séquence de LED par la lecture de la requête GET.

Vous aimerez aussi à la caisse cet exemple qui sort un formulaire sur la page pour commander un LED RGB BlinkM, mais vous pouvez facilement l`adapter à une bande RGB comme le projet d`éclairage d`ambiance dynamique nous avons construit un certain temps.

Eh bien, je me suis amusé construire ceux-ci, donc j`espère que vous aussi. Si vous avez fait une bibliothèque qui permet de servir des pages et des contrôles simples, s`il vous plaît ne nous contacter dans les commentaires.

» » Donnez à votre projet arduino son propre mini-webserver, avec un bouclier ethernet