User avatar
By RichardS
#43059 User
yuki

Description
The starting point to the project where to stream my Door cam to a Display in my living room.
the end result is a library that can be used to stream all kind of Image data to a Display connected to a ESP.
Including video playback, browser, full Desktop and all kind of fancy GUIs that normally never can run on a embedded system.

the ESP connects to a VNC server (any server that supports rfbproto 3.3 and up will do)
the Server delivers full or partial screen updates via WiFi to the ESP there the data will be decoded and written to the display.
the touch events goes the other way around they send from ESP to the VNC server and they will be handled as normal mouse events.

X based VNC server on linux:
vncserver :888 -geometry 320x240 -depth 16 -name "ESP VNC :888" -AlwaysShared=1 -rfbport=19888 --MaxCutText=127 --SendCutText=0 -ImprovedHextile=1 -s 0 dpms -br -nocursor

Possibilities:

Thanks to this the ESP not need any rendering engine.
this make it possible to use for example a browser for rendering the GUI and handling the events,
which opens a whole new possibles for creating a GUI with state of the art Web technology.
some nice benefit is the same GUI can be used from the Smartphone or PC, programming the GUI is only needed once.

also possible is the streaming of video or using the setup as mobile remote control thanks to WiFi.

Performance:

With good and stable WiFi signal the updating the 320*240 Display (565 RGB) is possible with 25 FPS.

Parts
ESP12-E module
ILI9341 Display (optional with XPT2046 Touch)

Links
Github

Video




Images
Attachments
CbqDVazVIAAlvMt.jpg
User avatar
By zajaklis
#43322 i do have XPT2046 Touch + ILI9341
when compiling your example for touch.. i get:

VNC_ILI9341_touch:95: error: 'class XPT2046' has no member named 'onChange'

touch.onChange(6, 200, [](bool press, uint16_t x, uint16_t y, uint16_t z)

and

VNC_ILI9341_touch:157: error: 'class XPT2046' has no member named 'loop'


xpt2046 library is used from here https://github.com/spapadim/XPT2046
User avatar
By yuki
#43469 Hello,

you need the librarys from here:
* - SPI (arduino core)
* - WiFi (arduino core)
* - Adafruit_GFX (https://github.com/adafruit/Adafruit-GFX-Library)
* - Adafruit_ILI9341 (https://github.com/Links2004/Adafruit_ILI9341)
* - arduinoVNC (https://github.com/Links2004/arduinoVNC)
* - XPT2046 (https://github.com/Links2004/XPT2046)