STM32F103C8T6与ESP8266构建通信(二)

关于ESP8266是否要进行烧录固件的问题

昨晚确实给我整麻了,烧录个固件弄的焦头烂额的,本次实训所用的ESP8266其实可以不用进行烧录固件,但我都烧录ok了,那还是留下点东西来防止以后忘掉吧

首先是烧录软件

  ESP8266烧录软件           提取码为2471

接下来是有关ESP8266的标准固件,这个亲测没有问题       

 ESP8266的标准固件         提取码为2471

下载完软件之后,是这个样子,一定不要选错参数,要不然真的很折磨 

STM32F103C8T6与ESP8266构建通信(二)_第1张图片

点击OK后,弹出一个新的界面

STM32F103C8T6与ESP8266构建通信(二)_第2张图片

 上面的参数一定不要弄错,一定要按照顺序。

接下来要做的就是配置硬件管脚的连接

我这里使用的是ESP8266-01S,所以EN管脚我可以不连接的,大家在烧录时候一定要注意产品型号,根据数据手册来决定管脚的连接

ESP8266 USB转TTL
3V3 3V3
TX RXD
RX TXD
GPIO0 GND
GND GND

做完这些准备工作,就可以开始烧录了,我们点击start,上方的IDLE会变成重新上电,这时候,我们手动拔插一下GND或者3V3即可。

ESP8266与电脑的通信

        在使用ESP8266直接与电脑进行通信时,我单纯的以为,只要有一个USB转TTL就可以了,但事实不是这样的,首先要注意的一点是,GPIO0只有在烧录的时候,才需要接地,在使用的时候,悬空即可,同时,我们还需要单独给ESP8266供电,也就是说,对于ESP8266-01S来说,3V3和GND都需要其他设备来供电,而且GND还必须跟USB转TTL的GND共地。老师一开始也觉得很麻烦,后来老师在模块间用电烙铁焊接了一个大电容,把VCC和GND接了起来,这样就不需要额外给模块供电了

STM32F103C8T6与ESP8266构建通信(二)_第3张图片

 剩下的就是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设备

可以参考我的资源,链接我放在下面

ESP8266的准备工作,Onenet配置一个ESP8266设备-智能家居文档类资源-CSDN文库

产品ID如下

STM32F103C8T6与ESP8266构建通信(二)_第4张图片

 鉴权信息

就是大家在申请的时候自己写的内容,千万不要写错,你写的是1234,那填的时候就是1234

STM32F103C8T6与ESP8266构建通信(二)_第5张图片

设备ID

STM32F103C8T6与ESP8266构建通信(二)_第6张图片

 做完这些更改后,我们的任务还没有结束

STM32F103C8T6更改系统频率

要想防止我们的串口出现乱码的现象,大家一定要给核心板更改系统频率

STM32F103C8T6与ESP8266构建通信(二)_第7张图片

 大家可以看到,我们的核心板上的外接晶振是8MHZ的,而我们的程序里却是12MHZ的晶振。

大家可以在左侧的项目里找到system_stm32f10x.c文件,使用CTRL+G输入1056找到倍频,将RCC_CFGR_PLLMULL6改为RCC_CFGR_PLLMULL9;

STM32F103C8T6与ESP8266构建通信(二)_第8张图片

在stm32f10x.h文件下,使用CTRL+G找到时钟,将12000000改为8000000;

STM32F103C8T6与ESP8266构建通信(二)_第9张图片

然后再点开我们的魔法棒,将晶振频率12.0M改为8.0M

STM32F103C8T6与ESP8266构建通信(二)_第10张图片

 到此为止,我们就完成了更改频率这一步

使用我们的ST-LINK将代码烧录进单片机,具体可以参考我的上一篇博客,点开我的个人主页即可

当一切准备妥当之后,这就是我们的串口助手所给我们展示的。

STM32F103C8T6与ESP8266构建通信(二)_第11张图片

最终代码展示

大家可以下载下来参考一下。

stm32与esp8266上传的数据到ONENET代码展示-智能家居文档类资源-CSDN文库

从网站上监视数据

大家可以点开这个控制台,点击下面的切换旧版

STM32F103C8T6与ESP8266构建通信(二)_第12张图片

 STM32F103C8T6与ESP8266构建通信(二)_第13张图片

 在这里,我们可以看见我们创建出来的产品

STM32F103C8T6与ESP8266构建通信(二)_第14张图片

 点开其中一个产品,我们点击设备列表

STM32F103C8T6与ESP8266构建通信(二)_第15张图片

 我们的产品是在线的,再点击数据流

STM32F103C8T6与ESP8266构建通信(二)_第16张图片

 我们就可以看到我们的参数了

STM32F103C8T6与ESP8266构建通信(二)_第17张图片

只不过这里我用每隔13秒左右让温度和湿度实现一次自加,来替代DHT11采集到的数据。

你可能感兴趣的:(stm32,物联网)