昨晚确实给我整麻了,烧录个固件弄的焦头烂额的,本次实训所用的ESP8266其实可以不用进行烧录固件,但我都烧录ok了,那还是留下点东西来防止以后忘掉吧
首先是烧录软件
ESP8266烧录软件 提取码为2471
接下来是有关ESP8266的标准固件,这个亲测没有问题
ESP8266的标准固件 提取码为2471
下载完软件之后,是这个样子,一定不要选错参数,要不然真的很折磨
点击OK后,弹出一个新的界面
上面的参数一定不要弄错,一定要按照顺序。
接下来要做的就是配置硬件管脚的连接
我这里使用的是ESP8266-01S,所以EN管脚我可以不连接的,大家在烧录时候一定要注意产品型号,根据数据手册来决定管脚的连接
ESP8266 | USB转TTL |
3V3 | 3V3 |
TX | RXD |
RX | TXD |
GPIO0 | GND |
GND | GND |
做完这些准备工作,就可以开始烧录了,我们点击start,上方的IDLE会变成重新上电,这时候,我们手动拔插一下GND或者3V3即可。
在使用ESP8266直接与电脑进行通信时,我单纯的以为,只要有一个USB转TTL就可以了,但事实不是这样的,首先要注意的一点是,GPIO0只有在烧录的时候,才需要接地,在使用的时候,悬空即可,同时,我们还需要单独给ESP8266供电,也就是说,对于ESP8266-01S来说,3V3和GND都需要其他设备来供电,而且GND还必须跟USB转TTL的GND共地。老师一开始也觉得很麻烦,后来老师在模块间用电烙铁焊接了一个大电容,把VCC和GND接了起来,这样就不需要额外给模块供电了
剩下的就是ESP8266与我们的STM32F103C8T6最小核心板的连接了
ESP8266 | STM32F103C8T6 |
3V3 | 3V3 |
GND | GND |
TX | PA3 |
RX | PA2 |
RST | PC14 |
连接完之后,我们就可以让单片机向ESP8266发送指令,我们就可以接收到了
这里的代码,我在Demo的基础上进行更改的,Demo地址如下:
链接:https://pan.baidu.com/s/1UmlpvyYogR2LDeLSDRrOPw
提取码:2471
这里我只给大家强调一下需要更改的地方。
首先是ESP8266的相关代码,下面是两条宏定义,其中第一个宏定义是我们的ESP8266要对我们的wifi进行连接,我们这个格式一定不能错。大家如果需要修改的话,可以在第一个逗号前输入自己的wifi也可以是自己的手机热点,逗号后面大家可以放自己的密码。要注意的是,千万不要乱更改\,我相信有C语言基础的同学一定知道原理,这里我就不再赘述了
第二个宏定义呢是MQTT协议的一个格式,这里呢,其实是不需要进行更改的,如果大家没有用该协议,那么此处需要更改,其余的地方,我们不需要更改
#define ESP8266_WIFI_INFO "AT+CWJAP=\"TP-LINK_970E\",\"sdkjdx312\"\r\n"
#define ESP8266_ONENET_INFO "AT+CIPSTART=\"TCP\",\"183.230.40.39\",6002\r\n"
在onenet.c文件下,我们也要对三个宏定义进行更改
#define PROID "530747"
#define AUTH_INFO "5678"
#define DEVID "962710140"
这里的三个宏定义分别是产品ID(注意,千万不要看成是用户ID)
在这里呢,我们就需要进入Onenet的官网了,在上面匹配下我们的信息了
OneNET - 中国移动物联网开放平台 (10086.cn)
可以参考我的资源,链接我放在下面
ESP8266的准备工作,Onenet配置一个ESP8266设备-智能家居文档类资源-CSDN文库
产品ID如下
鉴权信息
就是大家在申请的时候自己写的内容,千万不要写错,你写的是1234,那填的时候就是1234
设备ID
做完这些更改后,我们的任务还没有结束
要想防止我们的串口出现乱码的现象,大家一定要给核心板更改系统频率
大家可以看到,我们的核心板上的外接晶振是8MHZ的,而我们的程序里却是12MHZ的晶振。
大家可以在左侧的项目里找到system_stm32f10x.c文件,使用CTRL+G输入1056找到倍频,将RCC_CFGR_PLLMULL6改为RCC_CFGR_PLLMULL9;
在stm32f10x.h文件下,使用CTRL+G找到时钟,将12000000改为8000000;
然后再点开我们的魔法棒,将晶振频率12.0M改为8.0M
到此为止,我们就完成了更改频率这一步
使用我们的ST-LINK将代码烧录进单片机,具体可以参考我的上一篇博客,点开我的个人主页即可
当一切准备妥当之后,这就是我们的串口助手所给我们展示的。
大家可以下载下来参考一下。
stm32与esp8266上传的数据到ONENET代码展示-智能家居文档类资源-CSDN文库
大家可以点开这个控制台,点击下面的切换旧版
在这里,我们可以看见我们创建出来的产品
点开其中一个产品,我们点击设备列表
我们的产品是在线的,再点击数据流
我们就可以看到我们的参数了
只不过这里我用每隔13秒左右让温度和湿度实现一次自加,来替代DHT11采集到的数据。