ESP8266与STM32的APP远程开关

本文介绍了如何通过手机热点连接ESP8266,烧录MQTTAT固件,配置阿里云物联网平台,并实现ESP8266与STM32的串口通信以控制舵机,展示了上位机APP如何作为云产品流转中的控制器。
摘要由CSDN通过智能技术生成
  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,最终实现舵机的控制。

  • 39
    点赞
  • 54
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: ESP8266 是一种常用的 WiFi 模块,STM32 是一种微控制器。要连接手机 APP,通常需要在 ESP8266 上运行一个服务器程序,并在 STM32 上运行一个客户端程序。客户端程序和服务器程序之间通过 WiFi 通信,并且手机 APP 与服务器程序之间通过网络连接。 需要注意的是,这种连接方式需要你对网络编程和通信协议有一定了解。 ### 回答2: ESP8266STM32是两款常用的单片机,它们的连接可以实现很多功能。其中,连接手机APP是很常见的应用,可以让用户通过APP控制ESP8266STM32,实现远程控制、数据采集等功能。 连接ESP8266STM32需要使用串口通信,因为ESP8266STM32都有串口接口。首先需要定义好通信协议,即ESP8266STM32之间如何交互和传输信息。可以使用简单的命令字符串来实现控制,如发送“LED ON”可以控制LED灯的开启。同时,也需要在APP中定义好与ESP8266STM32通信的协议和格式。 ESP8266STM32的连接方式有很多种,可以通过WiFi连接,也可以通过蓝牙连接。其中,WiFi连接和蓝牙连接都有各自的优缺点。WiFi连接能够实现更长的传输距离和更大的带宽,但是需要连接到WiFi网络,可能存在网络不稳定的问题,同时也需要对网络安全进行保护。而蓝牙连接则适合于近距离传输,具有更低的功耗和更简单的连接方式,但是传输距离有限。 在连接ESP8266STM32之前,也需要下载相应的驱动和库文件,并对ESP8266STM32进行相应的配置。同时,还需要对APP进行相应的开发,包括界面设计、协议定义、UI逻辑等方面的开发。 总之,将ESP8266STM32连接到手机APP可以实现很多有趣的功能。但是需要对硬件、软件进行相应的配置和开发,才能实现连接与控制。同时,也需要注意网络安全和数据传输的保护,确保用户数据的安全性。 ### 回答3: ESP8266是一款非常流行的Wi-Fi芯片,而STM32则是一款非常强大的单片机。将ESP8266STM32相结合,可以实现无线模块和单片机的连接。同时,连接手机APP,也可以实现无线控制。 实现ESP8266STM32的连接,可以采用UART串口通信的方式。具体步骤如下: 1.首先,在STM32上选择一路UART口,用来和ESP8266模块通信。 2.将ESP8266连接到STM32的UART口,并且将ESP8266的波特率设置为STM32选定的波特率。然后,可以使用AT指令进行通信。 3.在STM32开发板上,编写代码,实现与ESP8266的通信。可以通过发送AT指令,来控制ESP8266模块的功能。 4.开发手机APP,并与ESP8266模块进行连接。使用手机APP,可以发送指令到ESP8266,然后ESP8266通过串口将指令发送给STM32,实现控制。 需要注意的是,ESP8266的功耗较低,需要电源的供给。同时,使用ESP8266时需要注意其版本,一些较早的版本可能无法实现和STM32的正常通信。 在实现ESP8266STM32连接手机APP的过程中,除了硬件连接以外,还需要编写软件程序实现控制。需要掌握一些编程语言的知识,例如C语言、AT指令等等。因此,对于初学者而言,可能需要一些时间和精力来学习这些知识。不过,只要掌握了基本知识,就能够比较容易地实现ESP8266STM32连接手机APP控制
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值