当前位置:   article > 正文

ESP8266与STM32的APP远程开关_stm32 手机app和esp8266

stm32 手机app和esp8266
  1. 理解:手机开启热点,电脑和esp8266一起连接热点,电脑与云端一块,esp8266与下位机一块,那么手机的作用就有两个,一个是联系云端和下位机,另外一个就是作为人为操作端,给云端发送指令,再由云端发送到下位机从而控制下位机。
  2. 使用到的硬件:

ESP8266-01S、USB扩展器、ST-Link/V2、USB转TTL模块、STM32F103C8T6、sg90舵机。

  1. 烧录ESP8266固件

固件即固化的软件,在百度百科中,固件是担任着一个系统最基础最底层工作的软件,是指设备内部保存的设备“驱动程序”,通过固件,设备才能执行特定的操作。

而对于ESP8266,如果想要使用MQTT协议进行通信,就需要给ESP8266烧录AT固件。可以到安信可官网下载:欢迎 | 安信可科技

Wifi模组系列——esp8266系列——各类AT固件——选择MQTT透传AT固件,如下图

通过esp8266-01s的引脚说明,烧录固件时esp8266的引脚连接为:3.3V引脚连接电源,EN高电平使能,RX与转串口模块的TXD短接,TX与转串口模块的RXD连接,IO0置低电平,GND接地,具体连接以实际模块引脚为准,灵活处理。详细引脚图如下:

  1. 在安信可官网下载烧录WIFI固件工具:ESP_DOWNLOAD_TOOL用于烧录前面下载的AT固件。
  2. 在安信可下载串口调试助手,或者使用XCOM2.0或者其他串口助手,有什么现成的串口助手不用下载的,能用就行。
  3. 用前面下载好的烧录工具开始烧录,如下图:

先ERASE擦除,在start开始烧录,显示等待上电同步需要拔掉esp8266上面的VCC引脚线重新插上,手动上电。

  1. 烧录完成后EN和IO0引脚就没用了,去除掉,就进入了正常通信接线方式。现在是转串口模块直接连接esp8266.
  2. 配置阿里云产品,进入阿里云,物联网平台,公共实例,设备管理,产品,创建产品,自定义产品名称,选择自定义品类,直连设备,wifi连网,alink json数据格式,弱校验,设备密钥认证方式。
  3. 配置阿里云设备,在设备管理界面选择设备,设备所属产品选择前面自定义的产品,接着就可以自定义设备名称。这里的设备就是esp8266。
  4. 在串口助手发送AT若返回OK则固件烧录正常。接着需要发送AT指令,

AT+RST 复位

AT+CWMODE=1 设备选择STA模式      如果是2就是AP模式,STA模式是每一个连接到无线网络中的终端,AP模式是网络的中心节点,不是终端。

AT+CIPSNTPCFG=1,8,"ntp1.aliyun.com"  设备连接阿里云平台

AT+CWJAP="热点名称","热点密码"  设备连接热点,另外esp8266支持2.4Ghz频段,需要把热点设置到这个频段才能被esp8266找到

AT+MQTTUSERCFG=0,1,"NULL","username","password",0,0,""  填写设备信息中MQTT连接参数中的用户名和密码

AT+MQTTCLIENTID=0,"填写clientid"  MQTT参数中clienid在每个逗号前加分隔符

AT+MQTTCONN=0,"填写mqttHostUrl",1883,1 在mqtt参数中hosturl复制,每次打开mqtt参数都会发生改变,并且连上一次后再继续连就会发生错误

上述指令在串口助手中发送,全部发送ok后看阿里云上的设备在线就连接完成,在设备中创建topic,进行下面的信息传输指令。

AT+MQTTSUB=0,"/username/设备名称/user/get",1  订阅云上的信息,从设备的topic中获取

AT+MQTTPUB=0,"/username/设备名称/user/update","从设备发上云的信息",1,0

以上指令都是在串口助手中进行,当指令在串口助手中没有问题,就可以上网(野火、普中、正点原子)查找类似代码考虑进行修改,这里要下载的就是转串口的例程进行修改,用STM32模拟串口助手发送指令给ESP8266使其上云,另外串口助手和例程代码都记得改波特率为115200。

现在连接关系已经转移为stm32与esp8266的连接,接线为PA9与RX短接,PA10与TX短接,3.3V电源和GND分别短接。接好之后我们看不到STM32和esp8266之间实际传输情况,因此可以再根据需求让转串口模块的发送接收引脚分别和stm32和esp8266的发送或者接收引脚短接,实现对stm32和esp8266之间传输的监控。在用转串口模块进行监视的时候,可能会出现显示乱码的情况,可以使用面包板,绘制PCB或者其他飞线的方式分别尝试,找出没问题的引脚连接方式都可行。

指令转移到keil后在串口助手中监视常常会出现error,但只要云平台日志能看到正常工作就没有关系。

完成stm32与云平台的连接之后,就需要下载PWM控制舵机的例程,通过两个舵机在接收云平台不同指令的情况下转动不同的角度实现开关的操控。

以上就是该产品中对下位机设备的控制,下面添加上位机设备,上位机设备即APP。要用APP控制下位机,需要配置云产品流转。

云产品流转:

  1. 规则引擎,云产品流转

从上位机到下位机:

  1. 创建解析器,解析器名称up-to-down,(解析器实现上位机发送数据给下位机),创建数据源,数据源名称fromup,(数据来自上位机),关联数据源fromup,查看数据源,添加topic,填入产品名称,上位机设备名称,选择user/update。
  2. 数据目的,创建数据目的,数据目的名称,todown(发送数据给下位机),发布到另一个topic(实现流转,前面都是为这里准备的),选择填入本产品,关联数据目的todown。
  3. 解析器脚本

//通过 payload 函数,获取设备上报的消息内容,并按照 JSON 格式转换。

var data = payload("json");

//直接流转物模型上报数据。

writeIotTopic(ID,"/ProductKey/DeviceName/user/get",data)现在物联网平台的解析器脚本打开自动已经有这个例子代码,跟着修改就行,ID是数据目的ID,同为解析器ID。点击发布

从下位机到上位机

  1. 创建解析器,解析器名称down-to-up,(解析器实现下位机发送数据给上位机),创建数据源,数据源名称fromdown,(数据来自下位机),关联数据源fromdown,查看数据源,添加topic,填入产品名称,下位机设备名称,选择user/update。
  2. 数据目的,创建数据目的,数据目的名称,toup(发送数据给上位机),发布到另一个topic(实现流转,前面都是为这里准备的),选择填入本产品,关联数据目的toup。
  3. 解析器脚本

//通过 payload 函数,获取设备上报的消息内容,并按照 JSON 格式转换。

var data = payload("json");

//直接流转物模型上报数据。

writeIotTopic(ID,"/ProductKey/DeviceName/user/get",data)现在物联网平台的解析器脚本打开自动已经有这个例子代码,跟着修改就行,ID是数据目的ID,同为解析器ID。点击发布

这样就分别给上位机和下位机设备添加的数据来源,只要APP中填入三元组,即产品ID的productkey、设备名称devicename、设备密钥devicesecret就可以实现APP连接阿里云作为上位机,也就让手机成为了云产品流转中的上位机,通过上位机手机APP就可以直接发送指令给云平台上的下位机设备ESP8266,通过云端的esp8266连接实际的esp8266,因实际的esp8266与STM32已经实现了串口通信,就可以通过esp8266通过串口发送指令控制stm32,最终实现舵机的控制。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/一键难忘520/article/detail/806650
推荐阅读
相关标签
  

闽ICP备14008679号