Giv dit Arduino Project sin egen Mini-Webserver, med et Ethernet Shield

For en tid siden viste jeg dig, hvordan du konfigurerede et internetkontrolsystem til din Arduino - men det skulle forblive forbundet til en computer via USB for at opretholde internetforbindelsen. Hvis du har et Ethernet-skjold, er det dog ikke nødvendigt. I dag skal vi se på at oprette en Arduino som en grundlæggende webserver, så vi kan være vært for vores egen enhedsstyringswebside.

For en tid siden viste jeg dig, hvordan du konfigurerede et internetkontrolsystem til din Arduino - men det skulle forblive forbundet til en computer via USB for at opretholde internetforbindelsen.  Hvis du har et Ethernet-skjold, er det dog ikke nødvendigt. I dag skal vi se på at oprette en Arduino som en grundlæggende webserver, så vi kan være vært for vores egen enhedsstyringswebside.
Reklame

arduino webserver For et stykke tid siden viste jeg dig, hvordan du konfigurerer et internetstyringssystem til din Arduino Sådan opsætter du Arduino Web Control uden et Ethernet Shield Sådan opsættes Arduino Web Control uden et Ethernet Shield I de sidste par uger har jeg overdraget kontrol over stemningen belyser i mit studie til seerne under live udsendelse af Technophilia Podcast - du kan se resultaterne af det i ... Læs mere - men det skulle forblive forbundet til en computer via USB for at opretholde internetforbindelsen. Hvis du har et Ethernet-skjold, er det dog ikke nødvendigt. I dag skal vi se på at oprette en Arduino som en grundlæggende webserver, så vi kan være vært for vores egen enhedsstyringswebside.

Du får brug for:

  • En Arduino eller Arduino klon som beskrevet her Brug ikke penge på en Arduino - Bygg din egen for meget mindre Brug ikke penge på en Arduino - Bygg din egen for meget mindre Jeg elsker mine Arduinos. På ethvert tidspunkt har jeg et par projekter på farten - prototyping er lige så let med dem. Men nogle gange vil jeg holde projektet funktionelt uden at købe ... Læs mere
  • Ethernet Shield (~ $ 35) - sørg for at få en version, der passer til din Arduino, da de ikke er alle kompatible
  • Reserveport på din router eller switch, og Ethernet-kabel
  • WebServer-eksemplet i Arduino-applikationen

Sætte op

Ethernet-skærmen bruger tappene 10 til 13 til at styre netværksforbindelsen, så lad dem gå ud af dit projekt; pin 4 bruges også til SD-kortet, men vi bruger det ikke i dag.

Første ting først - Åbn filen -> Eksempler -> Ethernet -> WebServer, der leveres i Arduino IDE. Find de linjer, der henviser til MAC og IP-adresse.

arduino webserver

MAC-adressen til min blev fundet på boksen - din kan være på selve skærmen. Juster den første linje af værdier - du skal dog forlade den foregående 0x bit. Teknisk set betyder det ikke noget, hvad du lægger her, så længe du ikke har nogen modstridende værdier på dit undernet - men det var selvfølgelig den adressering, der var tildelt af producenten, så vi skal nok holde fast ved det. Bare ved, at hvis du får det forkert, vil det stadig arbejde.

arduino webserver eksempel

Næste op er IP-adressen. Vi ønsker en bestemt fast adresse, så vi kan konfigurere port forwarding korrekt - skjoldet er i stand til at få en adresse fra DHCP, men det er kun nyttigt, hvis det kun skal bruges som en klient, ikke en server. Udfyld en IP-adresse, der er ubrugt og mindeværdig på dit lokale netværk, din router IP og 255.255.255.0 (undernet). Hvis ingen af ​​dette giver mening for dig, skal du læse vores gratis og grundige vejledning til hjemmenetværk Alt hvad du behøver at vide om hjemme netværk Alt hvad du behøver at vide om hjemmenetværk Oprettelse af et hjemmenetværk er ikke så svært, som du tror det er . Læs mere .

Portvideresendelse

Rediger linjen, der siger EthernetServer server (nummer), og skift nummer til 8081 . Dette vil opsætte vores server for at lytte på port 8081, hvis din internetudbyder blokerer webtrafik på den traditionelle port 80.

