目录
[二、单片机连接蓝牙手机 APP 的方法](#二、单片机连接蓝牙手机 APP 的方法)
[1. 所需工具](#1. 所需工具)
[2. 具体步骤](#2. 具体步骤)
[三、单片机蓝牙手机 APP 的应用案例](#三、单片机蓝牙手机 APP 的应用案例)
[1. STM32 蓝牙遥控小车](#1. STM32 蓝牙遥控小车)
[2. 手机 APP 控制 stm32 单片机待机与唤醒](#2. 手机 APP 控制 stm32 单片机待机与唤醒)
[3. 智能家居系统](#3. 智能家居系统)
[4. 智能记忆汽车按摩座椅](#4. 智能记忆汽车按摩座椅)
[四、单片机蓝牙手机 APP 的功能](#四、单片机蓝牙手机 APP 的功能)
[1. 多种控制方式](#1. 多种控制方式)
[2. 状态显示](#2. 状态显示)
[3. 低功耗模式](#3. 低功耗模式)
[五、单片机蓝牙手机 APP 开发教程](#五、单片机蓝牙手机 APP 开发教程)
[1. 前期准备](#1. 前期准备)
[2. 实现思路和操作原理](#2. 实现思路和操作原理)
[3. 具体操作方法](#3. 具体操作方法)
一、引言
在当今科技飞速发展的时代,单片机与蓝牙技术的结合为我们的生活带来了诸多便利。单片机蓝牙手机 APP 的结合更是拓展了应用场景,让我们能够更加便捷地控制各种设备。
单片机连接蓝牙手机 APP 为我们开启了一扇通往智能化控制的大门。通过这种连接方式,我们可以实现对单片机的远程控制,无需再局限于传统的有线连接方式。无论是在智能家居、工业自动化还是其他领域,这种结合都展现出了巨大的潜力。
接下来,我们将详细介绍单片机如何连接蓝牙手机 APP。首先,我们需要进行一些前期的软件和硬件准备。软件方面,主要包括 keil uvision 和 stc - isp - 15xx - v6.85。硬件方面,则需要一个蓝牙模块、一个便宜的单片机、一个蓝牙可以正常使用的手机和编程电脑。蓝牙模块需要与单片机连接,具体的连接方法为:VCC 接 VCC,GND 接 GND,TXD 接 P30,RXD 接 P31。
实现单片机与手机 APP 的通信,需要一个中间媒介,这个媒介就是蓝牙模块。蓝牙模块一方面可以接收手机 APP 发送的数据并传达给单片机,另一方面单片机也可以将反馈数据通过蓝牙模块发送到手机 APP 上,从而实现了单片机和手机之间的交互通信。
在具体的操作方法上,我们首先需要使用 MIT Appinventor 制作一个简单的组件页面。这个页面的布局可以根据实际需求进行优化,但对于实现最基本的功能来说已经足够了。在逻辑层面的设计上,列表选择框(选择蓝牙)的启用为真,按钮(断开)的启用为假。选择蓝牙时,将蓝牙客户端的地址及名称显示出来供用户选择。
蓝牙所发送的数据相关设置也必不可少。本文让蓝牙发送的数据为 1 或 0,用于传递给单片机,进而控制 LED 灯的亮灭。在文本框输入 1 或 0,点击确认发送即可完成相应功能。
完成上述操作后,我们已经可以实现手机单方面对单片机进行控制。在这里,我们可以把手机形象化地比喻为命令的发出者,发出者通过蓝牙模块将数据传达给单片机,单片机又根据内部的程序,从而实现对 LED 灯的控制。
下面我们来实现单片机对手机反馈数据这一流程的操作。遵循单片机反向反馈数据的原理,我们可以通过显示框找到蓝牙接收到的数据并显示出来。
另一大部分便是单片机的配合程序了。以下是具体的程序代码:
#include <reg52.h>
//51 头文件
sbit LED1 = P2^0; //位定义 LED1 硬件接口
void delay(unsigned int z)//毫秒级延时
{
unsigned int x,y;
for(x = z; x >0; x--)
for(y =114; y >0 ; y--);
}
/******************************************************************/
/* 串口中断程序 */
/******************************************************************/
void UART_SER () interrupt 4
{
unsigned int n; //定义临时变量
if(RI) //判断是接收中断产生
{
RI=0; //标志位清零
n=SBUF; //读入缓冲区的值
switch(n)
{
case 1: LED1=0; break; //亮灯
case 0: LED1=1; break; //灭灯
}
}
//蓝牙初始化
void boothint(void)
{
SCON =0x50; // SCON: 模式 1,8-bit UART, 使能接收
TMOD |=0x20;
TH1=0xfd; //波特率 9600 初值
TL1=0xfd;
TR1=1;
EA =1; //开总中断
ES=1; //打开串口中断
}
//串口初始化
void UartConfigurationInit()
{
TMOD=0x20; //设置定时器 1 工作方式为方式 2
TH1=0xfd; //波特率 9600
TL1=0xfd;
TR1=1; //启动定时器 1
SM0=0;
SM1=1; //串口方式 1
REN=1; //允许接收
PCON=0x00; //关倍频
ES=1; //开串口中断
EA=1; //开总中断
}
void main()
{
boothint();
while(1)
{
SBUF=9; //发送单个字符
while(!TI);
TI=0; //发送完成标志
}
到目前为止,软件设计和单片机内部程序的设计的所有细节已经全部讲到,然后就是软件下载或者是调试的过程了。在整个界面的上面有一个连接(Connect)选项,推荐使用 AI 侣,这要求手机下载一个 Appinventor 的 app,然后让手机和电脑在同一个局域网下,通过扫描二维码就可以在线调试看效果了。
除了上述介绍的通过蓝牙控制 LED 灯的功能外,单片机蓝牙手机 APP 的结合还可以应用在更多的领域。例如,在智能家居系统中,可以通过手机 APP 控制风扇、灯、继电器等设备的开关状态,还可以采集红外传感器的状态,实现入侵检测和蜂鸣器报警功能。同时,还可以采集 DHT11 温度、湿度并显示在手机 APP 上。
在智能记忆汽车按摩座椅中,手机 APP 可以显示前后距离、座椅高低、靠背角度的 % 状态,座椅通风开关状态,按摩开关状态,加热开关状态。还可以实现座椅记忆功能、按摩开关、座椅通风、座椅加热、前后距离、座椅高低、靠背角度的控制。
此外,手机 APP 软件还可以通过蓝牙通讯实现对 stm32 单片机的待机与唤醒功能。当需要省电待机时,手机 APP 软件发送待机命令给 MCU,MCU 接收到后再发送低功耗设置的 AT 命令给蓝牙模块,蓝牙模块进入低功耗模式下,此时 P0.20 引脚由高电平变为低电平,设置 PA0 为下降沿外部中断,中断服务程序中执行程序,使得 MCU 进入待机模式。当需要唤醒工作时,手机 APP 软件发送任意数据,蓝牙模块接收到 BLE 数据可被唤醒,从而 P0.20 引脚由低电平变为高电平,此时 PA0 引脚的上升沿实现 MCU 退出待机模式,进入正常工作状态。
综上所述,单片机蓝牙手机 APP 的结合为我们带来了更多的可能性和便捷性。通过这种结合,我们可以更加轻松地实现对各种设备的控制和管理,为我们的生活和工作带来更多的便利。
二、单片机连接蓝牙手机 APP 的方法
1. 所需工具
连接单片机和蓝牙手机 APP 所需的工具主要有单片机、蓝牙通讯模块。单片机作为控制核心,负责处理数据和执行指令。蓝牙通讯模块则实现单片机与手机之间的无线通信,使得数据能够在两者之间进行传输。
2. 具体步骤
- 打开 app_inventor 开发站点,新建项目并添加组件。AppInventor 是一个强大的工具,它提供了丰富的组件和可视化的编程环境,使得开发者能够轻松创建手机应用。登录后新建一个项目,不做改动的话,项目名称默认为 app 名字。将组件 BluetoothLE 和其他可视组件拖入手机屏幕中并设置好大小。
- 设置全局变量存储蓝牙地址、接收到的数据及要发送的数据。蓝牙传输中,必要的三个数据分别是蓝牙地址、接收到的数据及要发送的数据,我们可以设置三个全局变量用于存储这些数据。
- 在屏幕初始化时设置按钮使能与禁用,防止误触。为了程序高效运行,可在屏幕初始化的时候将一些按钮相应的使能与禁用,这样可以避免不必要的错误弹出。
- 进行蓝牙搜索,注意蓝牙 6.0 以上需要开启位置定位。运行完初始化后,便可以进行蓝牙搜索了。要注意的是,蓝牙 6.0 以上需要先开启位置定位,否则找不到地址。
- 找到蓝牙地址后进行连接,注意筛选下拉框中的元素列表。找到蓝牙地址后,要做的就是连接了。由于下拉框中的元素列表不仅仅只包含地址,因此需要筛选,具体的筛选方法要根据搜索蓝牙时显示的蓝牙地址是否包含 "[" 符号来确定从第几位开始选取。
- 设置主动执行的语句,监听蓝牙连接状态,连接失败用红色字体显示。上述按钮点击完了也不知到底是否以及真的连接到了蓝牙还是断开了,于是需要用到主动执行的语句了。一定要监听,否则接收不到数据,这里可以是其他类型数据,只要你喜欢,不过字符串数据可英可数,挺方便的。连接失败用红色字体显示,这样可以醒目地提醒用户。
- 连接好后进行数据传输和接收,对接收到的数据进行文本替换还原原始数据。连接好后就可以准备数据传输以及接收了,接收到数据后进行文本替换是为了消除传输时的符号,还原原始数据。
- 单片机程序可存于其他 C 文件中,调用相应函数,蓝牙模块与单片机正确连接。单片机程序可存于其他 C 文件中,调用相应函数即可。蓝牙模块的 RXD 接单片机的 TXD,蓝牙模块的 TXD 接单片机的 RXD,供电接好,若单片机与蓝牙模块用的是不同的电源,记得共地。
三、单片机蓝牙手机 APP 的应用案例
1. STM32 蓝牙遥控小车
用 STM32 单片机制作的蓝牙遥控小车,具有很强的实用性和趣味性。以下是对该小车的详细介绍:
- 器件说明:STM32F103C8T6 单片机开发板,使用 5V 供电;L298N 电机驱动,用于控制电机正反转;MLT BT05 蓝牙模块,需与手机通信并使用 5V 供电;0.96 寸 OLED 显示屏,用于显示蓝牙接收的消息;4 电机加底座,普通 TT 小电机,需要 5V 以上供电;麦克纳姆轮。
- 连线:器件连线较为复杂,麦轮安装方向也有特定要求。具体来说,L298N 电机驱动模块的连线需要将其两个使能端口 ENA1、ENB1 和 ENA2、ENB2 通过杜邦线与面包板统一接到 STM32C8T6 的 PA_0,四个电机的正负极分别接两个 L298N 的 INx 端口,具体的正负极连接方式需要根据电机安装方式确定,可在程序中调试。MLT BT05 蓝牙模块的连线需要将其 TXD 与 STM32 的 USART_RX 连接,RXD 与 STM32 的 USART_TX 连接,GND 与单片机供地。
- 小车源码:代码思路结构清晰,主要包括系统文件部分和多个功能模块的代码。其中,L298N 电机驱动模块只能控制电机正反转,原理是通过 2 路引脚分别控制电机正负极,正极高电平,负极置零,电机正传;反之反转。为了控制小车速度,这里总共使用了 8 路 PWM 来控制每个 L298N 电机驱动模块的引脚,每个电机使用 2 路 PWM 控制,如果需要正传,正极占空比调高,负极占空比调零。
- 手机遥控 APP:手机 APP 来源可单独下载,进入 APP 后连接蓝牙,选择低功耗蓝牙,搜索蓝牙,点击设备名称,点击 Connect 连接蓝牙,点击 Done。选择带有摇杆的应用界面,点击 Edit 可以编辑应用界面,点击 Run 可以直接进入应用界面。
- APP 使用说明:操作简单,进入 APP 后按照步骤连接蓝牙,选择带有摇杆的应用界面,拖动摇杆就能控制小车。
2. 手机 APP 控制 stm32 单片机待机与唤醒
通过手机 APP 软件,利用蓝牙通讯可以实现对 stm32 单片机的待机与唤醒功能,具体如下:
- 硬件电路:蓝牙模块采用周立功 ZLG52810P0 - 1 - TC,蓝牙模块与 STM32103CBT6TR 单片机连接,PA9 - - USART1_TX,PA10 - - USART1_RX,PA0 - - P0.20,PA2 - - BL_RST。采用 PA0 口做一键唤醒用,PA0 即 WKUP 引脚的上升沿,可以使 MCU 退出待机模式。
- 软件设计:MCU 中蓝牙接收待机命令后的处理程序,当接收到特定指令时,透传回复数据并发送低功耗设置的 AT 命令给蓝牙模块,使蓝牙模块进入低功耗模式,同时设置 PA0 为下降沿外部中断,中断服务程序中执行程序,使得 MCU 进入待机模式。当需要唤醒工作时,手机 APP 软件发送任意数据,蓝牙模块接收到 BLE 数据可被唤醒,从而 P0.20 引脚由低电平变为高电平,此时 PA0 引脚的上升沿实现 MCU 退出待机模式,进入正常工作状态。
3. 智能家居系统
以基于 STC15W 单片机设计的智能家居为例,通过蓝牙手机 APP 控制风扇、灯、空调、窗帘等设备,以及采集温湿度、检测入侵等功能,具体如下:
- 电路组成:STC15W4K48S4 最小系统 + 语音识别模块 + LCD1602 显示 + DHT11 温湿度 + 按键 + HC05 蓝牙模块 + 5V 风扇 + ULN2003 步进电机(窗帘) + 红外传感器(入侵检测) + 蜂鸣器报警 + 1 个 LED 模拟房间的灯 + 1 个继电器模拟空调。
- 功能介绍:
-
- 有 3 种控制方式(电路板按键、语音、蓝牙手机 APP)开启关闭 5V 风扇、房间灯、继电器(模拟空调)、窗帘。
-
- 单片机采集红外传感器的状态确认是否有人入侵,如果有则蜂鸣器报警。
-
- 单片机采集 DHT11 温度、湿度显示在 LCD1602 和蓝牙 APP 上面。
-
- LCD1602 以及蓝牙 APP 还可以显示 5V 风扇、房间灯、继电器(模拟空调)、窗帘的开关状态。
-
- 语音指令丰富,如 "你好小管家 风扇开 | 打开风扇 风扇关闭 | 关闭风扇" 等。
4. 智能记忆汽车按摩座椅
基于 STM32 单片机设计的智能记忆汽车按摩座椅,可通过语音识别、电路板按键、蓝牙手机 APP 控制座椅功能,具体如下:
- 电路组成:STM32F103CXT6 最小系统 + LD3322 语音识别模块 + OLED 显示 + 3 个 ULN2003 步进电机(分别对应前后距离、座椅高低、靠背角度) + 1 个震动马达电机(按摩) + 1 个风扇(座椅通风) + 1 个加热片(座椅加热) + 多个按键(保存、记忆 1、记忆 2、前后减、前后加、高低减、高低加、靠背减、靠背加、按摩开关、通风开关、加热开关) + HC - 05 蓝牙模块(仅蓝牙版本有)。
- 功能介绍:
-
- 可以通过语音识别、电路板按键、蓝牙手机 APP 控制座椅,实现调节前后距离、座椅高低、靠背角度。可以震动按摩、座椅通风、座椅加热。
-
- 具备座椅记忆功能,可以保存 2 个座椅角度数据,点击 "保存" 键进行保存,此后点击 "记忆 1""记忆 2" 即可保存当前座椅状态数据至对应记忆 1 或者 2 中。不在保存模式时,点击 "记忆 1""记忆 2" 即可立即让座椅调整到对应角度状态。
-
- 有按摩开关键,按摩打开时震动电机工作实现按摩功能。
-
- 有座椅通风键,座椅通风时风扇工作实现风扇功能。
-
- 有座椅加热键,座椅加热时加热片工作实现加热功能。
-
- OLED 显示器显示前后距离、座椅高低、靠背角度的 % 状态,座椅通风开关状态,按摩开关状态,加热开关状态。
-
- 手机 APP 可以显示前后距离、座椅高低、靠背角度的 % 状态,座椅通风开关状态,按摩开关状态,加热开关状态,还可以实现座椅记忆功能、按摩开关、座椅通风、座椅加热、前后距离、座椅高低、靠背角度的控制。
四、单片机蓝牙手机 APP 的功能
1. 多种控制方式
单片机蓝牙手机 APP 可以实现多种控制方式,为用户带来极大的便利。其中包括电路板按键、语音以及蓝牙手机 APP 控制等。例如在智能家居系统中,可以通过这三种方式开启关闭 5V 风扇、房间灯、继电器(模拟空调)、窗帘等设备。在智能记忆汽车按摩座椅中,也可通过语音识别、电路板按键和蓝牙手机 APP 控制座椅的各种功能。
2. 状态显示
APP 能够显示设备的多种状态信息。在智能家居系统中,可以显示 5V 风扇、房间灯、继电器(模拟空调)、窗帘的开关状态,以及单片机采集的 DHT11 温度、湿度信息,并将其显示在 LCD1602 和蓝牙 APP 上面。在智能记忆汽车按摩座椅中,手机 APP 可以显示前后距离、座椅高低、靠背角度的 % 状态,座椅通风开关状态,按摩开关状态,加热开关状态。
3. 低功耗模式
手机 APP 软件通过蓝牙通讯实现对单片机的待机与唤醒功能,有效降低非工作状态下的功耗。当需要省电待机时,手机 APP 软件发送待机命令给 MCU,MCU 接收到后再发送低功耗设置的 AT 命令给蓝牙模块,蓝牙模块进入低功耗模式下,此时 P0.20 引脚由高电平变为低电平,设置 PA0 为下降沿外部中断,中断服务程序中执行程序,使得 MCU 进入待机模式。当需要唤醒工作时,手机 APP 软件发送任意数据,蓝牙模块接收到 BLE 数据可被唤醒,从而 P0.20 引脚由低电平变为高电平,此时 PA0 引脚的上升沿实现 MCU 退出待机模式,进入正常工作状态。
五、单片机蓝牙手机 APP 开发教程
1. 前期准备
在进行单片机蓝牙手机 APP 开发之前,我们需要进行一些软件和硬件的准备工作。
软件准备:
- keil uvision:用于单片机程序的开发和编译。
- stc-isp-15xx-v6.85:用于将编译好的程序下载到单片机中。
硬件准备:
- 蓝牙模块:作为手机和单片机之间的通信桥梁,负责接收手机 APP 发送的数据并传达给单片机,同时也将单片机的反馈数据发送到手机 APP。
- 单片机:作为控制核心,负责处理数据和执行指令。
- 手机:用于安装和运行手机 APP,发送控制指令和接收单片机的反馈数据。
- 编程电脑:用于编写和调试单片机程序,以及进行手机 APP 的开发。
蓝牙模块与单片机的连接方法:
蓝牙模块的 VCC 引脚连接单片机的 VCC,GND 引脚连接单片机的 GND,TXD 引脚连接单片机的 P30,RXD 引脚连接单片机的 P31。
2. 实现思路和操作原理
手机和单片机通过蓝牙模块进行通信,蓝牙模块充当中间媒介。手机 APP 发送的数据通过蓝牙模块传输给单片机,单片机接收到数据后进行相应的处理,并将反馈数据通过蓝牙模块发送回手机 APP。
具体来说,蓝牙模块一方面可以接收手机 APP 发送的数据并传达给单片机,另一方面单片机也可以将反馈数据发送到手机 APP。这样就实现了手机和单片机之间的交互通信。
3. 具体操作方法
- 使用 MIT Appinventor 制作简单的组件页面:
-
- 布局优化:虽然目前的布局还有待优化,但对于实现最基本的功能来说已经足够了。可以根据实际需求进一步优化页面布局,提高用户体验。
-
- 逻辑设计:列表选择框(选择蓝牙)的启用为真,按钮(断开)的启用为假。选择蓝牙时,将蓝牙客户端的地址及名称显示出来供用户选择。蓝牙所发送的数据为 1 或 0,用于传递给单片机,进而控制 LED 灯的亮灭。在文本框输入 1 或 0,点击确认发送即可完成相应功能。
- 实现单片机对手机反馈数据的操作:
-
- 原理:遵循单片机反向反馈数据的原理,通过显示框找到蓝牙接收到的数据并显示出来。
-
-
程序实现:以下是具体的程序代码:
#include <reg52.h>
//51 头文件
sbit LED1 = P2^0; //位定义 LED1 硬件接口
void delay(unsigned int z)//毫秒级延时
{
unsigned int x,y;
for(x = z; x >0; x--)
for(y =114; y >0 ; y--);
}
//
/ 串口中断程序 /
//
void UART_SER () interrupt 4
{
unsigned int n; //定义临时变量
if(RI) //判断是接收中断产生
{
RI=0; //标志位清零
n=SBUF; //读入缓冲区的值
switch(n)
{
case 1: LED1=0; break; //亮灯
case 0: LED1=1; break; //灭灯
}
}
//蓝牙初始化
void boothint(void)
{
SCON =0x50; // SCON: 模式 1,8-bit UART, 使能接收
TMOD |=0x20;
TH1=0xfd; //波特率 9600 初值
TL1=0xfd;
TR1=1;
EA =1; //开总中断
ES=1; //打开串口中断
}
//串口初始化
void UartConfigurationInit()
{
TMOD=0x20; //设置定时器 1 工作方式为方式 2
TH1=0xfd; //波特率 9600
TL1=0xfd;
TR1=1; //启动定时器 1
SM0=0;
SM1=1; //串口方式 1
REN=1; //允许接收
PCON=0x00; //关倍频
ES=1; //开串口中断
EA=1; //开总中断
}
void main()
{
boothint();
while(1)
{
SBUF=9; //发送单个字符
while(!TI);
TI=0; //发送完成标志
}
-
- 介绍 App 的简单介绍、蓝牙逻辑连接的实现、数据比较逻辑结构的实现、数据显示遇到的问题和思考及解决方法和尝试:
-
- App 的简单介绍:首先 APP 的功能描述如下,它可以发送 6 个数据并接收 4 个数据。并且数据全部以浮点型数据出现,并保留有判断框,内部要进行数据之间的比较,让判断框的内容发生改变。
-
- 蓝牙逻辑连接的实现:首先是简单的蓝牙连接模块。其核心组件就是一个列表选择框。当我们点入列表选择框的时候,需要让 APP 呈现出我们所要连接的蓝牙名字即可。所以有选中项、屏幕初始化以及蓝牙连接地址这些基本组件方可构成上述应用的设定。
-
- 数据比较逻辑结构的实现:如何进行两个数据之间的比较呢?按照设定两个数据之间的类型是不一样的。一个是数字而另一个是文本。所以我们需要将数据之间的类型统一化。可以将文本输入框中的内容设定为只允许输入数字。并且设置一个变量,让这个变量为文本变量。经过多次尝试和逻辑思考之后,整理出了正确的表达方式。
-
- 数据显示遇到的问题和思考:接收 4 个数据,并且让其成为浮点型是一个难点。首先浮点型数据本身就拥有着小数点,且数据复杂在所提供的蓝牙设置框中并没有接收浮点型数据的控件。尝试了将浮点型数据拆成两个部分进行接收和让蓝牙接收字符串两种方法,但都存在一些问题。
-
- 解决方法和尝试:经过多次尝试和改良,让蓝牙接收字符串的方法可以在 4 个数据框中显示出数据的位数,但并不能正确的显示出数据的样子,而且数字在一直的变化。可能是硬件设施串口的通信并不是特别的优良,存在一定的误差。
总之,单片机蓝牙手机 APP 的开发需要进行软件和硬件的准备工作,了解实现思路和操作原理,并通过具体的操作方法实现手机和单片机之间的通信和控制。在开发过程中,可能会遇到一些问题,需要不断地尝试和改进,以实现更好的效果。
六、结论
单片机蓝牙手机 APP 的连接方法、应用案例、功能和开发教程充分展示了其在实际应用中的重要性和便捷性。
连接方法
单片机蓝牙手机 APP 的连接需要一定的软件和硬件准备。软件方面,keil uvision 和 stc - isp - 15xx - v6.85 等工具用于单片机程序的开发和下载。硬件方面,蓝牙模块作为关键组件,连接单片机和手机,实现数据的无线传输。具体连接方法为蓝牙模块的 VCC 接单片机的 VCC,GND 接 GND,TXD 接 P30,RXD 接 P31。
应用案例
- STM32 蓝牙遥控小车:通过手机 APP 控制小车,具有实用性和趣味性。器件包括 STM32F103C8T6 单片机开发板、L298N 电机驱动、MLT BT05 蓝牙模块、0.96 寸 OLED 显示屏、电机和麦克纳姆轮等。连线复杂,需注意电机安装方向和引脚连接。小车源码结构清晰,通过控制电机正反转和速度实现小车运动。手机 APP 可连接蓝牙、选择低功耗蓝牙、搜索设备并控制小车。
- 手机 APP 控制 stm32 单片机待机与唤醒:硬件电路包括周立功 ZLG52810P0 - 1 - TC 蓝牙模块和 STM32103CBT6TR 单片机,通过 PA9 - - USART1_TX、PA10 - - USART1_RX、PA0 - - P0.20、PA2 - - BL_RST 等引脚连接。软件设计中,MCU 接收待机命令后发送低功耗设置的 AT 命令给蓝牙模块,使单片机进入待机模式,手机 APP 发送数据可唤醒单片机。
- 智能家居系统:基于 STC15W 单片机设计,通过蓝牙手机 APP 控制风扇、灯、空调、窗帘等设备,采集温湿度、检测入侵等功能。电路组成包括 STC15W4K48S4 最小系统、语音识别模块、LCD1602 显示、DHT11 温湿度传感器、按键、HC05 蓝牙模块等。具有多种控制方式和状态显示功能。
- 智能记忆汽车按摩座椅:基于 STM32 单片机设计,可通过语音识别、电路板按键、蓝牙手机 APP 控制座椅功能。电路组成包括 STM32F103CXT6 最小系统、LD3322 语音识别模块、OLED 显示、步进电机、震动马达电机、风扇、加热片、按键和 HC - 05 蓝牙模块等。具有座椅记忆、按摩、通风、加热等功能,手机 APP 可显示状态并控制座椅。
功能
- 多种控制方式:提供电路板按键、语音以及蓝牙手机 APP 控制等方式,方便用户操作各种设备。
- 状态显示:APP 能够显示设备的多种状态信息,如在智能家居系统中显示风扇、灯、继电器等设备的开关状态和温湿度信息,在智能记忆汽车按摩座椅中显示座椅的各种状态。
- 低功耗模式:手机 APP 软件通过蓝牙通讯实现对单片机的待机与唤醒功能,降低非工作状态下的功耗。
开发教程
- 前期准备:软件准备包括 keil uvision 和 stc - isp - 15xx - v6.85,硬件准备有蓝牙模块、单片机、手机和编程电脑。蓝牙模块与单片机的连接方法如前所述。
- 实现思路和操作原理:手机和单片机通过蓝牙模块进行通信,蓝牙模块充当中间媒介,实现数据的双向传输。
- 具体操作方法:使用 MIT Appinventor 制作简单的组件页面,进行逻辑设计,实现手机对单片机的控制和单片机对手机的反馈数据。同时,介绍了 App 的简单介绍、蓝牙逻辑连接的实现、数据比较逻辑结构的实现、数据显示遇到的问题和思考及解决方法和尝试。
综上所述,单片机蓝牙手机 APP 在各个领域都有广泛的应用前景,为我们的生活和工作带来了更多的便利和智能化体验。