之前我们已经使用 HC-05 进入 AT 模式进行配置 \ 查看配置. 现在我们需要用手机连接 HC-05 控制小灯的亮灭
使用材料
- arduino uno board
- HC-05 bluetooth module(with en pin and state pin)
电阻 1 个
二极管小灯 1 个
杜邦线若干
andriod 手机(App: 蓝牙串口)
蓝牙串口 App
连接电路
hc-05_test_with_light.PNG
- arduino code
- #include <SoftwareSerial.h>
- #define AnalogPin 9
- char ch=' ';// 用来存储手机发送过来的数据
- SoftwareSerial BT(3,2);//RX TX on the board
- void setup() {
- // put your setup code here, to run once:
- Serial.begin(9600);// 这里应该和你的模块通信波特率一致
- delay(100);
- Serial.println("Arduino is ready.");
- pinMode(AnalogPin,OUTPUT);
- Serial.println("Analog pin is ready.");
- BT.begin(9600);// 初始化蓝牙模块波特率
- Serial.println("Bluetooth is ready.");
- }
- void loop() {
- // put your main code here, to run repeatedly:
- if(Serial.available())
- BT.write(Serial.read());
- // 把 hc-05 的串口输出的字符 输出到电脑串口中
- if(BT.available()){
- ch=BT.read();
- Serial.write(ch);
- }
- switch(ch){
- case '1':Serial.println("Read from bluetooth is 1.");
- analogWrite(AnalogPin,100);
- ch=' ';
- break;
- case '2':Serial.println("Read from bluetooth is 2.");
- analogWrite(AnalogPin,120);
- ch=' ';
- break;
- case '3':Serial.println("Read from bluetooth is 3.");
- analogWrite(AnalogPin,180);
- delay(500);
- analogWrite(AnalogPin,60);
- ch=' ';
- break;
- default: analogWrite(AnalogPin,0);
- break;
- }
- delay(1000);
- }
操作步骤
按照电路图连接电路, 烧写 arduino 代码进芯片, 上电
先进入系统设置里面的蓝牙设置, 和 HC-05 进行配对 (name:HC-05 pin:1234/0000) 如果是默认配置进行配对, pin 码一般是 1234 或者 0000pin 码都是 4 位数
打开下载好的 App, 开始发送内容
发送 1, 触发 case1 中的代码块, 发送 2 触发 case2 中的代码块.
发现的问题(有大牛可以给解答一下吗? 谢谢)
用这个手机 App 发送串口数据, 在 pc 的串口能够正常接收, 但是 pc 端口发送的数据在手机里面接收是乱码. 我认为这个问题要么是手机接收的波特率不对, 要么是手机设置的字符集不对, 但是具体应该怎么设置到现在我还没能摸索到.
以上就是关于用手机通过串口控制 arduino 的测试内容. 可以基于此基础开发其他物联网或者智能家居的设备.
来源: http://www.jianshu.com/p/7a98577d6d45