Android Bluetooth kontrollerad utlopp
Det finns så många alternativ för mikrokontroller du kan använda för detta. Jag har använt en arduino som en digispark. Båda fungerar bra. Bara få strömförsörjningen för arduino skarvas in i det huvudsakligt fodrar kommande i. Detta är bara en inspirerande guide.
Detta är en ganska enkel och relativt billig projekt som gör att du kan sätta på och stänga ett uttag via Bluetooth i din android-telefon. Det material som jag använde var:
5V relä modul--www.amazon.com/gp/product/B0057OC6D8/ref=oh_details_o00_s00_i02 (alla andra relä bör göra, detta var vad jag hittade)
Arduino R3--http://www.amazon.com/gp/product/B006H06TVG/ref=oh_details_o00_s00_i01
Bluetooth Shield för Arduino--http://www.amazon.com/gp/product/B007BYI172/ref=oh_details_o04_s00_i00 (vanliga BT antennerna fungerar också)
4 avsnitt gang, eller någon annan att hålla allt.
Outlet, sladdar, extra överspänningsskydd, akryl blad eller något annat skydd.
Om du skulle köpa allt färskt, det skulle nog köra runt 65-75 dollar beroende på var och hur du handlar.
Med bluetooth skölden jag fick, återförs de utskrivna Tx och Rx selektorer, åtminstone för de bibliotek som jag hittade. Reläet är också mitt emot vad man skulle kunna tro, som i höga stänger reläet och låg öppnar porten.
Dela en av linjerna på elkabeln, jag gjorde den svarta en, bifoga en går till din vägg till gemensamma terminalen och den andra till normalt öppen terminal.
Mer information kan hittas här:
http://Arduino-info.wikispaces.com/ArduinoPower
om makt och arduino som väl så bra bilder och sånt.
Du kommer att behöva ha en separat strömkälla för din arduino, jag har en 9v kör ut på baksidan.
Jag har funnit BlueTerm vara det bästa sättet att kommunicera från telefonen till arduino BT
https://Play.Google.com/store/apps/details?ID=es.pymasde.blueterm&hl=en
Det är gratis och smidig. Det finns andra program där ute som gör precis samma sak och kanske mer, men jag gillar den här eftersom det är enkelt.
** Också, kolla in MIT App Inventor webbplats, google, skapa en ganska enkel app för att ställa in ett alarm typ av sak att tända ett ljus i morgon eller något. Titta på bilder exempel på koden. Ta id från din bt och skriva det i.
**
Ladda upp koden och se till att allt är ansluten och du är redo att stänga av ditt ljus!
Jag försökte att göra denna avsättning dim-stånd, men mitt relä gillade det, det stannade bara öppna när jag hade något inkopplad.
** Uppdaterad koden:
#include < SoftwareSerial.h > //Software seriell Port
#include < MeetAndroid.h > //library för android BT comunication
#define RxD 0 / / bt vit
#define TxD 2 / / bt gul
#define switchPin 1 //whatever relay switch pin är ansluten till
#define DEBUG_ENABLED 1 //need detta för grejer
SoftwareSerial blueToothSerial(RxD,TxD);
void setup()
{
Serial.BEGIN(9600);
pinMode(RxD,INPUT);
pinMode (TxD, OUTPUT);
pinMode(switchPin,OUTPUT);
setupBlueToothConnection();
digitalWrite(switchPin,LOW); vänder relä på vid start
}
void loop()
{
char recvChar;
IF(blueToothSerial.available()) //check om det inte finns några data som skickas från den fjärranslutna bluetooth skölden
{
recvChar = blueToothSerial.read();
blueToothSerial.print ("data fick");
Serial.println(recvChar);
Serial.write(recvChar);
Switch(recvChar)
{
fall '1':
digitalWrite (switchPin, låg); //turn relä på
bryta;
fallet "0":
digitalWrite (switchPin, hög), //turn av
bryta;
} //end switch-sats
} //end BT kommunikation
} //end loop
void setupBlueToothConnection () //getting bluetooth arbetar
{
blueToothSerial.begin(9600); Ange BluetoothBee BaudRate till standard överföringshastigheten 38400
blueToothSerial.print("\r\n+STWMOD=0\r\n"); ställa in bluetooth arbetet i slav-läge
blueToothSerial.print("\r\n+STNA=SeeedBTSlave\r\n"); ställa in bluetooth-namn som "SeeedBTSlave"
blueToothSerial.print("\r\n+STOAUT=1\r\n"); Tillåta ihopkopplade enheten ansluta mig
blueToothSerial.print("\r\n+STAUTO=0\r\n"); Automatisk anslutning bör vara förbjudet här
Delay(2000); Denna försening krävs.
blueToothSerial.print("\r\n+INQ=1\r\n"); göra slav bluetooth inquirable
Serial.println ("slav bluetooth är inquirable!");
Delay(2000); Denna försening krävs.
blueToothSerial.flush();
}
**
-----------------------------------------------------------------------------------------------------------------------
Ursprungliga koden:
#include //Software seriell Port
#define RxD 6 //oppsite vad styrelsen är lables som
#define TxD 2 / / motsatt vad styrelsen är lables som
#define switchPin 9 //relay connector
#define DEBUG_ENABLED 1
SoftwareSerial blueToothSerial(RxD,TxD);
char recvChar;
void setup()
{
Serial.BEGIN(38400);
pinMode(RxD,INPUT);
pinMode (TxD, OUTPUT);
pinMode(switchPin,OUTPUT);
setupBlueToothConnection();
digitalWrite(switchPin,HIGH); vänder relay off
}
void setupBlueToothConnection()
{
blueToothSerial.begin(38400); Ange BluetoothBee BaudRate till standard överföringshastigheten 38400
Delay(1000);
blueToothSerial.print("\r\n+STWMOD=0\r\n"); ställa in bluetooth arbetet i slav-läge
blueToothSerial.print("\r\n+STNA=SeeedBTSlave\r\n"); ställa in bluetooth-namn som "SeeedBTSlave"
blueToothSerial.print("\r\n+STOAUT=1\r\n"); Tillåta ihopkopplade enheten ansluta mig
blueToothSerial.print("\r\n+STAUTO=0\r\n"); Automatisk anslutning bör vara förbjudet här
Delay(2000); Denna försening krävs.
blueToothSerial.print("\r\n+INQ=1\r\n"); göra slav bluetooth inquirable
Serial.println ("slav bluetooth är redo!");
Delay(2000); Denna försening krävs.
blueToothSerial.flush();
} //end setup bt anslutning
Kontrollerar om svaret "OK" är emot
void CheckOK()
{
char a, b;
While(1)
{
IF(blueToothSerial.available())
{
en = blueToothSerial.read();
om ("O" == en)
{
Vänta på nästa tecken K. available() krävs i vissa fall, eftersom K inte är omedelbart tillgänglig.
While(blueToothSerial.available())
{
b = blueToothSerial.read();
bryta;
}
om ("K" == b)
{
bryta;
}
}
}
}
medan ((en = blueToothSerial.read())! = -1)
{
Vänta tills alla andra svar tecken tas emot
}
} / / end check ok
void sendBlueToothCommand(char command[])
{
blueToothSerial.print(command);
CheckOK();
}
void loop()
{
recvChar = blueToothSerial.read();
Serial.println(recvChar);
Serial.write(recvChar);
Switch(recvChar)
{
fall '1':
digitalWrite (switchPin, låg), //opposite till vad du tror
blueToothSerial.println ("relä på");
bryta;
fallet "0":
digitalWrite(switchPin,HIGH);
blueToothSerial.println ("relay off");
bryta;
} / / end växeln
} //end loop