Introduction: Arduino Wireless Water Leak Sensor
Wireless water leak sensor.
This sensor is battery powered, and sends data to Telldus gateway. From telldus.com you can setup triggers to send mail or sms. The secret to make this work, is to use Arduino as temperature and humidity sensor. And make Telldus react on the humidity values we send.
What you need:
1x Telldus gateway.
1x Powerbank enclosure for two batteries.
1x 18650 battery
1x Arduino pro mini.
1x 433mhz ASK transmitter
1x 4,7K resistor
Step 1: Low Power
On the "Enhancement Pro Mini 3.3V/5V adjustable 8M MEGA328P Arduino pro mini compatible" from ebay, low power is very simple.
Just cut the power led trace and desolder the voltage selector.
Low power current is meassured to 5.5uA.
Step 2: Sensor Pins
Solder header pins to Arduino pin 12 and A0.
Solder 4,7K resistor to pin 13 and A0.
Step 3: Transmitter
Almost any ASK 433mhz transmitter can be used. I'm happy with STX882.
Transmitter can be placed on any digital pin of choice.
See your transmitter pinout, and set them up in code:
const byte TX_PIN = 3;
const byte txVccPin = 2;
const byte txGnd = 4; //(may not be needed if you use GND pin on arduino)
Connect 83mm antenna to transmitter.(just a solid core wire. Picture is a coiled antenna, and is not needed)
Step 4: Enclosure and Power
I have used a two battery powerbank from ebay. This gives me enclosure and battery power in one step.
Place arduino in enclosure, and make some scratchmarks in the plastic from the sensor pins.
Drill 2mm holses for sensor pins.
Connect power from B+ to vcc and B- to GND on arduino.
Importaint remark about this, is that we dont use the 5v from powerbank, but the cell voltage directly. This voltage is 4.2v when full.
Stick arduino in place with hot glue.
Step 5: Complete
Seal the sensor pin holes with hot glue.
Oh, and as a bonus, the selected enclosure gives you a led flash light, and recharge capabilities :-)
Step 6: Code
To get going you need to add Jeelib library from LowPowerLab.
You also might have to play with trigger 900 to sense correctly:
if (sensorValue <= 900)send433(0,100,addresse);
else send433(0,0,addresse);// temp,humidity,addres
Step 7: Teldus
Now, in telldus.com you will see oregon sensor with address 2.
Setup trigger is self explanatory. Telldus have done a good job there.