I’ve been working on a project with ChatGPT as my assistant to smarten up my mailbox. I spend most of the day on the third floor, so coming down to the ground floor to check whether mail has been delivered is so, well, 20th century. I knew I had to do better.

I had purchased a new mailbox, but it turned out the lid was slightly curved, and would be hard to adhere the solar panels to well. Tyler took the old mailbox and rehabbed it. I think it looks better than it did new! And now that new mailbox has become my mom’s mailbox, replacing a rather rusty old one.
The solar panels help charge a battery, and the battery powers the electronics inside this project box:

Inside that box, besides the battery, is a charging circuit, and a little microcontroller board that can connect to my home WiFi, and from there, connect to my Home Assistant installation, where it can, when appropriate, notify me that the mailbox has been opened. Most of the time, the device is in “sleep” mode where it hardly requires any power at all. It awakens hourly to tell Home Assistant it’s still there, and more importantly, it wakes up when the lid is opened! The way I have it setup, Once that notification arrives, I have to go into the Home Assistant app and press a button that says “Mail Retrieved” which then resets things for the next day (or next delivery, anyway).
You can see some painter’s tape there. It is just holding the coiled up wire from the left hand solar panel which isn’t connected yet. I have an adapter on order that will let me wire up the two panels in parallel to double the recharging power. But it seems to be holding pretty steady with one. Two will just make we worry that much less about it.
The first day it was deployed, it worked great! The second day, not so much — the mail carrier was so fast that by the time the device woke up and connected to Home Assistant, the lid was already closed again, so there was nothing to report, and I was not made aware that mail had been delivered. So today, we re-wrote the detection so that when the device is awakened because of the lid opening, it remembers that, and can inform us more directly. Previously, it was just recording the current state of the lid, and if the carrier is very fast (video analysis showed it was open for about a second), the lid may be closed again when it goes to report that. And today, with the new code in place, it was successful again.
Working with ChatGPT has enabled me to complete, or in some cases, “make good progress on” project ideas I’ve had for years. Working without ChatGPT means doing all the research yourself, trying to find example code that does something like what you want and modifying it. Then finding out that example was from 3 revisions ago of the library you’re using, and then you spend the next half day chasing down build errors. With ChatGPT, much of that drudgery is gone. And I for one appreciate that.






























