Tasker: the Wi-Fi To-Do Buddy That Talks, Blinks, and Gets Things Done

by anthonyghr in Circuits > Arduino

35 Views, 0 Favorites, 0 Comments

Tasker: the Wi-Fi To-Do Buddy That Talks, Blinks, and Gets Things Done

Screenshot 2025-04-30 at 21.41.18.png

Do you struggle to stay on top of your to-do list? Find yourself ignoring deadlines until it’s too late? Wish your tasks could remind you instead of hiding in a silent spreadsheet?

If the answer is yes, then this is the Instructable for you.

This Instructable walks you through building Tasker, a Wi-Fi–enabled task companion powered by an ESP32. Tasker brings your task list to life with sound, lights, and real-time cloud integration. Whether you need a gentle nudge or an urgent alert, Tasker watches your schedule, tracks task completion, and interacts with you through a combination of MP3 voice prompts, a colorful NeoPixel LED strip, and motion detection.

By connecting to Google Sheets, Blynk, and Make.com, Tasker gives you full control and visibility over your workflow—automating updates, reminders, and notifications so nothing slips through the cracks. Ideal for students, remote workers, or anyone who thrives on structure with a bit of personality.


Video Demonstration: https://drive.google.com/file/d/11QrPk2G9R6TdNxkKhnYvblMmsCdlyOir/view?usp=sharing

Supplies

Screenshot 2025-04-30 at 21.33.39.png
FGA9R9LLZTV3Q94.png
F00UWZYLZTV3Q47.jpg
WhatsApp Image 2025-04-30 at 20.01.49.jpeg

Hardware Components:

  1. ESP32 Dev-board
  2. I2S Amplifier
  3. Adafruit NeoPixel LED strip
  4. HC-SR04-class ultrasonic sensor

Software Components

  1. Arduino IDE / ESP-IDF – firmware
  2. Blynk mobile dashboard
  3. Make.com scenario
  4. Google Sheets
  5. Telegram

Build Tasker: Hardware Assembly

Screenshot 2025-04-30 at 20.14.33.png

Wire the components using Dupont jumpers as follows:

  1. ESP32 Dev-board – Central controller; power it via USB.
  2. I2S Amplifier + Speaker – Connect to ESP32 I2S pins and 5V power.
  3. NeoPixel LED Strip – Connect DIN to a digital GPIO (e.g., GPIO21), 5V and GND.
  4. Ultrasonic Sensor (HC-SR04) – Connect VCC, GND, Trig, and Echo to ESP32 GPIOs.


Setting Up the Blynk App

Screenshot 2025-04-30 at 20.15.06.png
Screenshot 2025-04-30 at 20.15.35.png
Screenshot 2025-04-30 at 20.15.57.png

Create a Blynk Account

  1. Visit https://blynk.io
  2. Click Get Started or Log In if you already have an account.
  3. Sign up with your email (the free tier is sufficient).


Create a New Template

  1. In the Blynk console, navigate to Templates.
  2. Click + New Template.
  3. Fill in the template details:
  4. Template Name: Task Manager
  5. Hardware: ESP32
  6. Connection Type: WiFi
  7. Click Done.


Set Up Template Datastreams

  1. Go to the Datastreams tab within your Task Manager template.
  2. Click + New Datastream → Select Virtual Pin.
  3. Create the following three datastreams:
  4. V1 – Check Off
  5. Name: Check Off
  6. Virtual Pin: V1
  7. Data Type: Integer
  8. Min: 0, Max: 1
  9. Default Value: 0
  10. V2 – Check Time Left
  11. Name: Check Time Left
  12. Virtual Pin: V2
  13. Data Type: Integer
  14. Min: 0, Max: 1
  15. Default Value: 0
  16. V3 – Completed Tasks
  17. Name: Completed Tasks
  18. Virtual Pin: V3
  19. Data Type: Integer
  20. Min: 0, Max: 100
  21. Default Value: 0

