Author Topic: An Electronic Desk Calendar Built on RT-Thread IoT OS  (Read 1143 times)

0 Members and 1 Guest are viewing this topic.

Offline ZXTopic starter

  • Newbie
  • Posts: 9
  • Country: hk
An Electronic Desk Calendar Built on RT-Thread IoT OS
« on: March 18, 2020, 07:04:05 am »

First of all, thanks for all the support from WIFI chip W600 and RT-Thread IoT OS.


Design draft and calendar pictures are shown below, and I will attach the photos to the comment place.

Overview



- Top left corner is an ink screen
- The top right corner has 5 touch buttons
- There are 57 dates in the middle, each with a touch button
- The grey box is another PCB board with an abbreviation for Monday to Sunday
- There are two empty slots below, and there are two slender PCBs that can be hooked up to form an angle so that the circuit board can be stabilized on the desktop
- PCB uses a black-oil tin-spray process with almost no circuit on the front
- Chips and electronics are on the back





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 something finished, you can do a mark

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

 

Features

- Ink screen displays dates, weeks, lunar calendars, festivals, and a few memos, each with a complete status box
- Touch the top right  "up" & "down" touch button can move to the corresponding to-do list
- Click the confirm button, the completion status that can be marked as complete, and double-click can mark as incomplete
- Touch the top right "left" & "right" touch button, can view the memo of the previous day or the day after.
- Click on each date of the monthly calendar below to see memos for different dates of the current month
- Internet access via WIFI
- The mobile phone or computer side can sync the relevant memos via the web page and can update and view the status at any time.



Architecture

The entire calendar project consists of three parts:

- Business processing services
- Web client
- Device end

Since the first two are on the server-side, so I won't make it detailed here. 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.

The main features of this implementation are:

- Monitoring and receiving MQTT messages

- Topic's resolution and forwarding

- Storage of data

 

Web Client

Users can add modification memos by logging in through the web page.

Features that the current version has:

- User login via device number
- Switch different dates to view memos
- Add a memo
- Modify memo
- Delete memo



Device End



I choose an integrated WIFI chip W600, and use RT-Thread IoT OS, RT-Thread is an open-source embedded real-time operating system and released under Apache License v2.0. RT-Thread has a wide range of software package can use, and the compilation environment is very similar to the compilation environment under Linux.

The hardware of the device, using a PCB as the main panel, the front only has an ink screen as a display, and has the characteristics of the traditional calendar, using a removable calendar box to divide the area, you can intuitively see the date of each month. The back of the PCB is welded with the relevant components and with a battery, it can be separated from the wire, like a real paper desktop calendar.


Hardware Specification


The GPIO available for the W600 chip has 17 and all being used on this project, which is shown as follows:







Architecture

This is the structure of my project folder, where the package section is slightly reduced. I'll introduce the package in more detail 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
```



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

Code: [Select]
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

Among them, I also contributed two packages:

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

'lunar_calendar-latest' is a package of solar calendar dates to lunar calendar dates;

These two were also submitted to the RT-Thread Package code repository, you can check it there.


Github Address


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


 
The following users thanked this post: mikerj

Offline ZXTopic starter

  • Newbie
  • Posts: 9
  • Country: hk
Re: An Electronic Desk Calendar Built on RT-Thread IoT OS
« Reply #1 on: March 18, 2020, 07:05:19 am »
Electronic Desk Calendar Photos
 

Offline ZXTopic starter

  • Newbie
  • Posts: 9
  • Country: hk
Re: An Electronic Desk Calendar Built on RT-Thread IoT OS
« Reply #2 on: March 18, 2020, 07:07:11 am »
Ink Screen
 

Offline ZXTopic starter

  • Newbie
  • Posts: 9
  • Country: hk
Re: An Electronic Desk Calendar Built on RT-Thread IoT OS
« Reply #3 on: March 18, 2020, 07:08:38 am »
TO DO LIST Configuration
 

Offline ZXTopic starter

  • Newbie
  • Posts: 9
  • Country: hk
Re: An Electronic Desk Calendar Built on RT-Thread IoT OS
« Reply #4 on: March 18, 2020, 07:12:11 am »
Hardware Specification
 

Offline ZXTopic starter

  • Newbie
  • Posts: 9
  • Country: hk
Re: An Electronic Desk Calendar Built on RT-Thread IoT OS
« Reply #5 on: March 19, 2020, 03:50:34 am »
You guys are very welcome to share your ideas here, and let's discuss!
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf