Field Testing

A project log for ESP-NOW Weather Station

An ESP32 based weather station investigating ESP32's Deep Sleep and ESP-NOW

Kevin KesslerKevin Kessler 11/03/2020 at 22:120 Comments

After a bunch of 3D printing, the weather station has been put outside to do some live testing.

The electronics are housed in a La Crosse Sensor Protection Shield. This housing has sort of a bayonet mount which allows whatever La Crosse sells as a sensor unit to slide over to hold the sensors in place. I 3D printed a case which does the same, to hold my sensor board.

A housing to hold the RJ11 plugs for the Wind and Rain sensors is glued to the bottom of the housing, so the assembled sensor housing assembly looks like:

Some 3D Printed brackets to hold the housing and solar cells to my garden post allows the housing to be secured, and a green 3D printed plug gives the Sparkfun weather apparatus something to hold onto.

I bought some spray on Conformal Coating and covered the PCBs with a thin coating to armor the circuits against some of the weather, although, in the future, I will probably use the paint on type instead. While the spray gave a nice even coat, I had to tape up all the connectors, and the little hole in the BMP280, before I sprayed them. With the paint on version, I could have just painted around the connectors, and I would have been able to get under the Buck/Boost converter PCB more easily.

The first problem I ran across was, once the temperature dropped below 16°C, I started getting spurious counts from the rain gauge. After the normal debugging routine, I figure out it was a flaky solder joint on the ESP32 causing the problem, and resoldering that fixed the issue.

The second issue was a bit of a education in how WiFi routers work. For some reason, my Wifi starting acting flaking in my entire house, so I powered cycled the router. That fixed my house Wifi problem, but my receiver then stopped receiving any data from the weather station. What happened was, when the WiFi router restarted, it changed the channel WiFi clients were connecting on. Since the ESP32 cannot connect to WiFi on a different channel than it is using with ESPNow, the receiver could no longer hear the weather station transmitting on the old WiFi channel. A simple reset of the station fixed that problem, but since there is no external access to the reset button, I had to remove the 7 screws of the case to reset the ESP32. As luck would have it, a few days later, a brief power outage hit, resetting the WiFi router, and, of course, changing the channel, requiring more disassembly and a reset. If I have to rebuild the main PCB, I will mount the reset button on the back of the PCB, and put a hole in the case to be able to access from outside. Since the solar cells are recharging the battery so well, I have some extra power budget, so I also added a requery of the weather station SSID every hour, so a channel change will eventually be caught by the station, and the problem will fix itself. I've also noticed I'm dropping an ESPNow packet occasionally, so, since I've got this extra power to spare, I will probably transmit each data packet twice (with a sequence number of something, so the receiver can recognize the duplicate packet) to try to minimize the packet loss.