Many of us are working from home and sometimes our family members would like to meet us in our home office, but they don't know when is the right time to meet us. To solve this problem, I was looking for a solution which could indicate to my family members about my availability. I had an M5NanoC6 miniature kit lying with me and I thought to use it to create a project to solve this issue.
HardwareThe M5NanoC6 is a miniature, low-power IoT development board which is equipped with an ESP32-C6 MCU, supporting WiFi, BLE, Zigbee etc. along with a WS2812-based RGB LED, one blue LED and one user switch. This kit is very limited in terms of what it offers, yet it was good enough to implement what I needed in an elegant and ultra-small form factor. However, I would have loved to use an M5StickC as it has a decent LCD and a 200mA built-in battery.
SolutionI used M5NanoC6 to host a webpage, using which I can update my presence on the webpage, based on the updated status the inbuilt WS2812-based LED changes the colour to red when I am busy, or to green when I am available to meet or free.
The user, who has this kit can press the button on the kit, while I am busy to indicate that they have something urgent to discuss, in which case the colour of the RGB LED will change to blue and I'll the button below the text "Someone wants to meet me" will turn Blue with "Yes" written on it. In this case, I can either click on the second button to allow them to come for a short duration or I can click on the first button to mark myself available. At any point, if the user realises that he/she doesn't need to meet me anymore then they can press the switch twice to indicate that they don't wish to meet anymore.
Any update from my side will result in a changed colour on the RGB LED in the kit, indicating to the user about my availability. Even when theuser presses the button, the colour of the RGB LED changes to indicate the current status.
I have also used a TM1637-based, 7-segment display module to show time, but this display is optional and everything will keep working as expected even if this display is removed.
Additionally, the project has anOTA feature, where we can upgrade the firmware by installing it from the web browser
The current project has only one M5NanoC6 with a single RGB LED and hence multiple people can't use it as there's no way to differentiate between more than one user.
In future, this project can be updated to work on ESP32-S3 Box to leverage the inbuilt LCD and multiple buttons or touch screen to indicate who wants to meet me and I can selectively make myself available or busy for an individual user.
We can also update the web portal to add meeting timings directly on the page, which will be used to automatically mark me busy or available based on the meeting timings.
Thanks- Mr Amey (can't give his full name to respect his privacy) for giving me this kit
- Mr Ayush Sharma, for his Elegant OTA library
- Mr Kris Kasprzak, for his project on a dynamic webpage, which I used as a reference to create my webpage
Comments