Http: / / blog.
Aujourd'hui, on le montre.Ethernet Shielding Le blindage peut être facilement installé sur notre microcontrôleur, compatible avec arduino uno R3, et étendu de manière à inclure une interface Ethernet et un lecteur de carte SD.
Le contexte est la demande d'un ami qui utilise un microcontrôleur compatible avec arduino uno R3 pour surveiller un capteur analogique.Il veut maintenant poser cette question par l 'intermédiaire de l' interface Internet.Mais il ne veut pas utiliser l'esp et la connexion sans fil, mais... Microcontrôleur compatible avec arduino UNOLe R3 est connecté à son réseau par câble Lan parce que son Wi - Fi n 'est pas fiable et génère un rayonnement électromagnétique excessif.
Un.Test
On a besoin d'un écran Ethernet w5100.Microcontrôleur compatible avec arduino Un R3.Et tout capteur analogique.Dans ce cas, j 'ai utilisé un simple exemple. Capteur de luminance Tout capteur analogique peut toutefois être remplacé.
Nous mettons les écrans Ethernet Microcontrôleur compatible avec arduino UNONous connectons les capteurs de luminosité de la manière suivante:
-
Un R3.
Capteur de luminance
Cinq volts.
Milieu
Revenu national brut
-
Catégorie A0
S.
Deux.Programmation
Programmation Microcontrôleur compatible avec arduino UNOMerci, arduino, R3 est presque aussi simple que le module esp.
On a juste besoin de la bibliothèque.Protéine de séparation de sojaH et EthernetH, lors de l'installation avec l'IDE.
En fait, nous avons trouvé un exemple de travail sous les rubriques "file" & gt; "Examples" & gt; "Ethernet" & gt; "Webserver", avec quelques ajustements.
Pour utiliser le DHCP (le cas échéant), remplacer « ethernet.begin (MAC, IP); » par le code suivant:
Si (Ethernet.Allez.(Imperméable) == 0) { Télécharger.Imprimer("Impossible de configurer l'Ethernet avec le DHCP."); / / essayer d 'utiliser l' adresse IP au lieu du DHCP pour la configuration: Ethernet.Allez.(Imperméable, Limited Partners); Serveur Web.Allez.(); Télécharger.Imprimer("Emplacement du serveur"); Télécharger.Imprimer(Ethernet.Localisation()); }
Puisque nous n 'avons qu' à donner une valeur dans void Loop (), le cycle « for » peut être remplacé par:
Paysage intérieur Lecteur de capteur = Simulation(0); Client.Imprimer("Entrée analogique"); Client.Imprimer("0"); Client.Imprimer(Oui.); Client.Imprimer(Lecteur de capteur); Client.Imprimer("& lt; br / & gt;");
Code complet
/* Serveur Web Un simple serveur Web affiche la valeur du pied de tube d 'entrée analogique. Utilisation d 'un écran aduino wiznet Ethernet. Circuits: * écrans Ethernet connectés aux prises 10, 11, 12 et 13 * entrée analogique connectée à deux broches a0 à A5 (facultatif) Fondée le 18 décembre 2009 Auteur: David A. Mellis Amendement du 9 avril 2012 Auteur: Tom igoe Modification: 2 septembre 2015 Auteur: Arturo Guadalupe */ "35; y compris <Protéine de séparation de soja.Heure> "35; y compris <Ethernet.Heure> Saisissez ci - dessous l 'adresse MAC et l' adresse IP du Contrôleur. L 'adresse IP dépendra de votre réseau local: échanger Imperméable[] = { 0xen., Code 0xad, Type 0xbe, 0xec., Type 0xfe, 0xen. }; Adresse IP Limited Partners(192, 168, 168, 51); Base de serveurs Ethernet initialisée / / utiliser l 'adresse IP et le port à utiliser / / (le port 80 est le port par défaut de HTTP): Ethernet Serveur Web(80); Vide Set() { Ouvrez la communication en série et attendez l 'ouverture du port: Télécharger.Allez.(9600); / / démarrage des connexions et des serveurs Ethernet: Si (Ethernet.Allez.(Imperméable) == 0) { Télécharger.Imprimer("Impossible de configurer l'Ethernet avec le DHCP."); / / essayer d 'utiliser l' adresse IP au lieu du DHCP pour la configuration: Ethernet.Allez.(Imperméable, Limited Partners); Serveur Web.Allez.(); Télécharger.Imprimer("Emplacement du serveur"); Télécharger.Imprimer(Ethernet.Localisation()); } } Vide Run() { / / entrée dans la liste des clients Client Ethernet Client = Serveur Web.Disponible(); Si (Client) { Télécharger.Imprimer(Nouveau client); Http: / / www.un.org / ESA Type booléen Vide de ligne actif = Vraiment?; Bien que (Client.Corrélatif()) { Si (Client.Disponible()) { Brûler Catégorie C = Client.Lire(); Télécharger.Ecrire(Catégorie C); Si vous êtes à la fin de l 'équipe / / caractère) Action vide, demande terminée, Vous pouvez répondre. Si (Catégorie C == Non. && Vide de ligne actif) { Http: / / response head. Client.Imprimer("Http / 1.1.200, oui."); Client.Imprimer("Type de contenu: texte / html"); Client.Imprimer(Connection: désactivation); / / la connexion sera fermée lorsque la réponse sera terminée Client.Imprimer(Mise à jour: 5); / / mise à jour automatique d 'une page toutes les 5 secondes Client.Imprimer(); Client.Imprimer("& lt?DocType HTML & gt); Client.Imprimer("& lt; HTML & gt;"); / / sortie de la valeur de chaque entrée analogique Paysage intérieur Lecteur de capteur = Simulation(0); Client.Imprimer("Entrée analogique"); Client.Imprimer("0"); Client.Imprimer(Oui.); Client.Imprimer(Lecteur de capteur); Client.Imprimer("& lt; br / & gt;"); //} Client.Imprimer("& lt; / html & gt;"); Rompre; } Si (Catégorie C == Non.) { Tu dois commencer une nouvelle route. Vide de ligne actif = Vraiment?; } Heure de départ prévue Si (Catégorie C != ♪ r ♪) { Vous avez un caractère dans la ligne active Vide de ligne actif = Faux; } } } / / donner au navigateur Web le temps de recevoir des données Retarder(1); / / désactiver la connexion: Client.Arrêter(); Télécharger.Imprimer(Le client est déconnecté.); } }
Trois.Test
Maintenant, nous allons ouvrir l 'adresse IP dans le navigateur Web et vérifier la valeur du capteur.L 'affichage est mis à jour toutes les cinq secondes.
Il est donc tout à fait possible de connecter un capteur à un réseau local sans ESP et sans WLAN.
Qui ne sait pas? Microcontrôleur compatible avec arduino UNOR3 & ‧‧;: Nous vous présenterons bientôt d 'autres modules sur le blog qui vous permettront d' intégrer le microcontrôleur et le câble du réseau local dans votre réseau.
Bon appétit, au revoir.
Votre Marcus Neumann.
1 commentaire
Timo
Guten Abend,
wie kann ich die Werte mit einem zweiten Arduino auf dem Seriellen monitor auslesen. Also auch mit einem Ethernetshield. Finde leider kein brauchbares Beispiel im Netz