ESP8266 webserver som betjänar flera sidor (4 / 5 steg)

Steg 4: Ändrade server-fil som heter newserver.lua, nyckeln till multi-webbsidor.

Nu har jag laddat upp filerna kallas newserver.lua, index.htm och bob.htm till modul; Startas och angivna dofile("newserver.lua").

Att ange mitt module'a IP-nummer visas filen index.htm. Om du klickar på länken till Bob visas bob.htm och hem kommer tillbaka till indexsidan.

Viss diskussion om newserver.lua:

Jag har kodat index.htm som filen "landning". Jag vill att modulen för index.htm när jag kommer in modulens IP i en webbläsare.

Jag använder några LUA kod för att tolka inkommande huvudet begäran att avgöra om begäran anger en fil eller inte. En begäran om att bara min modulen IP nummer 192.168.11.44 anger inte en särskild fil.

En del av ett typiskt huvud begärande index. kan se ut:

FÅ / HTTP/1.1
Värd: 192.168.11.44 anslutning: keep-alive
Acceptera: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
..............etc.

Denna begäran är att be om bob.htm:

FÅ /bob.htm HTTP/1.1
Värd: 192.168.11.44 anslutning: keepalive-acceptera: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8... etc.

Parsning det första exemplet, skulle newserver.lua inte hitta en viss fil att öppna. Eftersom jag vill index.htm ska filen landning, när tgtfile returnerar noll, ersätta jag index.htm. Rad 6.

Tolka rubriken för andra begäran kommer att identifiera att begäran är anger en fil, i detta fall "bob.htm". Så är bob.htm öppnat och skickade en linje på på gång med klienten: send(file.read()) kod.

Det är viktigt att inte file.read() filer som inte finns.
Detta kommer att orsaka modulen till panik och starta om.

Så, innan behandlingen jag testa för att se om filen finns med file.open(), linje 7 och 8.

Om ingen fil, skickar newserver.lua helt enkelt tillbaka 'filen hittades inte', och en länk tillbaka till målsidan.

Detta händer när jag klickar på Jill eller Barb tills jag ladda htm-filer för dem.

------------------------------------------------------

  1. --newserver.lua
  2. SRV=net.createServer (net. TCP)
  3. SRV:listen(80,function(Conn)
  4. Conn: on("receive", function(client,payload)
  5. tgtfile = string.sub (payload,string.find (payload, "GET /") +5,string.find(payload,"HTTP/") -2)
  6. om tgtfile == "" då tgtfile = "index.htm" slut
  7. lokala f = file.open(tgtfile,"r")
  8. om f ~ = noll då
  9. client: send(file.read())
  10. File.Close()
  11. annat
  12. client: send("<html>")
  13. client: send(tgtfile.."not Found-404 error.")
  14. client: send("<a href='index.htm'>Home</a>")
  15. slutet
  16. klient: close()
  17. collectgarbage()
  18. f = noll
  19. tgtfile = noll
  20. avsluta)
  21. avsluta)

_____________________________________

Se Steg
Relaterade Ämnen

Blink för ESP8266 native, som arduino använder Windows

När jag bougth i ESP8266, min första tanke var att använda ESP8266 som en Wifi sköld för Arduino. Jag fick reda på att ESP8266 är en kraftfull enhet av det själv. Och jag frågade mig själv. Varför inte använda enheten utan att använda en arduino. Enh...

Hur att helt hänga en bild som kräver flera naglar

