DIY A RedClock to Increase Work Productivity!
Published: 2021-03-16 06:00:51

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mcvzd5ge536xzlgzobzj.png)

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kwkgk2ewohsxhy4tv3g6.png)

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cblfcgje7pap8crpnwx4.png)

### Description: 

RedClock simultaneously displays time and weather icons on ink screen (time information is obtained through ntp, weather information is obtained from the Weather Report via js language, wired and wireless wifi network connection is supported). One button can switch into [Pomodoro Technique](https://en.wikipedia.org/wiki/Pomodoro_Technique), the Pomodoro Technique defaults 25 minutes as a period, when it comes to 25 minutes, the screen will be triggered to prompt a message (Pomodoro turns red color). Meanwhile, the RedClock reserves the patch buzzer device pad and supports beep alarm (can be associated with multiple alarm events, for example, temperature, air pressure, and many other events that exceed threshold). It can also obtain temperature and air pressure information via external air pressure sensor LPS22HH (ST barometer) and periodically display it through ink screen. Time, weather, temperature, and air pressure information also supports simultaneous display on the device IP when there is network access to ART-Pi.

### Details: 

For the first time to create an ink screen, I'm thinking of adding the Pomodoro Technique to the traditional WIFI clock, making it more powerful instead of providing time and weather information only, and looking for a way to help people increase productivity and become your best, most productive self at work. when using the RedClock.  


My RedClock is now supported to implement:

- Display time and weather info through ink screen. 
- One button can switch into Pomodoro Technique
- Obtain temperature and air pressure info via the external air pressure sensor lps22hh and passes to ink screen

- Time, weather, temperature, and air pressure information also supports simultaneously display on the device IP when there is network access to ART-Pi.
  
  

### Development Environment:

Hardware: [ART-Pi](https://github.com/RT-Thread/ART) 、LPS22HH、SSD1619

[RT-Thread](https://www.rt-thread.io/) inside: V4.0.3

Development Tool: 

- Compiling Tool: arm-none-eabi-gcc、 arm-none-eabi-binutils

- Editing Tool: vim

- Burning & Debugging Tool: openocd 0.10+ dirty、kermit、telnet、gdb

Hardware Development Tool：Kicad（RedClock Expansion Board Development Tool）



### Software Details:

The opensource [RT-Thread](https://www.rt-thread.io/) real-time operating system is taken into this project. 

**Kernel Part：**

Mutex、Semaphore、mempool、device

**Component Part:**

cJSON、EasyFlash、webnet

**Software Part:**

lps22hb(sensor)

**Others:** 

Bus Interface: I2C(Sensor)、SPI(Ink Screen)

### Hardware Architecture: 

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7gj9ucusvb74uig51izh.png)


### Software Architecture:

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/se5pqftk79bfjm3g3roe.png)

If you're looking for a step by step tutorials and code, please message [Opensource RT-Thread IoT OS](https://www.facebook.com/RT-Thread-IoT-OS-110395723808463). 

I recorded all the stuff into documents and would like to share it with you all. 
1: Create the burning environment of Linux+openocd+gdb
2: RedClock Expansion Board Design 
3: RedClock Web Interface Development
4: RedClock air pressure sensor development
5: RedClock ink screen display design


**RT-Thread Contact Info:**

 [Website](https://www.rt-thread.io/)  |  [Github](https://github.com/RT-Thread)  | [Twitter](https://twitter.com/rt_thread) |  [Facebook](https://www.facebook.com/RT-Thread-IoT-OS-110395723808463)   |   [Youtube](https://www.youtube.com/channel/UCdDHtIfSYPq4002r27ffqPw
)