Ge ditt Arduino-projekt sin egen Mini-Webserver, med en Ethernet-skärm

Ge ditt Arduino-projekt sin egen Mini-Webserver, med en Ethernet-skärm / DIY

För en tid sedan visade jag dig hur du ställer in ett internetkontrollsystem för din Arduino Så här ställer du upp Arduino Web Control utan ett Ethernet Shield Så här ställer du upp Arduino Web Control utan ett Ethernet Shield Under de senaste veckorna har jag överlåtit kontroll över stämningen belyser i min studio för tittare under live-sändningen av Technophilia Podcast - du kan se resultaten av det i ... Läs mer - men det var tvungen att hålla kontakten med en dator via USB för att upprätthålla internetanslutningen. Om du har en Ethernet-sköld men det är inte nödvändigt Idag ska vi titta på att skapa en Arduino som en grundläggande webbserver så att vi kan vara värd för vår egen enhetskontrollwebbplats.

Du kommer behöva:

  • En Arduino eller Arduino klon som detaljerad här Spendera inte pengar på en Arduino - Bygg din egen för mycket mindre Spendera inte pengar på en Arduino - Bygg din egen för mycket mindre Jag älskar min Arduinos. När som helst, jag har en hel del projekt på språng - prototyper är bara så lätt med dem. Men ibland vill jag hålla projektet funktionellt utan att köpa ... Läs mer
  • Ethernet Shield (~ $ 35) - se till att du får en version som matchar din Arduino eftersom de inte är alla kompatibla
  • Reservport på din router eller strömbrytare och Ethernet-kabel
  • WebServer-exemplet som tillhandahålls i Arduino-programmet

Inställning

Ethernet-skärmen använder stiften 10 till 13 för att kontrollera nätverksanslutningen, så lämna dem ut ur ditt projekt; stift 4 används också för SD-kortet, men vi kommer inte använda det idag.

Första saker först - öppna upp Fil->exempel->Ethernet->Webbserver som tillhandahålls inom Arduino IDE. Hitta linjerna som hänvisar till MAC och IP-adress.

MAC-adressen för minen hittades på lådan - din kan vara på själva skärmen. Justera den första värden - du måste lämna föregående 0x lite men. Tekniskt sett spelar det ingen roll om vad du lägger här så länge du inte har några motstridiga värden på ditt subnät - men det var sålunda den adress som tilldelades av tillverkaren, så vi borde antagligen hålla fast vid det. Bara vet att om du tar fel, kommer det fortfarande att fungera.

Nästa är IP-adressen. Vi vill ha en specifik fast adress så att vi kan konfigurera porten vidarebefordran ordentligt - skölden kan få en adress från DHCP, men det är bara användbart om det bara kommer att användas som en klient, inte en server. Fyll i en IP-adress som är oanvänd och minnesvärd på ditt lokala nätverk, din router IP och 255.255.255.0 (delnätet). Om inget av detta är meningsfullt för dig, läs vår kostnadsfria och grundliga guide till hemnätverk Allt du behöver veta om hemnätverk Allt du behöver veta om hemnätverk Att ställa in ett hemnätverk är inte så svårt som du tror att det är . Läs mer .

Port vidarebefordran

Redigera raden som säger EthernetServer-server (nummer), och ändra numret till 8081. Detta ställer in vår server för att lyssna på port 8081 om din Internet-leverantör blockerar webtrafik på den traditionella porten 80.

Ladda upp demo vid denna tidpunkt och testa det på en lokal maskin. Du måste självklart också ansluta Ethernet-kabeln. Håll USB-kontakten också, eftersom vi behöver det för ström - du kan ersätta det med en 9V-strömförsörjning senare, men vi testar fortfarande.

Noob-tips: Om du får detta fel betyder det att du felaktigt har lagt ett huvudstad O istället för a 0 i MAC-adressområdet. Det finns ingen O i hex-värden! Om du verkligen är ny kan det vara värt att kolla in vår nybörjares Arduino guide!

För att komma åt Arduino skriver du adressen och portnumret direkt från en webbläsare.

Du borde se något sånt - så långt så bra. Tyvärr är detta endast tillgängligt på lokalt nätverk just nu, så fortsätt in i din router portkonfigurationssida för att ställa om en omdirigering från port 8081 till samma port på din Arduino IP (Se: Vad är port vidarebefordran? Vad är port vidarebefordran och hur kan det hjälpa mig? [MakeUseOf Explains] Vad är port vidarebefordran och hur kan det hjälpa mig? [MakeUseOf Explains] Skriker du lite inuti när någon säger att det finns ett portproblem och det är därför att din glänsande nya app inte fungerar? Din Xbox låter dig inte spela spel, dina torrentladdningar vägrar ... Läs mer )

Testa detta ut från en mobil 3G-enhet med Wifi-inaktiverad; kom ihåg att använda din allmän IP-adress, inte din lokala nätverksadress. Din router ska kunna berätta för dig det här, eller bara fråga Google “vad är min IP“.

Förstå produktionen

Sidan som serveras i demo läser värden från de analoga stiften - men eftersom det inte finns något som är anslutet där, kommer du att få nonsens. Prova att ansluta en ljussensor (bildmotstånd) till porten A0 och +5v, med en 10k motstånd också på A0 och GND (det här är en spänningsdelare, eftersom analoga stiften endast kan läsa spänning och inte motstånd) bara för att bekräfta att servern faktiskt läser värden. Observera att när ljusintensiteten ändras, förändras värdena på de andra stiften också - det beror på att de inte är kopplade till varandra.

Komma Interaktiv

Att läsa dessa värden är allt bra och bra, men gör hoppet till kontrollerande en Arduino härifrån är ganska språng, och utanför ramen för denna handledning idag. I stället för att återuppfinna hjulet ska jag peka dig mot Arduino Forum User Hari som skrev ett grundläggande API för att interagera med digitala stiften. Använd den här koden (jag har ändrat den för att fungera med det senaste Ethernet-biblioteket), anslut den långa ledningen till en LED (anod) till stift 8 och den korta ledningen till stift 7 (med ett lämpligt motstånd). Du kan sedan använda webbadresser i formuläret http: // ip: port / digitalWrite / 8/1 för att slå på LED, och http: // ip: port / digitalWrite / 8/0 att stänga av det och läsa analoga värden med analogRead / 0.

Detta exempel från bildr kommer också att lära dig hur man styr en sekvens av lysdioder genom att läsa GET-förfrågan.

Du kanske också gillar att checka ut det här exemplet, vilket matar ut en blankett på sidan för att styra en blinkm RGB-LED, men du kan enkelt anpassa den till en RGB-remsa, t.ex. det dynamiska omgivningsbelysningsprojektet. Bygg din egen dynamiska omgivande belysning för en Media Center-byggnad Din egen dynamiska omgivande belysning för ett mediecenter Om du tittar på många filmer på din dator eller mediecenter, är du säker på att du har mött belysningsdilemmet. stänger du helt av alla ljus? Håller du dem på full blast? Eller ... Läs mer vi byggde ett tag tillbaka.

Jo, jag hade kul att bygga dessa, så jag hoppas att du gjorde det också. Om du har gjort ett bibliotek som gör att du serverar sidor och kontroller enkelt, var god kontakta i kommentarerna.

Utforska mer om: Arduino, webbserver.