Vor einiger Zeit habe ich Ihnen gezeigt, wie Sie ein Internet-Kontrollsystem für Ihr Arduino einrichten. Wie man Arduino Web-Kontrolle ohne ein Ethernet-Schild einrichtet Wie man Arduino Web-Kontrolle ohne ein Ethernet-Schild einrichtet In den letzten Wochen habe ich Kontrolle übergeben die Stimmungsbeleuchtung in meinem Studio für die Zuschauer während der Live-Übertragung von Technophilia Podcast - Sie können die Ergebnisse davon in der ... Lesen Sie mehr - aber es musste mit einem Computer über USB verbunden bleiben, um die Internetverbindung aufrecht zu erhalten. Wenn Sie jedoch eine Ethernet-Abschirmung haben, ist das nicht notwendig. Heute werden wir uns die Einrichtung eines Arduino als Basis-Webserver ansehen, damit wir unsere eigene Gerätesteuerungs-Website hosten können.
Du wirst brauchen:
- Ein Arduino oder Arduino-Klon wie hier beschrieben Verbringen Sie kein Geld auf einem Arduino - Bauen Sie Ihr Eigenes für viel weniger Verbringen Sie kein Geld für ein Arduino - Bauen Sie Ihr eigenes für viel weniger Ich liebe meine Arduinos. Ich habe zu jeder Zeit einige Projekte unterwegs - Prototyping ist einfach so einfach. Aber manchmal möchte ich das Projekt funktional halten, ohne zu kaufen ... Lesen Sie weiter
- Ethernet Shield (~ $ 35) - stellen Sie sicher, dass Sie eine Version bekommen, die zu Ihrem Arduino passt, da sie nicht alle kompatibel sind
- Ersatz-Port an Ihrem Router oder Switch und Ethernet-Kabel
- Das WebServer-Beispiel in der Arduino-Anwendung
Einrichten
Die Ethernet-Abschirmung verwendet die Pins 10 bis 13 zur Steuerung der Netzwerkverbindung. Lassen Sie diese daher aus Ihrem Projekt heraus; Pin 4 wird auch für die SD-Karte verwendet, aber wir werden das heute nicht verwenden.
Das Wichtigste zuerst - öffnen Sie die Datei -> Beispiele -> Ethernet -> WebServer, die in der Arduino IDE zur Verfügung gestellt wird. Finde die Zeilen, die sich auf MAC und IP Adresse beziehen.
Die MAC-Adresse für meine wurde auf der Box gefunden - möglicherweise befindet sich die MAC-Adresse auf dem Schild. Passen Sie die erste Zeile der Werte an - Sie müssen jedoch das vorhergehende 0x- Bit belassen. Technisch gesehen spielt es keine Rolle, was Sie hier eingeben, solange Sie keine widersprüchlichen Werte in Ihrem Subnetz haben - aber trotzdem wurde das vom Hersteller zugewiesen, also sollten wir wahrscheinlich dabei bleiben. Wenn du es falsch machst, wird es immer noch funktionieren.
Als nächstes folgt die IP-Adresse. Wir wollen eine bestimmte feste Adresse, damit wir die Port-Weiterleitung richtig einrichten können - der Shield ist in der Lage, eine Adresse von DHCP zu bekommen, aber das ist nur nützlich, wenn er nur als Client und nicht als Server verwendet wird. Geben Sie eine IP-Adresse ein, die in Ihrem lokalen Netzwerk, Ihrer Router-IP und 255.255.255.0 (das Subnetz) nicht verwendet wird und in Erinnerung bleibt. Wenn nichts davon für Sie Sinn macht, lesen Sie unseren kostenlosen und gründlichen Leitfaden für Heimvernetzung Alles, was Sie über Heimnetzwerke wissen müssen Alles, was Sie über Heimvernetzung wissen müssen Einrichten eines Heimnetzwerks ist nicht so schwer wie Sie denken . Weiterlesen .
Port-Weiterleitung
Bearbeiten Sie die Zeile, die den EthernetServer-Server (Nummer) angibt, und ändern Sie die Nummer in 8081 . Dadurch wird unser Server so eingestellt, dass er auf Port 8081 hört, falls Ihr ISP den Web-Verkehr auf dem herkömmlichen Port 80 blockiert.
Laden Sie die Demo zu diesem Zeitpunkt hoch und testen Sie sie von einem lokalen Computer aus. Sie müssen natürlich auch das Ethernet-Kabel einstecken. Lassen Sie den USB-Anschluss auch angeschlossen, da wir ihn für die Stromversorgung benötigen - Sie können ihn später durch ein 9-V-Netzteil ersetzen, aber wir testen noch.
Noob-Tipp: Wenn Sie diesen Fehler erhalten, bedeutet dies, dass Sie versehentlich einen Großbuchstaben O anstelle von 0 in den MAC-Adressbereich gesetzt haben. Es gibt kein O in Hex-Werten! Wenn Sie wirklich neu sind, lohnt es sich, unseren Arduino-Guide für Anfänger zu besuchen!
Um auf den Arduino zuzugreifen, geben Sie die Adresse und die Portnummer direkt von einem Browser ein.
Du solltest so etwas sehen - so weit, so gut. Leider ist dies momentan nur im lokalen Netzwerk möglich. Gehen Sie also auf die Portkonfigurationsseite Ihres Routers, um eine Umleitung von Port 8081 zum selben Port auf der Arduino-IP einzurichten ( Siehe: Was ist Portweiterleitung? Was ist Portweiterleitung? & Wie kann es mir helfen? [MakeUseOf erklärt] Was ist Port Forwarding & wie kann es mir helfen? [MakeUseOf erklärt] Weinen Sie ein wenig nach innen, wenn jemand Ihnen sagt, es gibt ein Port-Forwarding-Problem und deshalb Ihre glänzende neue App gewonnen ' t Arbeit? Ihre Xbox lässt Sie Spiele nicht spielen, Ihre torrent Downloads verweigern ... Lesen Sie weiter )
Testen Sie dies von einem mobilen 3G-Internet-Gerät mit Wifi deaktiviert; Denken Sie daran, Ihre öffentliche IP-Adresse zu verwenden, nicht Ihre lokale Netzwerkadresse. Ihr Router sollte Ihnen das sagen können, oder fragen Sie einfach Google "Was ist meine IP".
Die Ausgabe verstehen
Die Seite, die in der Demo bedient wird, liest Werte von den analogen Pins - aber da nichts verbunden ist, werden Sie Unsinn bekommen. Versuchen Sie, einen Lichtsensor (Fotowiderstand) an Port A0 und + 5v anzuschließen, mit einem 10k Widerstand auch an A0 und gnd (dies ist ein Spannungsteiler, da die analogen Pins nur Spannung und keinen Widerstand lesen können), nur um den Server zu bestätigen liest tatsächlich Werte. Beachten Sie, dass sich bei Änderung der Lichtintensität auch die Werte an den anderen Pins ändern - weil sie alle nicht verbunden sind.
Interaktiv werden
Das Lesen dieser Werte ist alles gut und gut, aber den Sprung zum Steuern eines Arduino von hier aus zu machen, ist ein großer Sprung und außerhalb des Rahmens dieses Tutorials heute. Anstatt das Rad neu zu erfinden, werde ich Sie auf Arduino-Forum-Benutzer hari hinweisen, der eine grundlegende API für die Interaktion mit digitalen Pins geschrieben hat. Mit diesem Code (ich habe ihn so modifiziert, dass er mit der neuesten Ethernet-Bibliothek funktioniert), verbinden Sie die lange Leitung einer LED (Anode) mit Pin 8 und die kurze Leitung mit Pin 7 (mit einem geeigneten Widerstand). Sie können URLs der Form http: // ip: port / digitalWrite / 8/1 verwenden, um die LED einzuschalten, und http: // ip: port / digitalWrite / 8/0, um sie auszuschalten und analoge Werte zu lesen mit analogRead / 0 .
Dieses Beispiel von bildr wird Ihnen auch beibringen, wie man eine Sequenz von LEDs durch Lesen der GET-Anfrage steuert.
Sie können auch dieses Beispiel auschecken, das ein Formular auf der Seite ausgibt, um eine blinkende RGB-LED zu steuern, obwohl Sie es leicht für einen RGB-Streifen wie das dynamische Umgebungsbeleuchtungsprojekt anpassen können. Erstellen Sie Ihre eigene dynamische Umgebungsbeleuchtung für ein Media Center Build Ihre eigene dynamische Umgebungsbeleuchtung für ein Media Center Wenn Sie viele Filme auf Ihrem PC oder Media Center ansehen, bin ich sicher, dass Sie mit dem Beleuchtungsdilemma konfrontiert wurden. Schalte du alle Lichter aus? Halten Sie sie auf Hochtouren? Oder ... Lesen Sie mehr, die wir vor einer Weile gebaut haben.
Nun, ich hatte Spaß daran, diese zu bauen, also hoffe ich, dass du es auch getan hast. Wenn Sie eine Bibliothek erstellt haben, die das Bereitstellen von Seiten und Steuerelementen vereinfacht, wenden Sie sich bitte an die Kommentare.