STM32cubemx配置JDY31蓝牙模块小车须具备蓝牙或 WIFI 与上位机通信、传递遥控或采集数据的功能; 采集数据(如温湿度)存放到上位机(手机、或树莓派、或笔记本 Ubuntu 任选 一),上位机再将数据存放到云端服务器的 MySQL 数据库中。
时间: 2025-07-05 12:01:29 浏览: 13
### 配置STM32CubeMX与JDY31蓝牙模块实现小车远程控制和数据传输
#### 一、硬件准备
为了完成此项目,需准备好如下材料:
- STM32F103C8T6开发板及其配套工具链;
- JDY31蓝牙模块;
- 小车底盘及相关驱动电机;
- 树莓派作为服务器端运行Ubuntu操作系统并部署MySQL数据库。
#### 二、STM32CubeMX配置
在STM32CubeMX中设置UART接口用于连接JDY31蓝牙模块。具体操作是在Pinout&Configuration界面选择USART外设,并将其模式设定为Asynchronous异步通讯模式[^3]:
```c
/* UART3 init function */
static void MX_UART3_Init(void)
{
huart3.Instance = USART3;
huart3.Init.BaudRate = 9600; // 设置波特率为9600bps
huart3.Init.WordLength = UART_WORDLENGTH_8B;
huart3.Init.StopBits = UART_STOPBITS_1;
huart3.Init.Parity = UART_PARITY_NONE;
huart3.Init.Mode = UART_MODE_TX_RX;
huart3.Init.HwFlowCtl = UART_HWCONTROL_NONE;
huart3.Init.OverSampling = UART_OVERSAMPLING_16;
if (HAL_UART_Init(&huart3) != HAL_OK)
{
Error_Handler();
}
}
```
#### 三、树莓派搭建云平台
安装LAMP环境(Linux, Apache, MySQL, PHP),并将收集到的数据存入MySQL数据库中。创建一个新的数据库表来保存传感器读数和其他重要参数。例如,在PHPMyAdmin中执行SQL语句创建名为`car_data`的新表格:
```sql
CREATE TABLE car_data (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
temperature VARCHAR(30),
humidity VARCHAR(30),
timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
```
#### 四、手机APP开发
利用Android Studio或其他移动应用框架构建简单的客户端应用程序,该程序能够发送命令给小车上搭载的STM32控制器并通过Bluetooth SPP协议接收返回的状态报告。对于iOS设备,则可考虑采用Swift语言配合Core Bluetooth库来进行相似功能的设计。
#### 五、数据上传至云端
当接收到由STM32转发来的测量数值之后,可以通过HTTP POST请求的方式向位于Raspberry Pi上的Web Service提交这些信息。Python Flask是一个轻量级web框架非常适合用来处理这类任务。下面给出了一段简化版的服务端代码片段展示如何解析JSON格式的消息体并写入关系型数据库内:
```python
from flask import request, jsonify
import mysql.connector as mariadb
@app.route('/upload', methods=['POST'])
def upload():
content = request.get_json()
conn = mariadb.connect(user='root', password='', host='localhost', database='iot')
cursor = conn.cursor()
sql_insert_query = """ INSERT INTO `car_data`
(`temperature`, `humidity`) VALUES (%s,%s)"""
insert_tuple = (content['temp'], content['humi'])
result = cursor.execute(sql_insert_query,insert_tuple)
conn.commit()
return "Record inserted successfully into python_users table"
```
阅读全文
相关推荐


















