An Electronic Desk Calendar Built on RT-Thread IoT OS - Page 1
Forum section: electronics / projects

author: ZX
author_rank: Newbie
timestamp: March 18, 2020, 07:04:05 am
content: 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 backInk ScreenLet'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 webFeatures- 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.ArchitectureThe entire calendar project consists of three parts:- Business processing services- Web client- Device endSince 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 ServicesThe 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 dataWeb ClientUsers 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 memoDevice EndI 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 SpecificationThe GPIO available for the W600 chip has 17 and all being used on this project, which is shown as follows:ArchitectureThis 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 PackageThere 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/packagesCode: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-latestAmong 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 AddressYou can check more information about this project on Github：https://github.com/illusionlee/desk_calendar.gitAnd for more information about RT-Thread, you can visitwww.rt-thread.io

author: ZX
author_rank: Newbie
timestamp: March 18, 2020, 07:05:19 am
content: Electronic Desk Calendar Photos

author: ZX
author_rank: Newbie
timestamp: March 18, 2020, 07:07:11 am
content: Ink Screen

author: ZX
author_rank: Newbie
timestamp: March 18, 2020, 07:08:38 am
content: TO DO LIST Configuration

author: ZX
author_rank: Newbie
timestamp: March 18, 2020, 07:12:11 am
content: Hardware Specification

author: ZX
author_rank: Newbie
timestamp: March 19, 2020, 03:50:34 am
content: You guys are very welcome to share your ideas here, and let's discuss!