Code for family dashboard. Always-on 10 inch e-ink screen, updated daily.
- Inkplate 10
- Docker server, network accessible from Inkplate device
- PirateWeather API key
- This component fetch the current dashboard from the server and displays the info as-is on e-ink display.
- The device use wifi to access the home network.
- Client code is in client/ folder.
- Arduino C code. Use Arduino IDE to build and deploy to device.
- Generate the dashboard image on a schedule. Serve this image to the client device when requested.
- Server code is in server/ folder.
- It is a basic node.js application.
- The weather is fetched from the pirateweather api. See server/accessors/pirateweather.js
- The events data is fetched from an iCal url. See server/accessors/ical.js
- The dashboard image is generated using an html template. See server/accessors/template
Arduino IDE.
Dependencies:
- Inkplate arduino libraries.
- Inkplate board definition.
Environment variables:
PIRATEWEATHER_APIKEY=***
WEATHER_CACHE_DURATION_MINUTES=120
WEATHER_AM_HOUR=8
WEATHER_PM_HOUR=14
LAT=***
LON=***
ICAL_URL=https://p35-caldav.icloud.com/published/2/***
PORT=8080
Put those values in .ENV file to configure your server.
cd server
npm install
node .
Now, you can make changes to the template and see the result in a browser at http://localhost:8080/generatePage.
I used NSSM to host the node app as a windows service on my home server box.
Compilation error: Error resolving FQBN: getting build properties for board Inkplate_Boards:esp32:Inkplate10: invalid option 'PSRAM'
Compilation error: Error resolving FQBN: getting build properties for board Inkplate_Boards:esp32:Inkplate10: invalid option 'CPUFreq'
- Delete inkplate library
- Delete inkplate board
- Install inkplate board
- Compile. Missing file error should happear.
- Install inkplate library
- Compile... it should work now.