Design the Web Dashboard

  1. Go to the Web Dashboard tab for your template.
  2. Drag the following widgets into the grid:
  3. Button for V1
  4. Click settings
  5. Title: Check Off
  6. Datastream: V1
  7. Mode: Switch
  8. Save
  9. Button for V2
  10. Click settings
  11. Title: Check Time Left
  12. Datastream: V2
  13. Mode: Switch
  14. Save
  15. Label for V3
  16. Click settings
  17. Title: Tasks Completed
  18. Datastream: V3
  19. Show Value: Enabled
  20. Save


Create the Device

  1. Go to Devices:
  2. Navigate to Devices+ New DeviceFrom Template.
  3. Create the Device:
  4. Select the Task Manager template.
  5. A device will be created. Click into the device to open its details.
  6. Copy Credentials:
  7. Copy the following details for use in your Arduino code:
  8. Auth Token
  9. Template ID
  10. Template Name


Setting Up Google Sheets

Screenshot 2025-04-30 at 20.19.36.png


Create a New Google Sheet:

  1. Go to Google Sheets and log in to your account (or create a new one if needed).
  2. Click on the "+" to create a new spreadsheet.
  3. Name your sheet something relevant, such as "Task Manager".

Label the Columns:

  1. In Column A, type: "Task".
  2. In Column B, type: "Completed".
  3. In Column C, type: "Due time".
  4. In Column D, type: "Remaining min".
  5. In Column E, type: "Current time".
  6. In Column F, type: "Tasks done".

Format the Columns:

  1. Column B (Completed):
  2. Go to Data → Data validation.
  3. Select Checkbox for the data type.
  4. Columns C & E (Time):
  5. Go to Format → Number → Time.
  6. Other columns: Leave them set to Automatic.

Add the Current Time Formula (Cell E2):

  1. In Cell E2, enter the following formula: =NOW()
  2. This will automatically populate with the current time, and Google Sheets will recalculate it automatically.

Add the Remaining Minutes Formula (Cell D2):

  1. In Cell D2, enter the following formula: IF(HOUR(C1) > HOUR(E2), TIMEVALUE(C1-E2)*24*60 , -1)
  2. This formula calculates the difference in minutes between the due time (Column C) and the current time (Cell E2). It will convert the difference into minutes, and if the due time has passed, it returns -1.

Copy the Formula for Remaining Minutes:

  1. Copy the formula from Cell D2 and paste it into the rest of the Column D rows where you expect to have tasks.

Track Completed Tasks (Cell F2):

  1. In Cell F2, enter the following formula to track the total number of completed tasks:= COUNTIF($B$2:$B, TRUE)
  2. This counts the number of checked tasks (i.e., the tasks marked as completed in Column B)







Setting Up the Telegram Bot

