
[LiClock] Programmable Ink-screen Clock
PRO[LiClock] Programmable Ink-screen Clock
License
:Public Domain
Description
A 2.9-inch programmable ink screen weather clock based on ESP32
Project Description
Github warehouse click here
The introductory video has been released, click here
Firmware Burn/Update, click here
Open-source Protocol
Project-related Features
- Get the local weather and display it through the Colorful Cloud Weather API.
- The ESP32 internal RTC is used to provide the clock signal, and the linear offset is compensated by two NTP synchronizations, and the daily error can be less than 2 seconds.
- The built-in web server is used to configure weather locations, manage internal files, and more.
- Built-in GUI framework, including dialogs, menus, etc.
- Easy e-book functionality.
- Bilibili fan display.
- Complete settings menu.
- Play transcoded Midi music through the buzzer.
- Simple alarm clock.
- The built-in Blocky graphical development environment allows you to add functionality to it as long as you have a browser.
- The system framework is decoupled from the App, and the source code of each "App" is a single cpp file, which is automatically recognized and compiled and added to the App list after being copied to the App directory without other modifications. Peripherals such as TF cards and sensors are automatically recognized when the machine is turned on for the first time, and are managed by the system in a unified manner, and automatically power off when not in use (the sensor enters the power-saving mode)
- The app is event-driven, with a relatively complete GUI framework, which can quickly implement the desired function, and in addition, built-in apps such as e-book apps consume the same power as when the screen is not refreshed and when the screen is turned off (note: the GUI framework does not enter sleep mode while waiting for user input)
- There is no need to configure API KEY, no need to manually set clock error correction, no need to manually configure Bilibili UID (mobile phone scan code login), just fill in the weather GPS coordinates (GCJ-02) and WiFi password.
- For those who don't know how to configure the environment, full-featured binaries are provided, and all functions can be experienced by direct burning.
- Built-in Lua language interpreter and Google Blockly development environment, AP can be written through lua languageP, run directly after uploading on the web side, and at the same time, it can be seamlessly added to the App list, set as the home screen App, etc.
- The PCB is designed with an automatic power switching circuit, so there is no need to worry about the danger caused by the battery cycle charging and discharging.
- The software will automatically shut down if it is not operated for a certain period of time to avoid battery drain (only limited to the App selection interface and network reconfiguration interface, and other places that need to be confirmed by the user will not automatically sleep)
- At the same time, it is also designed with a power detection function.
- In case of an infinite restart, you can press and hold the left button first, and then press the reset button on the back, which will immediately turn off the device and avoid frequent flashes burning out the screen.
Project Properties
Project Progress
- 2023/07/24 Functional design, development board purchase.
- 2023/07/27 The functional feasibility analysis has been completed, and the basic development idea has been determined.
- 2023/08/06 The functional test of each circuit module has passed.
- 2023/08/08 Create an EDA project.
- 2023/08/09 Component selection is completed, PCB design is completed, and production is awaiting review.
- 2023/10/02 Open source to Github.
- 2023/10/17 Completion of project introduction.
Design Principles

Software Description


Physical Display
Back

Main page
(precipitation in the lower shade)

Warning message
(press any key to return)

App selection
(press and hold the middle button in any app other than the e-book app, or select any app as the home screen app in the settings)

Complete settings menu

Scan the QR code to connect to the hotspot for configuration
(you can also manually enter the password or use SmartConfig)

E-book
(long press the left button to the previous page, long press the right button to the next page, continue to press and hold the right button to enter the menu)

Bilibili QR code login
(Got cookies.,The rest of the functions are up to everyone , actually because I don't know how to design UI [doge])

Simple Bilibili follower display interface
(UI is very simple, but the function exceeds 80% of works on the Internet)

The peripherals are automatically detected.
(Can be used to verify that the sensor is correctly welded)

--Introduction to Blockly IDE--
This feature was also developed to solve the problem of customizing watch faces.
You can modify the code at any time, share projects with each other, and reduce the compilation and upload time required for debugging.
Web (you can use "building blocks" on the left to program, or directly edit Lua code, but do not support reverse conversion of Lua to Blockly)
Using WebSocket for terminal functionality, lua output and error messages will be redirected here.
Lua runs the results

The created App, except that it can be uninstalled or installed from the TF card, is completely no different from the built-in App (the built-in App is based on C++)
For more information, please refer to the Github Readme.
File management

Preview the "lbm" image file
(essentially xbm binary, you can save it in xbm format with GIMP, and then use the xbm to lbm tool in the tools directory of GitHub repository)

Lua has implemented relative directories (if you need to access the resource file, please put it in the webtmp folder, it will be copied when you create the App, support . Indicates the current directory and does not support: folder)
The SD card is mounted to /SD/, and the built-in littlefs is mounted to /littlefs.
Buzzer supports playing .buz files (python programs from midi to buz are also placed in the tools directory of GitHub)
More Lua functions are being added, and you are also welcome to contribute your own code or project files.
DIY Considerations
This time, the BOM is very complete, and you can buy it directly
After small batch production test, the hardware has no BUG, if the program can not be burned into the problem can only be soldered well.
The HW3.0 hardware has fixed all the previously mentioned problems, and the software only supports version 2.0 and above.
If a connector is selected for the battery interface, it may not fit into the housing.
The entire page of the schematic "Optional Functions" can be left unsoldered, and the system will automatically identify what is soldered.
ESP32 can use the ESP32-WROOM series, and the system will automatically adjust the LittleFS partition size according to the remaining Flash capacity.
Don't buy an ESP32 with PSRAM!!
After soldering, burn the program and follow the OOBE configuration.
A key to burn the latest firmware: https://diylxy.github.io/LiClockWebFlash/
The latest source code and compiled firmware are at the top of this page.
(The attachment contains the source code updated on December 2, 2023 in accordance with the requirements of the open source platform)
The 3D model is also available in the Github repository.
If you think the project is good, don't forget to like and collect, thank you!
Designed by 小李电子实验室 (from OSHWHub)
a:https://oshwhub.com/lxu0423/ESP32-duo-gong-neng-mo-shui-ping
Design Drawing


Comment