Hi,
Here is something I built a while ago.
It's essentially a bluetooth controlled ignitor for a spudgun.
I wrote a simple app for andoroid (using MITs app inventor). The app is also a calculator for stoichiometric mixes of air and propane/butane. The app has a safety and once disangaged there is a 'FIRE' button. Once pressed it sends a string 'boom' over bluetooth.
The app can be downloaded here -> https://docs.google.com/file/d/0B_PfPoEotOF8VmlnczhKZkNVX3c/edit?pli=1
(you have to check a box in settings on your phone so that it would accept apps from outside google play)
Arduino board with a bluetooth module waits for a char 'b' to apear over serial and if gets it the board switches one of the pins HIGH for 1000ms. The circuit is really simple. Though I found that I needed to put a cap because the ignitor created lots of EMF that caused arduino to crash.
The ignitor (ie. part that creates high voltage) is an off the shelf module for gas cookers. A relay (driven by ULN driven) closes the circuit and that's how it's switched on. The bluetooth module is a class 1 module so theoretically range is 100 meters. When connected with a class 2 device (ie. what you find in like every mobile and has max range of like 10 meters) it works up to 20 meters but only if both the devices are in direct LOS. However, it can go through two cinderblock walls but that's about it.
Two videos:
This one is with the ignitor disconnected
Here is with the high voltage ignitor attached
ohh and here is the code
/*for use with my fueling app... for more details visit spudfiles.com
Based on PhysicalPixel from examples */
const int Pin12 = 12;
int incoming; // a variable to read incoming serial data into
void setup() {
// initialize serial communication:
Serial.begin(19200);
// initialize pin12 as an output:
pinMode(Pin12, OUTPUT);
}
void loop() {
// see if there's incoming serial data:
if (Serial.available() > 0) {
// read the oldest byte in the serial buffer:
incoming = Serial.read();
// if it's a 'b', turn on PIN12:
if (incoming == 'b') {
digitalWrite(Pin12, HIGH);delay(1000);digitalWrite(Pin12, LOW);
}
}
}
Nothing special I know but it was fun to make and I learned a few things in the process. Hope you like it
Now I have to recreate this using atttiny and a perfboard.
EDIT
ohh and as you might have noticed I changed the pin from PIN13 to PIN12 after taking the two videos. That's due to safety reasons - in case you don't know it yet the Arduino board flashes its inbuilt LED (and thus pin13 goes HIGH) when powered on. Since this thing is a freaking ignitor it's not a good idea to have something that can accidentally go off