Upload demoen på dette tidspunkt og test det ud fra en lokal maskine. Du skal selvfølgelig også tilslutte Ethernet-kablet. Hold også USB tilsluttet, da vi har brug for det til strøm - du kan udskifte det med en 9V strømforsyning senere, men vi tester stadig.

Noob-tip: Hvis du får denne fejl, betyder det, at du fejlagtigt har lagt en kapital O i stedet for en 0 i MAC-adresseområdet. Der er ingen O i hex-værdier! Hvis du virkelig er ny, kan det være umagen værd at tjekke vores nybegynders Arduino guide!

arduino webserver eksempel

For at få adgang til Arduino, indtast adressen og portnummeret direkte fra en browser.

arduino webserver eksempel

Du skulle se noget sådan - så langt så godt. Desværre er dette kun tilgængelig på det lokale netværk lige nu, så fortsæt ind på din router portkonfigurationsside for at oprette en omdirigering fra port 8081 til den samme port på din Arduino's IP ( Se: Hvad er port forwarding? & Hvordan kan det hjælpe mig? [MakeUseOf Forklarer] Hvad er Port Forwarding & Hvordan kan det hjælpe mig? [MakeUseOf Forklarer] Gør du lidt indeni, når nogen fortæller dig, at der er et port forwarding problem, og derfor har din skinnende nye app vundet ' t arbejde? Din Xbox vil ikke lade dig spille spil, dine torrent downloads nægter ... Læs mere )

arduino webserver tutorial

Test dette ud fra en mobil 3G internet enhed med Wifi deaktiveret; Husk at bruge din offentlige IP-adresse, ikke din lokale netværksadresse. Din router skal være i stand til at fortælle dig dette, eller bare spørg Google "Hvad er min ip".

arduino webserver

Forstå udgangen

Siden, der serveres i demoen, læser værdier fra de analoge stifter - men da der ikke er noget der er forbundet der, vil du få nonsens. Prøv at forbinde en lyssensor (foto modstand) til port A0 og + 5v med en 10k modstand også på A0 og GND (dette er en spændingsdeler, da de analoge stifter kun kan læse spænding og ikke modstand) for at bekræfte serveren er faktisk læse værdier. Bemærk, at når lysintensiteten ændres, ændres værdierne på de andre stifter også - det skyldes, at de ikke er sammenhængende.

Bliv interaktiv

At læse disse værdier er alt godt og godt, men at gøre hoppet til at kontrollere en Arduino herfra er et skridt, og uden for denne tutorials rækkevidde i dag. I stedet for at genfinde hjulet, vil jeg pege dig mod Arduino forum bruger hari, der skrev en grundlæggende API til interaktion med digitale stifter. Ved at bruge denne kode (jeg har ændret den til at fungere med det nyeste Ethernet-bibliotek), skal du forbinde den lange ledning til en LED (anode) til pin 8 og den korte ledning til pin 7 (med en passende modstand). Du kan derefter bruge webadresser til formularen http: // ip: port / digitalWrite / 8/1 for at tænde LED'en og http: // ip: port / digitalWrite / 8/0 for at slukke for det og læse analoge værdier med analogRead / 0 .

Dette eksempel fra bildr vil også lære dig at styre en række LED'er ved at læse GET-anmodningen.

Du kan også godt lide at afkøbe dette eksempel, som udsender en formular på siden for at styre en blinkm RGB-LED, selv om du nemt kunne tilpasse den til en RGB-strimmel som det dynamiske omgivende belysnings projekt. Byg din egen dynamiske omgivende belysning til et mediecenterbyggeri Din egen dynamiske omgivende belysning til et mediecenter Hvis du ser mange film på din pc eller mediecenter, er du sikker på at du har konfronteret lysdilemmet; slukker du helt for alle lys? Holder du dem på fuld blast? Eller ... Læs mere vi bygget et stykke tid tilbage.

Nå, jeg havde det sjovt at bygge disse, så jeg håber du gjorde det også. Hvis du har lavet et bibliotek, der gør servering af sider og kontroller enkle, skal du kontakte os i kommentarerne.

In this article