Download and Set Up Telegram:

  1. Download the Telegram app and sign in (or create an account if you don't have one yet).

Create a New Bot with BotFather:

  1. In the Telegram app, search for BotFather (official Telegram bot for creating new bots).
  2. Start a conversation with BotFather and type /newbot.
  3. Follow the instructions to:
  4. Name your bot.
  5. Choose a unique username for your bot.
  6. Save the API token that BotFather provides after the bot is created, as you'll need it for later steps.

Test Your Bot:

  1. Open your new bot by searching for its username in the Telegram app.
  2. Press "Start" to initiate the bot, and send a simple message like "hello" to confirm it's active.

Get Your Chat ID:

  1. Open a web browser and go to the following URL: https://api.telegram.org/bot<YourBotToken>/getUpdates
  2. Replace <YourBotToken> with the API token you received from BotFather.
  3. In the JSON response, look for the "chat": {"id": section. This will contain your Chat ID.
  4. Save the Chat ID, as you will use it to link your Telegram bot to services like MAKE.



Setting Up Make.com Integration

Screenshot 2025-04-30 at 20.22.33.png


Create a Custom Webhook:

  1. In Make.com, create a Custom Webhook. This will serve as the entry point that the ESP32 (via Blynk) will call to trigger actions in your system.
  2. The Webhook URL provided by Make.com should be pasted into the Blynk app (in the webhook section) so that the ESP32 can interact with Make.com.

Google Sheets → Search Rows:

  1. Action: Search for the first row where the “Completed” column (Column B in your Google Sheet) is still FALSE.
  2. This action returns the row along with its row number (let's call it AA), which is crucial for identifying the task and tracking its status.

Tools → Set Variable:

  1. Store the returned ROW_NUMBER as a variable called AA.
  2. This will allow you to reference the specific row throughout the process.

Router:

  1. The router splits the flow into different branches based on which button is clicked in Blynk.
  2. Branch 1: Mark-Done-Button (Task Completion)
  3. Filter: Event = button_pressed (Triggered when the "Mark as Done" button in Blynk is pressed).
  4. Google Sheets → Update Row: Using the saved AA variable, update the corresponding row in the Google Sheet. Set the Completed checkbox (Column B) to TRUE (marks the task as complete).
  5. Branch 2: HTTP-Reply Branch (Get Remaining Time)
  6. Filter: Request = get_remaining_time (Triggered by a query from the device itself).
  7. Google Sheets → Get Cell: Retrieve the Remaining min (Column D) from the corresponding row using the AA variable.
  8. Webhook Respond: Send the remaining_minutes as a response back to the caller with an HTTP 200 status.
  9. Branch 3: Telegram Notification Branch
  10. Filter: Same request as the HTTP-Reply Branch, but this branch is dedicated to sending the task notification via Telegram.
  11. Google Sheets → Get Cell: Grab the task content (from Column A) using the AA variable.
  12. Telegram Bot → Send Message: The bot sends a message like: "Current task: <task-content>" (or a custom message) to the specified Telegram chat.

Set Scenario Mode to Instant:

  1. Turn the scenario on in Instant mode to ensure that every webhook hit triggers the flow immediately.
  2. Enable Auto-commit to automatically save any changes made to the Google Sheet without the need for manual commits.


Setting Up and Uploading the Code

Screenshot 2025-04-30 at 20.21.16.png

Download the Arduino IDE

Install Required Libraries

  1. Blynk
  2. Adafruit NeoPixel (for LED strip)
  3. IRremote (for remote control)
  4. DHT (for temperature sensor)
  5. WiFi

Paste Your Code into the Arduino IDE (use the modified code from the provided file).

Connect Your ESP32 to your computer via USB.

Select the Right Board and Port in the Tools menu of the Arduino IDE.

Click "Upload" to flash the code onto your ESP32.


Downloads

Testing That Everything Works

WhatsApp Image 2025-04-30 at 20.23.12.jpeg

Write Your Tasks

Start by entering the tasks you want to complete along with their due times in the Google Sheet.The system will calculate how much time you have left for each task.

Motion Detection

A motion sensor detects when you return to your study area, helping track your focus time.

Task Completion

Once you finish a task, mark it as complete in the Blynk app. The LED strip turns green and a voice says: “Great job!”

Remaining Time Check

Press the "Remaining Time" button in the Blynk app:

  1. The button turns blue A message is sent to your Telegram bot with the current task and how much time is left If there are less than 30 minutes left: A warning alert is included in the message The LED strip turns red A voice says:“Stay focused and stay strong.”


Reviewing Your Tasks

Screenshot 2025-04-30 at 20.25.12.png
IMG_8600.jpg
Screenshot 2025-04-30 at 21.07.48.png

Google Sheets

Open the “Task Manager” Google Sheet you set up earlier.You’ll see the tasks, due times, remaining time, and whether each task has been completed or not, along with a running total of completed tasks. This allows you to track how much time is left for each task and make adjustments to your schedule as needed.

Blynk

On the Blynk app you are able to see how many tasks you have completed

Congratulations

You’ve successfully set up your Task Manager system! Your tasks are now being tracked, your focus time is monitored, and the system will keep you motivated with alerts and feedback as you work through your tasks. Keep checking your Google Sheet, Blynk app, and Telegram for real-time updates, and stay productive!