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

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

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 skjoldet 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 opp Fil->eksempler->Ethernet->Internett server som er gitt i Arduino IDE. Finn linjene som refererer til MAC og IP-adresse.

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 det forrige 0x litt 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.

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-server (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-tips: Hvis du får denne feilen, betyr det at du feilaktig har lagt inn en hovedstad O i stedet for a 0 i MAC-adresseområ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!

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

Du bør se noe sånt - så langt så bra. Dessverre er dette bare tilgjengelig på lokalt nettverk akkurat nå, så gå inn på ruterenes portkonfigurasjonsside for å sette om en omdirigering fra port 8081 til den samme porten på din Arduino IP (Se: Hva er port videresending? Hva er port videresending og hvordan kan det hjelpe meg? [MakeUseOf Forklarer] Hva er port videresending og hvordan kan det hjelpe meg? [MakeUseOf Forklarer] Skriker du litt innvendig når noen forteller deg at det er et problem med portoverføring, og derfor vil din skinnende nye app ikke fungere? Din Xbox vil ikke la deg spille spill, dine torrent nedlastinger nekte ... Les mer )

Test dette ut fra en mobil 3G-nettverksenhet med Wifi deaktivert; Husk å bruke din offentlig IP-adresse, ikke din lokale nettverksadresse. Ruteren din skal kunne fortelle deg dette, eller bare spørg Google “hva er min IP“.

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 at serveren faktisk leser 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ør hoppet til kontrollerende en Arduino herfra er ganske sprang, 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å lysdioden, og http: // ip: port / digitalWrite / 8/0 å 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.

Utforsk mer om: Arduino, Web Server.