Since our library at work has opened a down stairs sweat shop to put RFID tags into all our quadrizillion books I obviously came up with the idea to play around with said tags. They are from 3M and as far as I can tell just basic RFID tags, nothing fancy or tricky. If I would have had more time a few months ago I could have done this a bit earlier and would probably have picked up that 3M messed up the tags for the first few thousand books!
Initially I wanted to build up an RFIDuino (http://rfid.marcboon.com/) but it has been replaced with the StrongLink SL018 so I got myself one SL018 (www.stronglink.cn/english/sl018.htm) and since the provided library also supports it it’s nice little brother the SL030 (www.stronglink.cn/english/sl030.htm) as well (I’m a sucker for miniaturised versions of stuff . Ordered both from www.rfidshop.net and have just started to setup a prototype to read/write to some of the tags I pinched from our library and the few free RFID cards I got with the readers.
Since I want to have a reason to buy one of those Redpark Arduino->Iphone cables (http://www.makershed.com/ProductDetails.asp?ProductCode=MSRP02) I’m planning to make the Arduino talk to the RFID tags and then pass the string through to the iPhone to talk back to our library backend. It would be much nicer if this could talk through bluetooth rather than the cable but for a prototype this should be more than sufficiently pretty. The prototype should also show how easy it is to clone one of our tags.
I’ve been working on this for a while now but have finally managed to get hold of all the additional fancy parts I wanted. I have a prototype (excluding the ethernet shield) which reads from all sensors but I need to spend a little bit more time with the code that writes to the csv file on the SD-card before this can go into use.
I wanted to collect time stamped environmental data from the greenhouse in form of temperature, light intensity and humidity readings from several places. Initially I only wanted to use those to control fans and a heater but then decided to also open/close the window/louvre and collect the readout data onto a SD-card. I have a nice big IP67 enclosure installed in the greenhouse which has several cat6 cables coming in from the back which I currently use to supply power for the Arduino and hopefully at some point network access to check on the live conditions. Once the Greenhouse bit is done I’m hoping to add another measuring box outside to take the same reading plus wind and amount of rain as a little weather station. The greenhouse also has an irrigation system so my head already wants to buy more humidity sensors to go into pots and an array of motorised valves but that’s probably another separate system.
This is the current protoype which reads from a temt6000 ambient light sensor (http://www.sparkfun.com/products/8688), a HIH-4030 humidity sensor (http://www.sparkfun.com/products/9569) and a TMP102 digital temperature sensor (I2C). I’ve also played with a simple light sensor and s TMP36GZ which are still on the breadboard. The other bits involved are an Adafruit Data logging shield (http://www.adafruit.com/products/243), a ProtoScrewShield (http://wingshieldindustries.com/products/protoscrewshield-for-arduino/), an Arduino Uno and hopefully in the future one of the new Ethernetshields with SD-card slot (http://www.adafruit.com/products/201).
I have already started to build the first fan can (just a 330ml soft drink can with a set of sensors and a fan to suck air through the can) and successfully collected data onto the SD card from the basic light/temperature sensor setup which I then plotted with gnuplot (http://www.gnuplot.info/) which is pretty much the example provided by Adafruit (http://www.ladyada.net/make/logshield/use.html) which I found on my way looking for something to plot the csv.
The main effort is actually to get the sensors right. The I2C temperature sensors were a bit tricky as I had never worked with I2C before, the humidity sensor had to be tied to the temperature sensor readouts and the sample code for the data logging shield was not really meant to work with my sensors…
I’ve actually just finished this one so I thought it should make a good first project post
The general idea in my head was to switch 240V circuits both from a webserver and a wall mounted control board. This currently allows control for three circuits. Channel one switches a 240V 4-way extender (this one feeds the power supplies for the other two channels, I wanted to be able to easily turn them off when not needed or when I work on things), channel two switches 12V DC for the night vision boosters (the CCTV cams have night night vision rings built in but they did not reach the far end of the garden) and channel three switches 12V AC for the new outside path/wall/mood lights.
Now the more intricate details. I’ve used an ATmega328 based Arduino Duemilanove with one of my old network shields (the one without an SD-Card reader). It runs webduino (http://code.google.com/p/webduino/) which I have tweaked slightly to only allow switching of the digital pins 5-9 for this setup. Obviously I needed an external 5V PSU to run all this as the Arduino wouldn’t handle the load on it’s own so I used an old but very reliable IOMEGA ZIP PSU. Each of the 5-7 digital Arduino pins then drives a 5V Relay via a transistor to open and close the actual payload circuits which are handled by individual Sparkfun Inline Power Control boards (http://www.sparkfun.com/tutorials/119). The Potter and Brumfield Relays on those are switched with 5V DC and can deal with up to 30A 240V AC
All this has been installed in a nice black plastic enclosure, the 240V supply comes into the box through a fused inlet plug (like the ones found on a Computer PSU but with a built in fuse holder). Each of the little 5V relays in the main box has one green LED and one red LED which against each side for diagnostics purposes (I’m lying here, I just love to watch LEDs and I have passed the same through to the little wall mounted control box which comes with matching red/green LEDs but also three little rocker switches which put 5V straight through to the Inline Power Control boards.
This setup has now been in use for a few days and works very well. Things I’d like to add in the future are a temperature sensor inside the main Arduino enclosure (I’m always afraid that it might get too hot in there for the little Arduino) which could drive a tiny fan if needed and I want to add the temperature readout to the webserver including a little on/off status for the fan. Obviously the whole setup can control more circuits either through the other Arduino pins or just an added shift register. It is very likely that I’m going to extend this in the future. I’ll also make the webduino website a bit prettier, so far it’s very functional and doesn’t even explain what the pins are switching…
And here come the pictures:
The first breadboard prototype for five channels (fifth one on the small breadboard and with a little button to experiment for the wall mounted control box setup).
And this is the finished wall mounted control box: