一、写在最前面
与物院、材院的同学一起,设计由霍尔元件、电磁铁和单片机等元素构成的水污染测试系统,通过自学完成单片机与HC-05蓝牙模块通信板块以及系统前端页面设计,获得全国物理实验三等奖、湖北省物理实验创新设计竞赛二等奖。
感谢@周 一个下午外加三晚上的单片机讲解,@队友们提供的物理实验的机会,@的APP前端设计
二、相关介绍
本实验以树莓派开发板作为控制板并加以5V的直流稳压电源,通过UART库初始化树莓派的单片机的串口,再使用初始化单片机的串口连接HC-05蓝牙模块,将单片机测试的电压值处理后通过蓝牙无线通信传输至手机,最后手机通过无线通信控制单片机的继电器从而改变电路中的净化功能。
树莓派Raspberry Pi Pico 是一款搭载了 RP 2040 芯片的微处理器开发板,搭载双核 ARM Cortex M0+ 处理器,运行频率 133 MHz,内置 264 KB 的片上 RAM,可通过专用 QSPI 总线支持最高 16 MB 的片外闪存,DMA 控制器,外挂内插器和整数除法器,2 个 SPI、2 个 I2C、2 个 UART,16 个 PWM 通道,主机和设备支持的 USB 1.1,8 个树莓派可编程 I/O 状态,支持 UF2 的 USB 大容量存储启动模式。开发板上有30个GPIO接口,使用python的第三方库machine进行对各个引脚的控制,并通过GPIO26接口实现模拟信号的输入,即待测电路的电压值。
HC-05蓝牙模块,是一个蓝牙转串口转换器,可以连接微控制器的其他设备,允许它们进行无线蓝牙通信。HC-05的主要工作是为了添加双向(全双工)的无线功能。它可以用于两个具有串行功能的微控制器之间的通信,也可以用于通过微控制性控制蓝牙设备的功能,反之亦然。模块启动后,任何蓝牙设备都可以发现它。在这里,我们通过其将单片机与手机建立连接,之后数据通过HC-05传输,并转换为串行流,然后由模块连接的控制器读取该串行流,与从控制器发送数据给蓝牙的方法相反。
三、电路
(1)建立电路
我们通过杜邦线分别将树莓派的GPIO与测试电路、HC-05蓝牙模块、5V直流稳压电源、CLR元件等信号进行连接。预测电路的待测电压及GNU分别连接,向单片机输入电压等模拟信号;由外部电源给单片机供电,运行烧入单片机的程序;同时将串口模块输出信号3V3(OUT)与HC-05蓝牙模块连接起来,实现蓝牙通信功能;CLR元件能对电路实现通断控制,从而实现复位功能。
单片机串口模块 —————————— 测试电路
GPIO26 ————————————————— 正极
GND —————————————————— 负极
单片机串口模块 ——————— HC-05蓝牙模块
3V3OUT ————————————————— VCC
GND ——————————————————— GND
GPIO0(TXD) —————————————— RXD
GPIO1(RXD) —————————————— TXD
单片机串口模块 —————————— 外部电源
VSYS —————————————————— VCC
GND —————————————————— GUN
单片机串口模块 —————————— CLR元件
3V3OUT ————————————————— 一端
GND —————————————————— 另一端
(2)升级安装蓝牙相关软件包,添加pi用户到蓝牙组,并重启;
打开PC端串口工具,由于此时默认波特率为38400,故将软件端波特率选项选为38400。此时可以在命令窗口发送命令,以 “回车”即换行结尾。输入 AT,再按回车换行,点击发送,此时接收端的窗口会收到一条OK指令,说明通信成功。之后我们对波特率进行设置。在初次调试过程中,我们将波特率设置为可以和手机通信的波特率9600bits/s。发送指令AT+UART=9600,0,0换行,将设置波特率为9600,停止位是1位,奇偶效验位没有(none)。最后设置配对码。发送指令AT+PSWD=<1234>换行,将配对码设置为1234;发送指令AT+PSWD?换行,显示配对码为1234,说明设置成功。
(3)HC-05蓝牙模块与手机连接,查看设备名;
进入蓝牙模式,HC-05蓝牙模块的指示灯会一秒钟闪两下。通过手机APPSPP蓝牙串口连接蓝牙。连接成功后,灯变成连闪两下。之后,我们将通过蓝牙模块连接手机进行无限通信。将USB串口拔下,再直接插上(这次不用按小钮),便进入了自动连接模式。PC软件端波特率设置为9600,16进制显示,16进制发送。手机蓝牙串口APP端设置为HEX模式。就可以进行通信了。如果传输文本,那么PC端去掉 16进制显示和16进制发送的勾选,app端去掉HEX模式的勾选即可。
(4)编写能控制输出处理后模拟量的程序函数;
(5)编写蓝牙模块与手机蓝牙的测试程序,确保两个模块正常运行;
(6)编写完整程序,使得能通过蓝牙模块发送和接收模拟信号信息;
(7) 写了一个交互模块,单片机测试的电压值处理后通过蓝牙无线通信传输至手机,使得使用者能够通过手机获取污水有关信息;手机可以通过蓝牙传输的方式,发送给树莓派,最后根据选择模式控制单片机的继电器从而改变电路中的净化功能。