单片机蓝牙手机 APP
目录
一、引言
二、单片机连接蓝牙手机 APP 的方法
1. 所需工具
2. 具体步骤
三、单片机蓝牙手机 APP 的应用案例
1. STM32 蓝牙遥控小车
2. 手机 APP 控制 stm32 单片机待机与唤醒
3. 智能家居系统
4. 智能记忆汽车按摩座椅
四、单片机蓝牙手机 APP 的功能
1. 多种控制方式
2. 状态显示
3. 低功耗模式
五、单片机蓝牙手机 APP 开发教程
1. 前期准备
2. 实现思路和操作原理
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 工作方式为方式 2TH1=0xfd; //波特率 9600TL1=0xfd;TR1=1; //启动定时器 1SM0=0;SM1=1; //串口方式 1REN=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 工作方式为方式 2TH1=0xfd; //波特率 9600TL1=0xfd;TR1=1; //启动定时器 1SM0=0;SM1=1; //串口方式 1REN=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 在各个领域都有广泛的应用前景,为我们的生活和工作带来了更多的便利和智能化体验。
相关文章:
单片机蓝牙手机 APP
目录 一、引言 二、单片机连接蓝牙手机 APP 的方法 1. 所需工具 2. 具体步骤 三、单片机蓝牙手机 APP 的应用案例 1. STM32 蓝牙遥控小车 2. 手机 APP 控制 stm32 单片机待机与唤醒 3. 智能家居系统 4. 智能记忆汽车按摩座椅 四、单片机蓝牙手机 APP 的功能 1. 多种控…...
PostgreSQL在Linux环境下的常用命令总结
标题 登录PgSQL库表基本操作命令新建库表修改库表修改数据库名称:修改表名称修改表字段信息 删除库表pgsql删除正在使用的数据库 须知: 以下所有命令我都在Linux环境中执行验证过,大家放心食用,其中的实际名称换成自己的实际名称即…...
Unity shaderlab 实现LineSDF
实现效果: 实现代码: Shader "Custom/LineSDF" {Properties{}SubShader{Tags { "RenderType""Opaque" }Pass{CGPROGRAM#pragma vertex vert#pragma fragment frag#include "UnityCG.cginc"struct appdata{floa…...
Ubuntu中的apt update 和 apt upgrade
apt update 和 apt upgrade 是 Debian 及其衍生发行版(如 Ubuntu)中常用的两个 APT 包管理命令,它们各自执行不同的任务: apt update: 这个命令用于更新本地软件包列表。当你运行 apt update 时,APT 会从配置的源&…...
Android 中 Swipe、Scroll 和 Fling 的区别
Android 中 Swipe、Scroll 和 Fling 的区别 Swipe(滑动)Scroll(滚动)Fling(甩动)三者之间的区别代码示例 (Fling)总结 在 Android 应用中,Swipe、Scroll 和 Fling 都是用户在触摸屏幕上进行的滑…...
linux基础2
声明! 学习视频来自B站up主 泷羽sec 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关&#…...
如何通过智能生成PPT,让演示文稿更高效、更精彩?
在快节奏的工作和生活中,我们总是追求更高效、更精准的解决方案。而在准备演示文稿时,PPT的制作往往成为许多人头疼的问题。如何让这项工作变得轻松且富有创意?答案或许就在于“AI生成PPT”这一智能工具的广泛应用。我们就来聊聊如何通过这些…...
执法记录仪数据自动备份光盘刻录归档系统
派美雅按需研发的执法记录仪数据自动备份光盘刻录归档系统,为用户提供数据自动上传到刻录服务端、数据上传后自动归类,全自动对刻录端视频文件大小进行实时监测,满盘触发刻录,无需人工干预。告别传统刻录存在的痛点,实…...
启动SpringBoot
前言:大家好我是小帅,今天我们来学习SpringBoot 文章目录 1. 环境准备2. Maven2.1 什么是Maven2.2 创建⼀个Maven项⽬2.3 依赖管理2.3.1 依赖配置2.3.2 依赖传递2.3.4 依赖排除2.3.5 Maven Help插件(plugin) 2.4 Maven 仓库2.6 中…...
重定向操作和不同脚本的互相调用
文章目录 前言重定向操作和不同脚本的互相调用 前言 声明 学习视频来自B站UP主 泷羽sec,如涉及侵权马上删除文章 笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负 重定向操作和不同脚本的互相调用 1.不同脚本的互相…...
51单片机教程(九)- 数码管的动态显示
1、项目分析 通过演示数码管动态显示的操作过程。 2、技术准备 1、 数码管动态显示 4个1位数码管和单片机如何连接 a、静态显示的连接方式 优点:不需要动态刷新;缺点:占用IO口线多。 b、动态显示的连接方式 连接:所有位数码…...
golang支持线程安全和自动过期map
在 Golang 中,原生的 map 类型并不支持并发安全,也没有内置的键过期机制。不过,有一些社区提供的库和方案可以满足这两个需求:线程安全和键过期。 1. 使用 sync.Map(线程安全,但不支持过期) Go…...
机器学习之RLHF(人类反馈强化学习)
RLHF(Reinforcement Learning with Human Feedback,基于人类反馈的强化学习) 是一种结合人类反馈和强化学习(RL)技术的算法,旨在通过人类的评价和偏好优化智能体的行为,使其更符合人类期望。这种方法近年来在大规模语言模型(如 OpenAI 的 GPT 系列)训练中取得了显著成…...
泷羽sec---shell作业
作业一 写计算器 使用bc命令 需要进行安装bc 代码如下: #!/bin/bash echo "-----------------------------------" echo "输入 f 退出" echo "可计算小数和整数" echo "用法如:1.12.2" echo "------…...
华为海思2025届校招笔试面试经验分享
目前如果秋招还没有offer的同学,可以赶紧投递下面这些公司,都在补招。争取大家年前就把后端offer拿下。如果大家在准备秋招补录取过程中有任何问题,都可以私信小编,免费提供帮助。如果还有部分准备备战春招的同学,也可…...
摆脱复杂配置!使用MusicGPT部署你的私人AI音乐生成环境
文章目录 前言1. 本地部署2. 使用方法介绍3. 内网穿透工具下载安装4. 配置公网地址5. 配置固定公网地址 前言 今天给大家分享一个超酷的技能:如何在你的Windows电脑上快速部署一款文字生成音乐的AI创作服务——MusicGPT,并且通过cpolar内网穿透工具&…...
嵌入式Linux中的GPIO编程
GPIO(General Purpose Input Output)是嵌入式系统中非常常见的一种硬件资源,它允许开发者直接控制微处理器或微控制器的引脚。通过设置这些引脚的状态,可以实现对硬件设备的控制,如LED灯的开关、传感器数据的读取等。 …...
js:函数
函数 函数:实现抽取封装,执行特定任务的代码块,方便复用 声明 函数命名规范 尽量小驼峰 前缀应该为动词,如getName、hasName 函数的调用 函数体是函数的构成部分 函数传参 参数列表里的参数叫形参,实际上写的数据叫实…...
低代码平台审批流程设计
审批流程设计 在此界面设置审批单从发起、到审批、再到结束的流转步骤。 6.1 添加节点 点击两个节点间连线的 图标可添加 审批人、抄送人、办理人、条件分支。 6.2 节点类型 提交节点 点击提交节点,可在右侧弹窗中设置提交节点的抄送人,实现审批在发…...
OpenCV相机标定与3D重建(8)相机标定函数calibrateCamera()的使用
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 从校准图案的多个视图中找到相机的内参和外参参数. cv::calibrateCamera 是 OpenCV 中用于相机标定的一个非常重要的函数。它通过一系列已知的世…...
Linux信号量的编程
一,用信号量来实现是父进程先进行,还是子进程先进性 信号量的没有P,V操作之前,我们不知道如何控制: #include <stdio.h> #include <sys/types.h> #include <sys/ipc.h> #include <sys/sem.h>…...
“Yaker,你可以全局配置插件环境变量!“
周四周四,Vme50(bushi 大家好,这里是疯狂超级牛(功能上新版) 经常有用户问 “牛牛如何为不同插件配置相同的变量值呢?” “能有一个一波搞定插件变量的方式就好了” 超级牛听到了广大用户的声音,默默地拿起…...
SAAS美容美发系统架构解析
随着技术的不断发展,SAAS(Software as a Service,软件即服务)模式在各个行业的应用逐渐深化,美容美发行业也不例外。传统的美容美发店面通常依赖纸质记录、手动操作和复杂的管理流程,而随着SAAS平台的出现&…...
如何为 ext2/ext3/ext4 文件系统的 /dev/centos/root 增加 800G 空间
如何为 ext2/ext3/ext4 文件系统的 /dev/centos/root 增加 800G 空间 一、引言二、检查当前磁盘和分区状态1. 使用 `df` 命令检查磁盘使用情况2. 使用 `lsblk` 命令查看分区结构3. 使用 `fdisk` 或 `parted` 命令查看详细的分区信息三、扩展逻辑卷(如果使用 LVM)1. 检查 LVM …...
vscode远程连接ssh
一. 使用vscode里的ssh查件连不上远程的解决方法 删除Windows上的known_host文件,该文件会在连接之后自动生成,用于验证远程服务器的身份。 konwn_host和id_rsa,id_rsa.pub的关系 (1)konwn_host用于客户端验证远程服务…...
智慧防汛平台在城市生命线安全建设中的应用
随着城市化进程的加快,城市基础设施的复杂性和互联性不断增强,城市生命线的安全管理面临前所未有的挑战。智慧防汛平台作为城市生命线安全建设的重要组成部分,通过现代信息技术提升城市防汛应急管理的智能化水平,保障城市安全。 …...
python实现TCP Socket控制测试仪器
python实现TCP Socket控制测试仪器 说明前提条件代码 说明 本例是用python实现TCP Socket,最终目的是为了控制LCR电容测试仪器。 前提条件 测试仪器 配备了以太网接口,支持TCP/IP协议栈 用户可以通过IP地址和端口号连接到仪器,建立TCP通信…...
51c自动驾驶~合集38
我自己的原文哦~ https://blog.51cto.com/whaosoft/12358456 #GaussianPretrain 万能3D高斯预训练表示!爆拉3D检测、Occ、高精地图等四大任务! 受Tesla的技术的推动,越来越多的厂商开始走"纯视觉"的路线,多数方案还…...
电脑显示器拔插DVI线后副屏不显示
问题:台式机副屏显示器插拔DVI线后副屏无法检测到,不显示 其他现象:电脑设备管理器“显示适配器”中只有独显,未显示集显。 尝试方法: 1、 重新插拔并拧紧DVI线、更换DVI线、将DVI线替换为VGA线、调换DVI线及VGA线两…...
Bash脚本常用命令
1.Bash常用快捷键 2.通配符 3.Bash其他特殊符号 4.位置参数 5.预定义变量 6.常用变量比较 7.基础正则表达式 8.文件类型判断 9.文件权限判断 10.整数比较命令 11.字符串判断 其他常用参考: https://zhuanlan.zhihu.com/p/748857250...
网站制作入门/怎么在百度做宣传广告
配置Windows Server 2003 的RADIUS Server的方法1、安装Windows 2003操作系统;2、添加角色(须插网线);3、添加组件->网络服务、证书服务;4、管理工具->域安全策略->帐户策略->密码策略;&#x…...
大宗商品交易平台上市公司/seo是什么意思广东话
引言 前面已经学习了celeryredis的异步和定时任务,下面介绍如何结合django来使用。 环境配置 在动手之前,一定要准备好的是环境,celery版本有很多,在使用过程中如何版本与django和redis版本不配套,将会很麻烦。 我这里…...
怎么上传软件到网站/企业网站优化服务
都在附件中,简单记录一下转载于:https://blog.51cto.com/xflqsw/1439994...
建立旅游网站的目的/成都短视频代运营
Navicat for MySQL 是一套管理和开发 MySQL 或 MariaDB 的理想解决方案,支持单一程序,可同时连接到 MySQL和MariaDB。这个功能齐备的前端软件为数据库管理、开发和维护提供了直观而强大的图形界面,给 MySQL 或 MariaDB 新手以及专业人士提供了…...
如何租用服务器做网站/长安seo排名优化培训
MPI简介在程序中,不同的进程需要相互的数据交换,特别是在科学计算中,需要大规模的计算与数据交换,集群可以很好解决单节点计算力不足的问题,但在集群中大规模的数据交换是很耗费时间的,因此需要一种在多节点…...
杭州网站建设icp备/南京百度推广开户
function filterRepat(arr){if(Array.isArray(arr) && arr.length){var arr arr.filter(function(val,index,carr){return carr.indexOf(val) index;});return arr;}return []; } 转载于:https://www.cnblogs.com/zhujiasheng/p/8447686.html...