宿舍蓝牙开关灯 | 您所在的位置:网站首页 › 远程关灯神器原理 › 宿舍蓝牙开关灯 |
前言
每次从实验室回宿舍,都快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 //手机蓝牙串口发送数据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。 以下是操作的例子 其他因为宿舍是两盏灯,所以3D打印了一个两开的小构件。需要文件的可以留言邮箱,博主私发给你。 |
CopyRight 2018-2019 实验室设备网 版权所有 |