At long last, I have a working prototype in the field*. After two years of off-on progress, I have a Raspberry Pi ZeroW gathering temperature, humidity, and barometric pressure data to send to a cloud app, so I can view it in a dashboard.
And, yes, I realize it’s next to a building duct, so the telemetry will be a bit off, but I was in a “giterdun” kind of mood.
The basic design is simple, but since I don’t do a lot of wood work, I had to improvise with some scraps I grabbed from my SO’s house. The solar panel itself is bolted on to a plate of wood using nylon standoffs. The “Power Pack” is a Microsoft Arc mouse box covered in orange duct tape, with cutouts for wires: the solar panel input to the DC charger, and internally a 6600 mah battery and the ‘verter with USB power out.
The particular ‘verter I chose has a ground wire with a nasty habit of slipping out of the ground terminal. It’s OK if handled gingerly, but it needs to get reseated pretty regularly when opened up. I always have a small screwdriver on hand for that.
Fortunately, there was just enough room to place the Anderson Cage containing the Pi and sensor next to the battery pack, all on the back side of the plate holding the solar panel.
On examination afterwards, I found that one of the bolts affixing the battery pack to the backplate had sheared at the head. So, more robust attachments next time. It’s a prototype after all!
The Anderson Cage was something I found on Amazon. It’s meant for exactly this purpose: protecting a weather sensor from the elements. While the pictures that follow are what I envisioned, things got complicated when I ran a power cable. The best cable I could find was still poking out horizontally about an inch from the Pi, making it too wide to slide into the shaft. Ultimately, and not pictured, I had to mount the Pi with the diagonally, which was a bit of a trick.
Over the next couple of days, I received a steady stream of telemetry. I think it may have restarted a couple of times because, zoomed in, there were short periods of dashed-line data, which is what these tiles display when there’s an extended interval between messages. I had set the BME280 app to launch on startup for precisely this reason.
In any case, here’s what I got. The jump on the left is from when I brought it inside. ALso it’s not a “month”, that’ just the (aspirational) name of the chart.
As I mentioned, I got about 46 hours of runtime, and one of those days was cloudy. I need to do the math and see if that meets expectations; there are some services to turn off that would result in better battery performance.
I really want to get this outside for an extended period. If I don’t hear from the building, I’ll take it up to my SO’s house when I plan to be there a few days.
Yet to be accomplished:
- Sending the data to a web app, somehow. I want a website, or a presentation layer publicly and easily available.
- Add more sensors. I have an anemometer I can read data from, as well as a ground temperature sensor. I’m working on a wind vane, and also a rainfall bucket.
- Build a more permanent structure.
The Azure IOT Central approach has really simplified telemetry; I’m studying that with an eye to move back to “regular” IOT hubs and messaging. The electrical build process was early and time-consuming, but I learned a lot more about electricity than I knew before (easy job: previously, I knew nothing more than, “don’t lick the outlets”). Wiring the BME280 for I2C is something I can almost do in my sleep. The point is, this has been an iterative process built on multiple foundational concepts. I am ridiculously happy at how well it’s working.
UPDATED APRIL 27 2022
I’ve got it set up and sending data. The dashed lines are a period while it was down as I replaced a bad lead. The slope is the transition from powering on in my apartment to being outside.
“*” Less than an hour after I put this up, the building super came by and said I needed to get permission from building management. I had cleared it with the woman who manages the gardening, but he was right. Even though I put a sign up, it mighta been alarming to some folks. I brought it up and let it run in my apartment. Got about 46 hours runtime.