Saturday, 9 March 2013

RFM12 nodes(Mega328.168), the story...

Some time back I started experimenting with RFM12 modules from Hope-RF.
These neat little modules are available in different frequency bands, I use the 433Mhz version.

The idea was to produce a network of sensors that could measure different things in the physical world, such as...
Pressure (water tank height, )
Temperature (Dallas 1-wire  DS18B20)
Light (LDR or light>frequency converter)
Count the revs on my electricity meter (count pulses/reflections)
Read how much water was flowing through my garden irrigation system (count pulses)
and turn things on/off

The node boards started off as home made. The first one used an Arduino pro-mini and the plug-in version of the RFM12.

This one was home etched. I had been playing with the small Arduino boards and had a couple handy so figured I may as well use one to get going.

This got me started.
To begin with, it was quite tricky. The data sheet for the RFM12 was pretty bad so lots of Google searching went on and looking at other peoples code and notes.

This made life difficult for me because almost everyone wrote in C. I was learning a bit about C by using Arduino but I had a long way to go.
My programming choice is assembly language.

I managed to send data between two boards (eventually) so things progressed.

PCB Version-2 was next

 This one used the surface-mount RFM12 and a Mega328
The 8-pin socket is for an RS485 chip

This particular board is in use, it sits in my workshop and every minute, it wakes up and transmits the temperature. Sensor is a DS18B12.
The batteries last over a year.

Underside with the RFM12 (green patch)

From here on, I used the surface-mount RFM12. The plug in version was too awkward.

No comments:

Post a Comment