App inventor2通过蓝牙控制Arduino Uno LED开关

App inventor2控制Arduino Uno LED开关

如果学会这个小程序,大部分的手机通过蓝牙控制Arduino的功能都可以实现,这个小示例是通过蓝牙模块向Arduino发送"0"和"1",而其它功能要发送其它不同的字符串内容给Arduino.

所需硬件:

  1. Arduino Uno
  2. JDY-16 蓝牙模块(我的是蓝牙4.2版本)
  3. 草帽LED(可选)
  4. 手机(我用的是安卓,苹果手机应该也可以,最近其应用商店也有App inventor(AI)伴侣)

软件:

  1. Aduino IDE或者PlatfomIO(在Visual Studio Code)
  2. Mit App inventor2或者Wxbit App inventor2(国内推荐后者,可以用QQ登录,不像前都要用梯子登录谷歌帐户)

步骤:

App Inventor2:

  1. 界面设计: 添加垂直布局,按钮,下拉表,在组件界面设计中如下图所示,再添加一个不可见的对话框和BluetoothLE1, 如果有人问我为什么不用Bluetooth客户端,我也不清楚,我开始用“Bluetooth客户端”组件总是出现错误507,最后改用BluetoothLE组件,关于BluetoothLE的详细介绍可以参考:https://yichen.blog.csdn.net/article/details/88691445(据说错误507是由于蓝牙模块为蓝牙4.0造成的,有知道的朋友可以在评论中回复我。)
    App inventor2通过蓝牙控制Arduino Uno LED开关_第1张图片
  2. 逻辑设计:
    a. 关键部分为发送“0”和“1”给蓝牙模块,如果以后扩展功能给Arduino只要加相应的代码模块即可,比如:“L"代表左转,“R”代表右转之类如下图所示:
    b. “断开连接”按钮在初始化时,是否启用(enabled)为假(False),该按键显示为灰色
    App inventor2通过蓝牙控制Arduino Uno LED开关_第2张图片
    App inventor2通过蓝牙控制Arduino Uno LED开关_第3张图片
  3. 通过AI伴侣或者WxBit调试助手把APK安装到手机上。

Arduino IDE:

  1. 连线是相当的简单,连接上5V, GND,再把JDY-16的RXD连接到UNO的TX脚(即Digital 1脚) ,TXD连接到UNO的RX脚(即Digital 0脚) , 如果想单独用LED看开关效果的把草帽LED的长脚插到13脚(Uno板上的“L”LED等于13脚,所以插不插草帽LED关系不大)
  2. 在手机上先把JDY-16模块配对,默认的密码是"123456",不管是用的什么模块,都要先在手机上配对好,因为我们的app里是没有配对功能的。
  3. 唯一要强调的是:串口频率设置为9600,JDY-16默认的频率是9600,IDE代码如下:
char incoming_value='0';
void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  pinMode(LED_BUILTIN,OUTPUT);

}

void loop() {
  // put your main code here, to run repeatedly:
if(Serial.available()>0)
{
  incoming_value=Serial.read();
  Serial.print(incoming_value);
  Serial.print("\n");
  if(incoming_value=='1')
  digitalWrite(LED_BUILTIN,HIGH);
  else if(incoming_value=='0')
  digitalWrite(LED_BUILTIN,LOW);
}
}
  1. 通过Arduino IDE把程序上传到Uno,接下来用手机来体验自己的第一个蓝牙控制模块吧

你可能感兴趣的:(Arduino,蓝牙,arduino,android)