Upgrade Your Mailbox for Smart Snail Mail Notifications
Frustrated with the hassle of regularly checking the mailbox outside, we designed a system that sends notifications whenever mail is delivered and updates the mailbox status within Home Assistant.
Skill | Cost | Time |
---|---|---|
2 / 5 | ~40 Euro | ~60min |
Challenge / Annoyance
As someone who rarely receives snail mail, I was tired of the time and energy I wasted checking my mailbox regularly. That's why we created a notification system to send a notification when mail is delivered.
Solution
We've added a microcontroller, battery, two resistors, and two microswitches to the mailbox. One switch detects when new mail has been inserted into the mailbox slot, and the other detects when the mailbox has been emptied. To save power and prolong battery life, we programmed the microcontroller to use deep sleep mode and wake up only when one of the microswitches is triggered. Thanks to this feature, the mailbox can operate for several months or even up to a year on a single battery charge, depending on how often mail is delivered and retrieved.
To enable Home Assistant to notify us when it's time to recharge the LiPo battery, we utilized a voltage divider consisting of two resistors. Additionally, we simplified the recharging process by connecting a USB cable to the microcontroller. This way, we can conveniently recharge the battery using a portable USB charger left inside the mailbox for a few hours.
Code
We've written Arduino code that comes with some nifty features. Because the mailbox is just within wifi range and the mailbox is basically a metal Faraday cage, sometimes it can be challenging to establish a stable connection and publish MQTT commands. We have included a retry mechanism with a timeout to address this issue to ensure the task is accomplished. Between these timeouts, the microcontroller is put to deep sleep to prevent unnecessary battery drain.
Result
Every time the postman delivers mail, a (sticky) notification is displayed on my phone, which automatically disappears once the mailbox is emptied. Additionally, the mailbox status is visible within Home Assistant. No more unnecessary trips to the mailbox or leaving it unchecked for an extended period and missing those Valentine's Day cards :).
Bill of materials
- ESP32 microcontroller with LiPo charger (DFRobot FireBeetle or Clone)
- 2x Micro Switches
- Rechargeable LiPo Battery (3.7V 5000mAh 106070, fits perfectly in the case)
- IP66 Waterproof case (Sonoff)
- 1k Ω resistor
- 2k Ω resistor
- USB cable for charging with a portable charger
Off-the-shelf alternatives
While there are a few off-the-shelf alternatives to this DIY solution, they can be expensive and may not offer the same level of customization or integration within Home Assistant.
Using a Zigbee motion or vibration sensor inside the mailbox for mail delivery notifications has limitations. For instance, the sensor cannot detect if the mailbox is emptied and may trigger falsely due to external factors like wind. On the flip side, an advantage of this solution is that it's cheaper and easier to deploy, and these sensors have a better battery life due to using the Zigbee protocol instead of wifi.
Conclusion
This simple DIY mailbox notification system has saved me time and frustration. If you're tired of wasting time checking an empty mailbox, consider building your own notification system. It's an easy and affordable solution that really makes a difference in your daily routine.