宿舍蓝牙开关灯

前言

每次从实验室回宿舍,都快11点多了,洗完澡,宿舍就熄灯了。所以灯经常忘关。所以早晨六点总是被明亮的灯光刺醒,但宿舍又是最简陋的上下铺,居住在上铺的我苦此已久。终于受不了了,做了一个蓝牙开关灯。

一、耗材清单

1.电源(3.3-6V)都行,找你能找得到的电池盒/小电源。

2.Arduino板(最好选mini的小板,方便),我用的是YWRduino Lite
注意:如果跟我用同样型号的mini arduino的话,下载器需要选用带DTR的USB转TTL。

3.Arduino IDE(https://www.arduino.cc/en/donate/)官网下载即可,如果跟我用同样型号的mini arduino的话,记得板子型号选uno板即可。

4.蓝牙模块,我用的是HC-06。
TX: 接Arduino"RX"引脚
RX: 接Arduino"TX"引脚
GND: 接Arduino"GND"引脚
VCC: 接Arduino"5V"或"3.3V"引脚

5.伺服舵机,丰俭由人。最普通的SG90即可,塑料舵机轻,好黏在墙上。
信号线:接Arduino"P9"引脚
GND: 接Arduino"GND"引脚
VCC: 接Arduino"5V"或"3.3V"引脚

二、步骤

1.代码

就用Arduino自带的例程改一下就行

#include 

Servo myservo;
int pos = 0; 
char cmd ='s';//初始化

void setup() {
  myservo.attach(9);  //定义舵机接口为pin9
  Serial.begin(9600); //初始化蓝牙,波特率为9600
}

void loop() {
if(Serial.available()){
  cmd = Serial.read();//读取蓝牙模块发送到串口的数据
  if(cmd=='a'){       //手机蓝牙串口发送数据a,表示关灯
    for (pos = 20; pos <= 40; pos += 1) { 
    myservo.write(pos);              
    delay(30);}} 
  else if(cmd=='b'){ //手机蓝牙串口发送数据b,表示开灯
    for (pos = 40; pos >= 0; pos-= 1) { 
    myservo.write(pos);              
    delay(30);}}
  else if(cmd=='r'){ //手机蓝牙串口发送数据r,表示恢复初始状态
    myservo.write(20);}      
}
}

这里要注意的是,如果你用的sg90这类的180度舵机,他只能从0度摆动到180度,所以,可以先用函数myservo.write(0); 寻找一下舵机的0度在哪里。

2.手机的蓝牙控制

很倒霉我用的手机是iPhone,找了很久,终于找到一个比较合适的蓝牙串口助手名字叫:FeasyBlue。
以下是操作的例子
宿舍蓝牙开关灯_第1张图片
宿舍蓝牙开关灯_第2张图片


其他

因为宿舍是两盏灯,所以3D打印了一个两开的小构件。需要文件的可以留言邮箱,博主私发给你。
宿舍蓝牙开关灯_第3张图片

你可能感兴趣的:(嵌入式硬件,c#,单片机,ios)