Gi Arduino-prosjektet sin egen Mini-Webserver, med et Ethernet-skjerm

For en stund siden viste jeg deg hvordan du konfigurerer et Internett-kontrollsystem for din Arduino - men det måtte forbli koblet til en datamaskin via USB for å opprettholde internettforbindelsen. Hvis du har et Ethernet skjold skjønt, det er ikke nødvendig. I dag skal vi se på å sette opp en Arduino som en grunnleggende webserver, slik at vi kan være vert for vår egen enhetskontrollwebside.

For en stund siden viste jeg deg hvordan du konfigurerer et Internett-kontrollsystem for din Arduino - men det måtte forbli koblet til en datamaskin via USB for å opprettholde internettforbindelsen.  Hvis du har et Ethernet skjold skjønt, det er ikke nødvendig. I dag skal vi se på å sette opp en Arduino som en grunnleggende webserver, slik at vi kan være vert for vår egen enhetskontrollwebside.
Annonse

arduino web server For en stund siden viste jeg deg hvordan du konfigurerer et internetsystem for din Arduino. Slik setter du opp Arduino Web Control uten et Ethernet Shield. Slik setter du opp Arduino Web Control uten et Ethernet Shield. I de siste ukene har jeg overlevert kontroll over stemningsbelysningen i studioet mitt til seerne under live-sendingen av Technophilia Podcast - du kan se resultatene av det i ... Les mer - men det måtte forbli tilkoblet en datamaskin via USB for å opprettholde internettforbindelsen. Hvis du har et Ethernet skjold skjønt, det er ikke nødvendig. I dag skal vi se på å sette opp en Arduino som en grunnleggende webserver, slik at vi kan være vert for vår egen enhetskontrollwebside.

Du vil trenge:

  • En Arduino eller Arduino klon som beskrevet her Ikke bruk penger på en Arduino - Bygg din egen for mye mindre Ikke bruk penger på en Arduino - Bygg din egen for mye mindre Jeg elsker mine Arduinos. På et hvilket som helst tidspunkt har jeg ganske mange prosjekter på farten - prototyping er bare så lett med dem. Men noen ganger vil jeg holde prosjektet funksjonelt uten å kjøpe ... Les mer
  • Ethernet Shield (~ $ 35) - sørg for at du får en versjon som passer til din Arduino da de ikke er alle kompatible
  • Ekstra port på ruteren eller bytte, og Ethernet-kabel
  • WebServer-eksemplet som er oppgitt i Arduino-programmet

Setter opp

Ethernet-skjermen bruker pins 10 til 13 for å kontrollere nettverksforbindelsen, så la dem ut av prosjektet ditt; pin 4 brukes også til SD-kortet, men vi vil ikke bruke det i dag.

Første ting først - Åpne filen -> Eksempler -> Ethernet -> WebServer som leveres i Arduino IDE. Finn linjene som refererer til MAC og IP-adresse.

arduino web server

MAC-adressen for min ble funnet på boksen - din kan være på skjermen selv. Juster den første linjen med verdier - du må forlate den forrige 0x- biten skjønt. Teknisk sett er det ikke noe å si hva du setter her, så lenge du ikke har noen motstridende verdier på undernettet ditt - men det var likevel det som ble adressert av produsenten, så vi burde trolig holde fast ved det. Bare vet at hvis du tar feil, vil det fortsatt fungere.

Arduino webserver eksempel

Neste opp er IP-adressen. Vi ønsker en bestemt fast adresse, slik at vi kan konfigurere porten videresending riktig - skjoldet er i stand til å få en adresse fra DHCP, men det er bare nyttig hvis det bare skal brukes som en klient, ikke en server. Fyll ut en IP-adresse som er ubrukt og minneverdig på ditt lokale nettverk, ruteren din IP og 255.255.255.0 (delnettverket). Hvis ingen av dette er fornuftig for deg, må du lese vår gratis og grundige veiledning til hjemmenettverk Alt du trenger å vite om hjemmenettverk Alt du trenger å vite om hjemmenettverk Oppsett av et hjemmenettverk er ikke så vanskelig som du tror det er . Les mer .

Port videresending

