Overview

Ink Screen

Let's see the information shown on the ink screen.

- The top left part is the date

- The top right part is the memo when tasks finished, you can make a mark

- The button part is the quotes randomly obtained from the web

Features

Architecture

The entire calendar project consists of three parts:

Since the business process services and the web client are about the server-side, so I won’t further go deep on this. This article will focus on the device end introduction.

Business Processing Services

The device transmits data through MQTT, enters into the business processing service, and processes and stores the corresponding data. This part uses Python and Mysql.

Main features:

Web Client

Flask is used in this project, Flask is a micro web framework written in Python. Users can add modified memos by logging to the web page.


Device End

WIFI chip W600 is used in this project combined with RT-Thread IoT OS, RT-Thread is an open source embedded real-time operating system that has a wide range of software package, and the compilation environment is very similar to the compilation environment under Linux.

Hardware Specification

The GPIO available for the W600 chip has 17 pins and all being used in this project, as follows:

layout

Architecture

This is the structure of my project folder, where the package section is slightly mentioned. I’ll share the used software packages in the next section.

desk_calendar/
├── Kconfig
├── README.md
├── SConscript
├── SConstruct
├── applications
│   ├── SConscript
│   ├── defines.h
│   ├── init.c
│   ├── keyboard.c
│   ├── logic.c
│   ├── main.c
│   ├── mqtt.c
│   ├── network.c
│   ├── qrcode_array.h
│   ├── screen.c
│   └── timer.c
├── makeimg.py
├── packages
│   ├── EasyFlash-v3.3.0
│   ├── SConscript
│   ├── airkissOpen-latest
│   ├── bs8116a-latest
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── SConscript
│   │   ├── inc
│   │   ├── samples
│   │   └── src
│   ├── cJSON-v1.0.2
│   ├── fal-v0.3.0
│   ├── lunar_calendar-latest
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── SConscript
│   │   ├── inc
│   │   ├── samples
│   │   └── src
│   ├── netutils-v1.1.0
│   ├── packages.dbsqlite
│   ├── pahomqtt-v1.1.0
│   ├── pkgs.json
│   ├── pkgs_error.json
│   └── u8g2-c-latest
├── ports
│   ├── SConscript
│   ├── easyflash
│   │   ├── SConscript
│   │   └── ef_fal_port.c
│   ├── fal
│   │   ├── SConscript
│   │   ├── fal_cfg.h
│   │   ├── fal_flash_port.c
│   │   └── fal_flash_sfud_port.c
│   └── wifi
│       ├── SConscript
│       ├── wifi_config.c
│       └── wifi_config.h
├── rtconfig.h
└── rtconfig.py


Logic Flowcharts:

Software Package

There are a total of 9 packages have been used on this project, those packages were obtained from RT-Thread Github, it is open source and free of charge: https://github.com/RT-Thread/packages

EasyFlash-v3.3.0' 'airkissOpen-latest' 'bs8116a-e' 'cJSON-v1.0.2' 'fal-v0.3.0' 'lunar_calendar-' netutils-v1.1.0' 'pahomqt-v1.1.0' 'u8g2-c-latest

Besides, I’ve also contributed a package, which is ‘bs8116a-last’:

‘bs8116a-last’ is an operating package for the Holtek touch chip;


Github Address

Find more information about this project on Github:https://github.com/illusionlee/desk_calendar.git And for more information about RT-Thread, please visit www.rt-thread.io

Thanks to OpenSource RT-Thread Community Developer illusionlee has contributed this project.