Skip to content
M.nu-fork av FastLED-baserad webserver för ESP8266.
C++ HTML
Branch: master
Clone or download
Pull request Compare This branch is 16 commits ahead, 22 commits behind jasoncoon:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
data
GradientPalettes.h
LICENSE
README.md
esp8266-fastled-webserver.ino
webapp.png

README.md

X-mas lights FastLED + Lolin D1 Mini (ESP8266) Web Server

Detta är en mjukvara för att med en Lolin D1 Mini och en Levelshift Shield, kunna fjärrstyra en LED-slinga via ett webbinterface. Den flashas via Arduino IDE till en ESP8266 (i vårt fall Lolin D1 Mini).

Hårdvara

Vi använder mjukvaran till Lolin D1 Mini och WS2801-slingor. Eftersom WS2801 kommunicerar på 5V använder vi en egentillverkad Levelshift Shield som omvandlar Lolins 3.3V-signal till 5V. Förslag på delar:

Spänningsmatning (5V) kan i detta fall anslutas direkt till slingans matningskablar som då också förser Lolinen med ström.

Observera att FastLED är kompatibelt med de flesta adresserbara LED-typer, så genom att ändra koden kan man enkelt använda andra typer (t.ex. NeoPixel, WS2811/WS2812, APA102 etc).

Funktioner

  • Saknas WiFi-login startar ESP:n som accesspunkt och man kan då ansluta till den och ställa in WiFi-nätverk på URL: http://192.168.4.1
  • Slå av och på ljusslingan
  • Justera ljusstyrka
  • Ändra vilket ljusläge som visas
  • Justera färg

Eventuella framtida funktioner

  • Justera hastighet
  • Fler ljuslägen

Webb-applikation

Webb-app

Webb-applikationen lagras på det inbyggna flashminnet på ESP-chippet (SPIFFS). Denna laddas upp separat från sketchen, vilket gås igenom nedan.

Det hela är en enkel webbsida som använder jQuery och Bootstrap. Den har knappar för av/på, en slider för att ställa ljusstyrka, och dropdown-menyer för att välja färgmönster/blinkmönster. En färgväljare finns också (baserad på jQuery MiniColors). Alla ändringar skickas automatiskt till styrenheten, men ljusstyrkan och färgvalet skickas med fördröjning för att inte överbelasta ESP:n med anrop.

Installation

För att lägga in mjukvaran använder du Arduino IDE:n som kan hämtas här. Du behöver lägga till "ESP8266 Core" för att jobba mot Lolin och andra ESP-baserade chipp, detta görs under File > Preferences, kopiera in URL:en "http://arduino.esp8266.com/stable/package_esp8266com_index.json" i Additional Boards Manager URLs-fältet. Klicka på OK. Klicka därefter på Tools > Boards: ... > Boards Manager. Hitta och klicka på ESP8266 (att söka kan förenkla detta). Klicka på Install. Efter installationen, klicka på Close och därefter väljer du din ESP8266-variant under Tools > Board: ... (i vårt fall WeMos D1 Mini).

Appen behöver följande bibliotek, som antingen kan laddas ner manuellt från Github och läggas i Arduino IDE:ns libraries-mapp, eller installeras enligt instruktion här (engelska) genom att använda Arduino library manager.

Ladda därefter ned koden härifrån Github, med den gröna Clone or Download-knappen ovan. Klicka på Download ZIP, och packa upp innehållet i din Arduino-sketchmapp. Gör eventuella modifikationer (t.ex. antal LEDs och WiFi-inlogg) och ladda därefter upp koden med Upload-knappen i IDE:n. Kom ihåg att välja rätt ESP-typ och seriellport under Tools.

Filerna som visar webbapplikationen behöver laddas upp separat till chippets SPIFFS. För att göra det behöver du installera en plugin till Arduino IDE:n, Arduino ESP8266FS tool. Ladda ner filen. Den ska sen packas upp i Arduino/tools-mappen enligt instruktionerna. När du lagt in den där och startat om IDE:n kan du öppna sketchen och klicka Tools > ESP8266 Sketch Data Upload, vilket laddar upp filerna till minnet. Observera att detta kan gå ganska långsamt, ibland tar det flera minuter.

Komprimering

Det är möjligt att komprimera filerna med gzip innan uppladdning för att spara plats, se huvudrepots instruktioner för direktiv då vi inte sett någon anledning att göra det.

REST-tjänst

Mjukvaran tillhandahåller, förutom webbsidan, en enkel "RESTful" webbtjänst med hjälp av ESP8266WebServer-biblioteket. Befintliga värden hämtas med HTTP GETs, och nya värden sätts med POSTs och parametrar i anropet. Enheten kan ansluta till en befintlig router/accesspunkt eller som fristående accesspunkt.

IR-styrning

Huvudrepot har IR-styrning, men detta såg vi som onödigt och valde att plocka bort det ur koden.

You can’t perform that action at this time.