Rediger linjen som sier EthernetServer-serveren (nummer), og endre nummeret til 8081 . Dette vil sette opp serveren vår for å lytte på port 8081 hvis Internett-leverandøren din blokkerer webtrafikk på den tradisjonelle porten 80.

Last opp demoen på dette tidspunktet og test det ut fra en lokal maskin. Du må selvfølgelig også koble til Ethernet-kabelen. Hold USB tilkoblet, da vi trenger det for strøm - du kan erstatte det med en 9V strømforsyning senere, men vi prøver fortsatt.

Noob-tip: Hvis du får denne feilen, betyr det at du feilaktig har lagt en kapital O i stedet for en 0 i MAC-adressen området. Det er ingen O i hex-verdier! Hvis du virkelig er ny, kan det være verdt å sjekke ut vår nybegynners Arduino guide!

Arduino webserver eksempel

For å få tilgang til Arduino, skriv inn adressen og portnummeret direkte fra en nettleser.

Arduino webserver eksempel

Du bør se noe sånt - så langt så bra. Dessverre er dette bare tilgjengelig på det lokale nettverket akkurat nå, så gå videre til ruterenes portkonfigurasjonsside for å konfigurere en omdirigering fra port 8081 til samme port på Arduino's IP ( Se: Hva er port videresending? & Hvordan kan det hjelpe meg? [MakeUseOf Forklarer] Hva er Port Forwarding og hvordan kan det hjelpe meg? [MakeUseOf Forklarer] Skriker du litt inni når noen forteller deg at det er et port forwarding problem, og det er derfor din skinnende nye app vant ' t arbeide? Xbox din vil ikke la deg spille spill, din torrent nedlastinger nekte ... Les mer )

arduino webserver opplæring

Test dette ut fra en mobil 3G-nettverksenhet med Wifi deaktivert; Husk å bruke din offentlige IP-adresse, ikke din lokale nettverksadresse. Din ruteren skal kunne fortelle deg dette, eller bare spørre Google "hva er min ip".

arduino web server

Forstå utgangen

Siden som blir servert i demoen, leser verdier fra de analoge pinnene - men siden det ikke er noe der, vil du få tull. Prøv å koble til en lyssensor (foto motstand) til port A0 og + 5v, med en 10k motstand også på A0 og GND (dette er en spenningsdeler, siden de analoge pinnene bare kan lese spenning og ikke motstand) bare for å bekrefte serveren er faktisk lese verdier. Legg merke til at når lysintensiteten endres, endres verdiene på de andre pinnene også også - dette skyldes at de ikke er sammenhengende.

Bli interaktiv

Å lese disse verdiene er alt bra og bra, men å gjøre hoppet til å kontrollere en Arduino herfra er ganske et skritt, og utenfor omfanget av denne opplæringen i dag. I stedet for å oppfinne hjulet, vil jeg peke deg mot Arduino forum bruker hari som skrev en grunnleggende API for å samhandle med digitale pinner. Ved å bruke denne koden (jeg har endret den til å fungere med det nyeste Ethernet-biblioteket), koble den lange ledningen til en LED (anode) til pin 8, og den korte ledningen til pin 7 (med en egnet motstand). Du kan deretter bruke nettadresser til skjemaet http: // ip: port / digitalWrite / 8/1 for å slå på LED, og http: // ip: port / digitalWrite / 8/0 for å slå den av og lese analoge verdier med analogRead / 0 .

Dette eksemplet fra bildr vil også lære deg hvordan du kontrollerer en sekvens av lysdioder ved å lese GET-forespørselen.

Du kan også like å sjekke dette eksemplet som skriver ut et skjema på siden for å styre en blinkm RGB-LED, selv om du enkelt kan tilpasse den til en RGB-stripe som det dynamiske omgivelseslysprosjektet. Bygg ditt eget dynamiske omgivelseslys for en Media Center-bygning Din egen dynamiske omgivende belysning for et mediesenter Hvis du ser mange filmer på PC eller mediasenter, er jeg sikker på at du har møtt lysdilemmaet; slår du helt av alle lysene? Holder du dem på full blast? Eller ... Les mer vi bygget en stund tilbake.

Vel, jeg hadde det gøy å bygge disse, så jeg håper du gjorde det også. Hvis du har laget et bibliotek som gjør servering av sider og kontroller enkle, vennligst ta kontakt i kommentarene.

In this article