Denna "kompatibel" beskriver stegen för ett dumt litet trick (som jag plockade upp år sedan) för att helt hänga bara om något som kräver mer än en spik/skruv/cleat. Det fungerar lika bra för bilder, som den gör för grenuttag (eller bara om något...

Hur du skriver ut en stor affisch på flera sidor?

Jag är ett stort fan av TV-serien "Breaking Bad".Så har jag beslutat att skriva ut en stor affisch med huvudpersonerna i serien Walter White och Jesse Pinkman.Det första problemet jag inför var vilken bild att välja? Jag bestämde mig att välja k...

Betjänar en Aqualisa vattenventil 605/405 dusch controller

Det finns gott om förklaringar om att ta bort denna dusch controller patron (både Termostatblandare - 605 och den manuella versionen - 405) men ingenstans kunde jag hitta ut hur demontera patronen så att jag kunde byta O-ringar inuti.Jag tror att en...

ESP8266 WebServer Scada SVG valor Random con Bateria 6v

Se ha implementado un servidor web con el ESP8266 que en diferencia este tiene un mini scada basado sv Gráficos Vectoriales Redimensionables o SVG, se hektar tomado una plantilla de servidor web y se ha creado internamente FN: s SVG al cual se le han...

GadgetKeeper väderstation

GadgetKeeper utvecklingsplattform ger en komplett ansökan design runtime och intelligens miljö möjliggör snabb skapandet av Sakernas Internet lösningar för att ansluta din sensorer, anordningar och utrustning ("saker") med människor och system.G...

Bärbar damm insamlingssystem med buller minskning & stoftavskiljare med Shop Vac

Detta är en damm samling vagn som jag gjort för min lilla verkstad som tjänar flera syften:o det ger en behändig bärbar arbetsytor av olika shop projekto fungerar den som min primära sättet att dammsuga damm från golvet och arbete ytoro den innehålle...

Altoids Tic-Tac-Toe och Puzzle kul

med en övernattning fest? Underhålla barnen på en lördag morgon genom att låta dem göra dessa kex. Du kan inte gå fel som betjänar dessa en morgon. Frukost blir aldrig tråkig leker med Tic-tac-toe och pussel kex. Jag ville att mina barn var unga igen...

Host a Cheese Tasting Party

Cheese is wonderful stuff. Vissa av oss fastnar i gamla hjulspår, dock, och bara regelbundet äter ett par sorters ost. En ostprovning party är ett bra sätt att prova nya sorter, ompröva några av dina favoriter och tänka över hur du smaka ost i allmän...

Hur man får in din dröm skola (Ivy league, statliga eller andra)

fick jag genom mina fyra år på gymnasiet med betydande stress, förvirring och ångest. Ja, jag fungerade min butt off, men jag fick i min dröm skola. Här är en fyra års spelplan för dem som vet vilken skola de vill skjuta för.Steg 1: forskning! Var vi...

Mini frukter av skogen kakan

frukt av skogen kakan är ett av mina absoluta favoriter. Jag försökte göra denna version lite nyttigare än den genomsnittliga köpta slag men det är fortfarande mycket välsmakande! En sak som jag var tvungen att experimentera med lite var skorpan bakn...

OLPC Telepresence

Uppdateringar! Detta är ett pågående projekt. Jag kommer att uppdatera detta instructable, men min blogg har uppdateras oftare.One Laptop per Child (OLPC) är en ny, ideell förening dedikerad till forskning för att utveckla en $100 laptop, en teknik s...

Billiga 5.1 usb-ljudkort för mac

Välkommen till min allra första instructable!Varför?Jag har alltid haft windows-datorer med 5,1 ljudkort. Den setup jag satt i mitt rum är därför också ett 5.1 högtalarsystem. Den har tre 3,5 mm ljuduttag: främre högtalare, bakre högtalare och meller...

Fett brand säkerhet klistermärke

Nyligen korsade jag en vän med en hand i ett bandage. "Vad hände?" Jag frågade. Min vän svarade: "har vi ett fett brand i vårt kök och jag bar brännande pannan utanför, därmed får brännskador på min hand". Vi har diskuterat händelsen f...

Hur man gör alla det VideoGame saker du alltid velat

Ah TV-spel... Jag menar, seriöst... har det någonsin funnits en bättre senaste tiden? OK, så det har, men ingen som är brytt sig om att klicka på denna speciella post har inte lidit sinne bedövande timmar det tar att verkligen och desperat älskar ett...

Frukost-baserade tidningen organisatoriska enhet

dess en magazine innehavare av en återvunnen flingpaket!Billiga och effektiva, detta magazine hållare (en gång en stor flingpaket) har nu ett betydligt längre liv som betjänar dessa ivrig läsare och/eller abonnenter av tidskrifter överallt. Den stora...

Hur man gör spaghetti i ett par enkla steg

Det är verkligen lätt att göra spaghetti hemma! Använda jarred tomatsås betyder kan du äta middag på bordet i under en halvtimme, alltför. Fortsätt å läsa för att ta reda på hur man gör en grundläggande spaghetti med köttfärssås!Steg 1: Få dina lever...

Bacon lindade Chipotle fyllda Jalapenos

Bacon, det har blivit en meme i kulinariska och icke-kulinariska, världen. Om du vill sätta en modern twist på en maträtt, bara fylla, varp, ingjuta eller strö den med bacon. Dessutom är det svårt att förneka dessa skinny fläsk remsor magiska och med...

Skapa ditt eget äventyr spel (HTML)

detta är en mycket mycket mycket grundläggande användning av HTML-programmering att göra a skapa ditt eget äventyrsspel. Jag är inte super kunnig i HTML. Om du ser detta och prova och vill nötkött upp ditt spel för att göra det mer visuellt awesome k...