Temperature Sensing on a Farm

Hello! I'm on a farm and we have a few greenhouses that would be nice to have sensors on. I found out about xbee's on here and I'd like to play around with them but I'm having trouble finding out what I need to order exactly. All together, I would want to sense and log data from 3 different greenhouses and two areas outdoors, all within a mile.

I was going to use this http://www.sparkfun.com/products/8767 but I think that I need something to hook it up too for power at least, because this looks like just a chip.

I found this, which might be what I'm looking for http://www.digi.com/products/wireless-modems-peripherals/wireless-range-extenders-peripherals/xbee-sensors.jsp#overview but the range is no good.

Any suggestions? Also, since all of this is radio, wouldn't I need some kind of receiver near my computer?

Any help would be appreciated so I kind at least order the right stuff right now (I'll probably start with one sensor and see how I do, adding more later). I have some programming background and have messed around with arduinos so I'm hoping that I'll be able to figure this project out as I go along.

The spec on the XBee-Pro is 2 miles outdoors, line-of-sight, so depending on the layout, it certainly could work, perhaps with external antennas. I'd probably just get a couple and experiment first. My experience has just been with the low-power modules, though. These are easily powered by an Arduino's power supply, but I might want to provide a separate supply for the Pro modules.

As for a receiver, another XBee is required. From there, the details depend on how the data is to be logged and to where.

Here is a blog post I did describing a simple two-node network consisting of two XBees and two Arduinos, and logging data to the Pachube web site. HTH.


Jack has good stuff on the communications part. Might be able to do this also with higher-power nRF2401+ type units. But Xbee has more mature code for Arduino.

For the temperature measurement stuff, look at: http://arduino-info.wikispaces.com/TemperatureHumidity

Also this: http://arduino-info.wikispaces.com/Brick-Temperature-DS18B20 (Look at the end for some nice waterproof sensors).

People are also making soil moisture sensors.

If you want to control valves and motors, see: http://arduino-info.wikispaces.com/ArduinoPower

I don't know what kind of range you need, but the RFM12B modules have 100m or so of range in line of sight conditions, and cost a whopping $8 or so. I've enjoyed playing with mine.

I'm not sure if this is what you need, but I made a really simple temperature sensor hooked to an XBee for measuring outdoor temperature. I plug it into an outdoor outlet and just let it run. Took two 10K resistors, a wall wart, and an XBee and of course, a wall plug. Since the XBees can forward for each other, you could easily get by without buying the expensive pro models. Last time I looked the pro modules cost 3x the lower powered ones and outside, you can get pretty good range. The problems with transmission distance come when there are walls involved, especially outside walls that have some kind of metal lathe. If you want to see my little device, go to my web site at draythomp.blogspot.com and look behind the tab "world of XBee" a picture of it is at the bottom of the page.

Thanks for all the info!

I think draythomp’s setup is more what I’m looking for - maybe find a way to waterproof it. Will definitely look into that soil moisture sensing once I have air temp set up.

Also, just a general question - I’m sure I could figure this out if I did a little bit more reading but I’m busy outside - Series 1 vs Series 2?
Can I still relay information with Series 1 because that’s the main feature I’m probably looking for. What’s the big benefit of “mesh networks”?

If one of them breaks, the others route around the broken one. It's a way of the network taking care of itself. Really nice in a situation where you need to keep things working, just add a couple of strategic devices and keep a spare on hand that you can bring online when you need it. This way a temperature sensor also works as a router to carry the data from some more remote sensor that in turn acts as a router.

HooctAwnFonix: Also, just a general question - I'm sure I could figure this out if I did a little bit more reading but I'm busy outside - Series 1 vs Series 2? Can I still relay information with Series 1 because that's the main feature I'm probably looking for. What's the big benefit of "mesh networks"?

For my money, I'd just as soon have the current stuff (S2). Mesh networking is pretty cool, self-forming and self-repairing, makes for a robust network. But in my mind, as cool as that is, there's always more risk in buying older technology, i.e. availability, support, etc. So that may in fact be the bigger reason. Admittedly you're getting a biased viewpoint here because I've only used S2, but quite frankly, I don't see a downside to it.

Here's one link with just a little info. Browse around the site and you'll find more. http://www.digi.com/technology/rf-articles/wireless-zigbee.jsp

draythomp - i think you're setup is very close to what i'm looking for! TerryKing - i'll be interested in messing around with some soil sensors later on... but I'm gonna try this simple thing first.

I'd also like to get a solar or battery powered water proof sensor for the orchards later on. And if I get crazy later on, I might bring an arduino into the grow tunnel so I can see what I can automate (water, fan, side flaps).

But first things first! One sensor inside the greenhouse sending me the temperature so I can log the data and observe from my computer.

so i have my parts list ready, i think:

Receiver: XBee 1mW Chip Antenna (http://www.sparkfun.com/products/8664) FTDI Cable 5V VCC-3.3V I/O(http://www.sparkfun.com/products/9717)

Sensor in the greenhouse: XBee Pro 60mW Wire Antenna (http://www.sparkfun.com/products/8742) Wall Adapter Power Supply - 5VDC 1A (http://www.sparkfun.com/products/8269)

Will this be enough to get me started? I might also buy the book since I don't really know what I'm doing!

Actually, how is it that I'll be able to connect the wall wart to the xbee? :blush:

I drilled a small hole in the side, ran two wires through and then stuck it to the side with two sided tape. I was in a hurry to try out the idea.

Cool - so maybe to make things nice I'd need a soldering iron? Will probably use tape like you for my first shot though...

You are probably going to need a multimeter if you don't already have one.

Haha yea, thanks for that… I actually don’t have any tools like that yet!

Receiver: XBee 1mW Chip Antenna (http://www.sparkfun.com/products/8664) FTDI Cable 5V VCC-3.3V I/O(http://www.sparkfun.com/products/9717)

Sensor in the greenhouse: XBee Pro 60mW Wire Antenna (http://www.sparkfun.com/products/8742) Wall Adapter Power Supply - 5VDC 1A (http://www.sparkfun.com/products/8269)

The XBees talk to each other, to confirm receipt of packets and other things. They need to be matched. A low power receiver and a high powered transmitter won't play well together when the range exceeds the capabilities of the lower powered device, regardless of how high powered the other device is.

I have to say I would be very tempted to use an inexpensive laser module here (dissect a $3 cat toy) on the greenhouse end, and simply connect the uart tx pin to it through a driver and point it at a photo transistor driving the uart rx pin to receive the data. Then embed a checksum and a "timestamp" and a station ID in the data and have the stations send the the same data several times at different intervals to help ensure you can get a clean reading from them on a regular basis.

So you would have a laser and an arduino plus whatever sensors at each greenhouse pointing their lasers at a centralized arduino that captures the data.

It may even take less power this way vs rf, as the signal is so focused. 3 D-cells might run this thing for a year or more? And if the receiver is expecting regular communications from each greenhouse, it can notify you if it hasn't heard from one within the expected timeframe.

PaulS made a really good point. One must make sure to balance the devices since XBees work in pairs at a minimum. You can construct an unreliable network by not keep close tabs on a nodes range and match it with a device that can receive [u]and[/u] transmit to it. The laser led idea is a good one, but the code to support it is a great deal more complex than just adding a repeater XBee somewhere to pass on data. Using a laser to communicate is fun, but you get to figure out retries, error detection and correction yourself. The wire library can help with this if you decide to go that way.