jamct / DoorsignEPD

Doorsign with E-Paper-Display with ESP32. Loading images from webserver.
GNU General Public License v3.0
100 stars 36 forks source link
c-plus-plus door-sign esp32 esp32-arduino php

Currently under development

We are working on a new version on a modern base. There will be a modern web server (served as a docker image too) and optimized code for Platform.io (which has a better dependency manager). Stay tuned!

Dependency: ArduinoJson

This project depends on the Arduino library ArduinoJson which currently breaks the build if you use the latest version 6 (cf. arduinojson.org/v5/doc/). To overcome this issue, downgrade (for example using the Arduino library manager) to the most recent version 5 (currently 5.13.4). Ensure that you do not upgrade to version 6 accidentally via the automatic update function.

DoorsignEPD

Project to build digital doorsign based on ESP32, Waveshare E-Paper-Display (2.9, 4.2 or 7.5 inch). The display can load image from Webserver and uses deep-sleep mode of ESP32 to save energy. Images are generated on Webserver running PHP. Examples in this repository generate a weather-station, a doorsign for an office and a doorsign for a conference room.

Getting started (Client)

To start, you need the Arduino IDE with dependencies installed. Hardware setup is described here: ct.de/yrzv.

The example wiring as used in the article is shown in the table below.

Display ESP32 Type Comment
BUSY 4 GPIO, ESP Input Low active, display busy
RST 16 GPIO, ESP Output Low active, reset display
DC 17 GPIO, Data / Command Selection, ESP Output High: data, low: command
CS 5 GPIO, Chip Select, ESP Output Low active
CLK 18 SPI, SCK pin (clock) Defined by ESP
DIN 23 SPI, MOSI pin Defined by ESP
GND GND Ground
3V3 3V3 Supply voltage, 3.3V 8mA refresh, ~5uA standby

The exact wiring depends on your hardware. Check for each pin (GPIO) if they are not occupied by for example LEDs.

Getting started (Server)

The folder 'server' contains examples for content and outputs it in Byte-stream-format for ESP32. Copy the folder on a webserver with PHP installed and GD active (PHP >7.0). In the URL you tell the server what to show (and for which display size):

With Get-Parameter 'scale' you adjust size of the text. Set 'debug' to true to get a png-image and false for byte-Stream for ESP32. Parameter size is automatically added by ESP (depending on your display).

Example contents

Dependencies

This project depends on the following libraries. Please use the most recent stable version -- especially for GxEPD and Basecamp. GxEPD currently has to be downloaded and installed manually. The other library can be installed using the Arduino library manager.

Indirect dependencies

Tested dependencies

This project was tested with the following Library versions:

More information

This repository is part of article "Ausdauernde Infotafel" from German computer magazine "c't". Link: ct.de/yrzv

To do

New functions

Support for red-black-white display!