I finally got around to ordering and building a 1-wire barometer kit from Hobby Boards… it was a fairly straightforward assembly process when you actually follow the construction tips and don’t accidentally mix up the location of the two SMT IC chips… Oops! Thankfully they were only 8-pin SOIC’s so it wasn’t too terribly difficult to fix. Next time I suppose should stop watching Storm Chasers while soldering!
It took a minor hack on the DS2438 library I’ve been using to add a function to read data from the ADC without converting to a humidity value with temperature compensation to get working, but seems to be pretty good so far; my reading are within 0.02 inHg from what I’ve seen so far, though only testing over the full 3-4″ range will evaluate the precision correctly. I’ve updated the patch on my Google Code repository to reflect the new readAD() function.
There are some minor bugs I’ve noticed, namely the DS1820 temperature sensors can report invalid readings when the Arduino is powered on. It only seems to happen when it’s reset, a cold power-on rarely causes it and usually an additional reset or two fixes the issue. The DallasTemperature library is coded to use parasitic power for the sensors and it’s possible I may have wired them to use +5V; I’m thinking this could possibly cause issues but will need to check. The lightning counter code currently calculates the derivative between readings and only uploads the differences rather then the absolute value, occasionally this will give an incorrect reading as well which results in a large negative value being transmitted. These two issues can skew the scaling on the graphs which can be annoying.
I’m also looking into better integration with Pachube, I’ve seen a nice example which use EEML XML format with the API v2 which allows for better flexibility, it could handle the invalid sensor readings better by omitting them from the feed update. I also came across a Perl library which I may use to write a small command-line client for updating or manually changing sensor readings… perhaps a simple hack to fix the min/max graph scaling problem.
Although I consider this project something of a success I will eventually want to develop a new version from the ground up using sensors similar to the weather sensors SparkFun carries… it will probably be similar to the USB weather board they built (using different I2C/SPI sensors) but I want to integrate a LCD and ethernet directly on the board. Plus it will give me an excuse to finally make a custom PCB!
Images of the build: