Remote Data Logging With an Arduino

Introduction

In mid-2012 I had become introduced to the world of microcontrollers and the Make revolution. Looking back I’m not 100% sure how I was introduced, but I know my first avenue was the Arduino, eventually followed by the Raspberry Pi (RPi).

Revolution

What is so revolutionary about these devices? They’re just a bunch of computer equipment right? These devices allow for rapid prototyping/development of computerized hardware by just about anyone with just a little bit of technical knowledge. You don’t need to be an “engineer” to be able to develop some really amazing things, and just about anything you can think up.

I think in tandem with the Smartphone evolution, I think these rapid micro-controllers and micro-computers are changing the face of what can be done by individuals. I have said for a few years now that the reason we’re seeing technology moving so fast is because the speed, size, and smallness of computers has made it possible for just about anybody to rapidly develop code for real world applications. As one component or software package is built, it can be combined with others to create something that hadn’t existed before, or at least would have been prohibitively expensive and time consuming to build.

2013 Development

OK, enough background for now, what exactly am I doing and have been doing? Starting winter of 2012-2013 I started building a sensor data logging solution for anybody to use and would be extremely powerful and customizable. What I originally started it was to monitor soil and air temperatures for gardening. That was just the beginning, as I knew I’d eventually add more sensors and more powerful applications.

IMG_0374

The original setup.

IMG_0375

You can see the wire of the probes off in the square foot garden.

The Arduino would run sensors, it would then pass that information to a Python based daemon (service), which would then store the information in a database so that it could be later viewed, and analyzed. This is normally the kind of stuff that large companies build and costs alot of money. (In the process I had actually full taught myself how to use Gnu/Linux and command line editing, and I’ve never looked back!). My intent was to make this as simple enough to run and use that really anybody without ANY Programming experience could be able to add, remove, and configure sensors, and view their data.

By the end of Spring 2013, I had completed 95% of the project. The only thing that was holding me back was the fact that some of the new sensors I had purchased (nice sensors) were just not giving me the correct values, and I was getting too busy with others things to debug (figure out) the issue. Well a few weeks ago I picked up the project and fixed the bugs. Want to know what it was? The connections weren’t making good enough contact! Oi Vey!!!

Now (2014)

I have purchased some new toys and am getting them up to speed. I purchased a HD camera that can be ran from my Raspberry Pi, 3 nice temperature sensors from Vegetronix and I purchased a new Arduino Yun that has Wifi built into it (amongst many other things). These items will allow me to take pictures (automatically) of the property whenever I want, log soil moisture, and be able to conduct logging remotely without having to run ethernet cable. (here soon I’ll setup a solar panel / solar charge controller and it won’t even have a power cable!!)

I’ve already got some code up and going using the Yun. It is different than my older one, so the library code I wrote, probably isn’t going to work, but that is ok because there is a lot easier and better ways that I can get it working now.

IMG_2478

Behold, the Arduino Yun

IMG_2482

The vegetronix soil moisture meter.

IMG_2477

Testing out the vegetronix sensors in a pot.

I have put the outdoor enclosure that I bought out in the garden and put the probes in their place. The easiest code I could come up with was just dumping the results to a command prompt every few seconds.

IMG_2680

Here is what I’m seeing on my screen

sensordata

This is what I’m currently seeing scrolling every few seconds.

These are some very raw values (milli-volts actually). The first two are temperature sensors, and the 2nd two are vegetronix sensors. In order to get the correct temperature I have to apply a little math to them.

(x * 0048 * 1000 * .0512) –  20.5128 = celsius
(celsius * (9 / 5)) + 32 = Fahrenheit

So the first value is actually 71.16 and the other is 80.45. These values are actually QUITE incorrect. I’m not 100% sure why, I think the connections are loose (I’m waiting on some parts coming tuesday). They really should be reading maybe 60 and 66.

Conclusion

There is still quite a bit more to be done. Here next week I’ll be receiving in my Zigbee radio transmitters and hopefully the rest of the data logging stuff I purchased (and solar panels). Things will actually start coming together once I get those radio sensors up and going.

Eventually I’ll be looking at expanding the operation to actually receiving data from all over the property, which will be really really cool.

Leave a Reply

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