1-wire weather sensors on Linux

Some time ago I had a 1-wire weather station and a number of other 1-wire weather-related sensors run from a Linux server. It wasn’t hugely reliable because the cable run was really a bit too long, but with a bit of messing about I got it working with some software called OWW. Unfortunately a few years back the weather station blew down in a storm and I didn’t get around to putting it back, but now it is time to get things sorted.

I have a USB adaptor for my 1-wire network. Plugging that in together with a number of the 1-wire devices reveals that the world has changed somewhat, and not entirely for the better. It seems that recent Linux kernels recognise some 1-wire devices directly and create device entries for them in the file system tree, but they don’t recognise everything I have. And in fact, on my 64-bit Intel desktop running Mint 19, the drivers cause a kernel panic 🙁

Switching all the hardware to a Raspberry seemed to work better. Perhaps the drivers are more stable in a 32-bit environment. I still have the problem that not all the sensors are recognised however.

A little investigation of the OWW code reveals that it expects to manage the 1-wire devices directly, so I decided to move back to my desktop, but blacklist all the standard 1-wire drivers and allow OWW to do its stuff. I did have a few problems getting OWW to build on Mint 19. Getting the correct set of dev packages installed took a while and then I had to edit the code so the fonts didn’t come out a ridiculous size, but eventually I got there. Then I found that it still couldn’t read the devices. Fortunately my experience with astronomy cameras stood me in good stead and I realised I’d need a udev script to make the USB controller readable by my user id.

That done, I plugged in the circuit board of my AAG weather station, a pressure sensor and a combined solar/temperature sensor and fired up OWW again. It lives, Igor!

OWW whines about an error reading the wind direction ADC, but I think that’s because I dismantled the weather station so I could remove one of the 6P6C plugs (the cable tore out of the plug when it was blown down) and replace it. I’ve not reassembled it yet. I’m actually half-tempted to try to 3d print an entire new housing as the original has somewhat degraded in the sunlight.

Getting this bit of software working is actually more than I need in fact. There’s a non-GUI version that can just log the data to a database which means it can be pulled out to be used however I want.

I also have a combined temperature/RH sensor that I want to try out (need to make up a cable for that, but it shouldn’t take long) and some loose DS18B20(?) temperature sensors I can test.

This entry was posted in Environment, Projects and tagged , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *