Arduino
Contents
Bluetooth 220 V voltage switch
Control a household lamp with your smartphone.
Needed:
- Arduino board
- 5v relay for arduino (http://www.play-zone.ch/de/2-kanal-relais-modul-karte.html)
- bluetooth modem (https://www.sparkfun.com/products/12577)
- android sdk
- android phone
- jumper wires
connecting blue tooth modem to arduino
Important thing is that your modem supports 5v power. Many boards are built for 3v. Only four wires needed:
- Connect grd on arduino to grd on modem
- Connect 5v of arduio to vcc on modem
- Connect arduino digital pin 2 to tx on modem
- Connect arduino digital pin 3 to rx on modem
Do not use pins on arduino that have a tx and rx printed on them. They are used to communicate with your pc while connected by usb.
connecting relay to your arduino
This is straight forward too:
- Connect grd on arduino to grd on relay module.
- Connect 5v of arduino to vcc on relay module.
- Connect digital pin 13 to Ch1 or In1 on relay module.
- Connect digital pin 12 to Ch2 or In2 on relay module.
- e.c.t.
arduino code
Whenever a 40 (decimal) byte value is sent from smartphone, then the relay1 switches state. Whenever a 41 (decimal) byte value is sent from smartphone, then the relay2 switches state.
#include <SoftwareSerial.h>
int relay1 = 13;
int relay2 = 12;
int bluetoothTx = 2;
int bluetoothRx = 3;
int relay1on = 0;
int relay2on = 0;
SoftwareSerial bluetooth(bluetoothTx, bluetoothRx);
// the setup routine runs once when you press reset:
void setup() {
pinMode(relay1, OUTPUT);
pinMode(relay2, OUTPUT);
Serial.begin(9600); // Begin the serial monitor§§§§9600bps
bluetooth.begin(115200); // The Bluetooth Mate defaults to 115200bps
}
// the loop routine runs over and over again forever:
void loop() {
if(bluetooth.available()) // If the bluetooth sent any characters
{
byte btInput = bluetooth.read();
Serial.print((char)btInput);
if(btInput == 41)
{
if(relay1on == 0)
{
digitalWrite(relay1, HIGH);
bluetooth.print("A1 ON");
relay1on = 1;
}
else
{
digitalWrite(relay1, LOW);
bluetooth.print("A1 OFF");
relay1on = 0;
}
}
if(btInput == 42)
{
if(relay2on == 0)
{
digitalWrite(relay2, HIGH);
bluetooth.print("A2 ON");
relay2on = 1;
}
else
{
digitalWrite(relay2, LOW);
bluetooth.print("A2 OFF");
relay2on = 0;
}
}
}
if(Serial.available()) // If stuff was typed in the serial monitor, for testing purposes.
{
// Send any characters the Serial monitor prints to the bluetooth
bluetooth.print((char)Serial.read());
}
}