赞
踩
ESP8266-01S、USB扩展器、ST-Link/V2、USB转TTL模块、STM32F103C8T6、sg90舵机。
固件即固化的软件,在百度百科中,固件是担任着一个系统最基础最底层工作的软件,是指设备内部保存的设备“驱动程序”,通过固件,设备才能执行特定的操作。
而对于ESP8266,如果想要使用MQTT协议进行通信,就需要给ESP8266烧录AT固件。可以到安信可官网下载:欢迎 | 安信可科技
Wifi模组系列——esp8266系列——各类AT固件——选择MQTT透传AT固件,如下图
通过esp8266-01s的引脚说明,烧录固件时esp8266的引脚连接为:3.3V引脚连接电源,EN高电平使能,RX与转串口模块的TXD短接,TX与转串口模块的RXD连接,IO0置低电平,GND接地,具体连接以实际模块引脚为准,灵活处理。详细引脚图如下:
先ERASE擦除,在start开始烧录,显示等待上电同步需要拔掉esp8266上面的VCC引脚线重新插上,手动上电。
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控制下位机,需要配置云产品流转。
云产品流转:
从上位机到下位机:
//通过 payload 函数,获取设备上报的消息内容,并按照 JSON 格式转换。
var data = payload("json");
//直接流转物模型上报数据。
writeIotTopic(ID,"/ProductKey/DeviceName/user/get",data)现在物联网平台的解析器脚本打开自动已经有这个例子代码,跟着修改就行,ID是数据目的ID,同为解析器ID。点击发布
从下位机到上位机
//通过 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,最终实现舵机的控制。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。