Task Manager – a Household Chore Management System

Task-Manager-a-Household-Chore-Management-System

In this Post we will discuss Task-Manager-a-Household-Chore-Management-System: I wanted to try to address a real problem faced in our household (and, I imagine, that of many other readers), which is how to allocate, motivate, and reward my children for helping out with household chores.

Up to now, we’ve kept a laminated sheet of A4 paper stuck to the side of the fridge. It has a grid of tasks printed on it, with associated amounts of pocket money that could be earned for completing that task. The idea is that each time one of our kids helps out with a chore, they get a tick in that box and, at the end of each week, we add up the money earned, wipe the board and start again.

However, the list of tasks is out-of-date and hard to change, we sometimes don’t remember to wipe the board clean each week, and some tasks need to be performed with different frequencies – some would ideally be done daily, whereas others might only be once a month.

So, I set about creating an Arduino-based device to address these issues – my intention was to create something that allowed for easy addition/removal/updating of tasks, a streamlined mechanism for recording when a task had been done and allocating credit to the appropriate person, and a way to keep track of different schedules and frequency with which different tasks need to be performed, and highlight overdue tasks. And this instructable will show how the resulting “Task Manager” device came out.

Task Manager – a Household Chore Management System Steps:

Step 1: Hardware

The project makes use of several well-used and documented hardware components:

  • Arduino UNO/Nano – this is the “brains” of the system. The onboard EEPROM memory will be used to save the state of tasks even when the system is powered off. For ease of wiring, I’ve mounted the Nano on a screw shield, but you could solder or use crimped connections to the GPIO pins instead if you prefer.
  • Real-Time Clock (RTC) module – used to record the timestamp at which tasks were performed, and, by comparing the last time to the current time, determine which tasks are overdue. Note that the unit I received was designed to be used with a rechargeable LiPo battery (LIR2032). However, I’m using a non-rechargeable CR2032 battery, so I needed to make a few modifications to disable the charging circuit (you don’t want to try to recharge a non-rechargeable battery, or you might face an explosion….). Specifically, I removed resistors R4, R5, and R6, and the diode marked D1. I then created a solder bridge to short across where R6 had been. These changes are illustrated in the photo below.
  • ISO14443 RFID reader + one tag per user- as a way of “gamifying” the system, each of my children has their own unique RFID tag. Selecting a task and then swiping their tag across the reader will be the mechanism used to mark a task as complete
  • 16×2 LCD display – used to provide the user interface to the system. By using a board that has an integral PCF8574A backpack, the board can be connected via an I2C interface to the Arduino, which simplifies the wiring significantly.
  • Rotary Encoder – will be the main control knob which users will turn to select different available tasks
  • Wago connectors – these snap-shut connectors are a convenient way to wire components together or create simple busses for several modules that each require common ground or 5V supply.

Step 2: Wiring

  • The 16×2 LCD display and DS1307 RTC both use an I2C interface, which is convenient as it makes the wiring much simpler, requiring only a pair of wires going to the A4 (SDA) and A5 (SCL) pins of the Arduino.
  • The MFRC-522 RFID reader uses an SPI interface, which uses fixed hardware pins 11 (MOSI), 12 (MISO), and 13 (SCK). It also requires a slave select and reset line, which I’ve assigned to pins 10 and 9 respectively.
  • The rotary encoder requires a pair of pins. For optimal performance, it’s best if these pins can handle external interrupts, so I’m using digital pins 2 and 3. You can also click the encoder in as a switch, and I’ve wired this into pin 4. Even though it’s not currently used in the code, you might find it useful for adding additional features!
  • For convenience, I’m using WAGO 222-series connector blocks. These are snap-shut connectors that provide a robust, easy way of connecting anywhere between 2 and 8 wires together, and are very convenient for Arduino projects that require several modules to share a ground or 5V line, or where you have multiple devices on the same I2C or SPI bus, say.

About The Author

Muhammad Bilal

I am a highly skilled and motivated individual with a Master's degree in Computer Science. I have extensive experience in technical writing and a deep understanding of SEO practices.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top