检查固件是否可用
AT+MQTTUSERCFG=0,1,"ESP8266Client","myname","password",0,0,""
不报错证明可用
烧录固件
使用固件名为 1471_esp8266-at_mqtt-1m
IO_O引脚接地进入烧录模式

通信方式
2025/12/12小于 1 分钟
AT+MQTTUSERCFG=0,1,"ESP8266Client","myname","password",0,0,""
不报错证明可用
使用固件名为 1471_esp8266-at_mqtt-1m
IO_O引脚接地进入烧录模式

| 实物 | 接线 |
|---|---|
![]() |
![]() |
OLED用来显示调试信息

void uart_print(UART_HandleTypeDef *huart,char* format,...) {
char buf[128]={0};
va_list ap;
va_start(ap,format);
vsprintf(buf,format,ap);
va_end(ap);
HAL_UART_Transmit(huart,(uint8_t*)buf,strlen(buf),HAL_MAX_DELAY);
}
官方文档:物联网开放平台
你做了一个监控花盆土壤湿度的设备,想用手机远程看到湿度数据,大致有两种办法:
✅ 方法一:自己搭服务器
由于是stm32主动获取固件,所以我使用了类似于AT指令的架构去处理如何连接wifi,设置固件位置,拉取固件等,将主动权交给stm32
没有云服务器也没关系,可以自己的电脑当作服务器。





硬件:
电脑组成

stm32内部

注意事项:HC-05的VCC接3V3,实测5V无法使用
蓝牙模块只有在通信状态才会显示已连接蓝牙,打不开蓝牙串口参考:HC05和电脑蓝牙通讯
HC05-python-stm32的波特率必须都设置为同样的速率,我这里为9600
总结:当成远程串口用就行
波特率为38400
Python 里的索引(indexing)其实就是告诉程序“我要取第几个元素”。拿 列表、字符串、张量 这些数据结构来说,规则都差不多:
nums = [10, 20, 30, 40] print(nums[0]) # 第1个元素 → 10 print(nums[2]) # 第3个元素 → 30