首页 论坛 物联网专区 物联网弹幕器,ESP8266 WIFI无线连接方案

正在查看 4 帖子:1-4 (共 4 个帖子)
  • 参与人数:4 |  围观次数:854 
  • LenZ Change
    LenZ Change 瓜农

    物联网弹幕器套件使用的是CH9121,以太网模块,通过绑定IP地址,直接与MQTT服务器进行串口透传,这种方法的坏处在于,MQTT的域名总是需要人手用Window的cmd控制台ping通获取IP地址。而ESP8266建立TCP/UDP连接时,可以直接使用IP地址或者域名。也就是说用下图中的字符串可以直接进行访问

    那么怎么做呢,我们需要一个支持AT固件指令的ESP8266,接法就是

    3.3V->3.3V,GND->GND,TX->RX,RX->TX

    然后输入以下指令

    补充注意:未连接过WIFI节点的ESP8266需要提前连接WIFI,可以直接通过串口透传设置,连接指令是

    AT+CWMODE=3 回车换行

    AT+CWJAP=”ssid(WIFI名)”,”pwd(密码)” 回车换行

    目前v0.9系列版本的ESp8266 AT指令集支持保存WIFI设置的工作,一般只需要设置一次即可。如果是需要放在程序中随时改需要连接的WIFI,记得使用printf函数,注意加 ‘\’符号对引号 ” 进行转义。

    然后经过RUN_MQTT( );调用就能连接到阿里云的MQTT啦!ESP8266实际工作如图

     

    ESP8266透传过程串口接收的数据(十六进制显示),D0 00表示心跳包发送成功。

    ESP8266的AT指令调试有一定的麻烦,比较不能像CH9121那样人手发心跳包的操作进行实验,AT指令连接该MQTT域名时,很容易断连,不立刻进入透传模式发送命令的话就立马出现“CLOSE”,意味着断连,而进入透传模式后AT指令的信息就屏蔽了,’>’只能显示接收的透传数据,你所发送的数据和AT指令信息均不给予回显。而且进入透传模式后,由于屏蔽AT指令,在透传模式下进行AT复位都不可能,但是AT固件提供了解决办法在透传模式下发送‘+++’,并延时一段时间,就会回显“ERROR”,并退出AT透传模式。所以ESP8266只能通过单片机编写程序,对ESP8266接收串口发送AT指令,并在连接MQTT服务器就后,立马RUN_MQTT();否则很难ping通,但ESP8266的无线连接比以太网方式方便多了。文中可能有些讲述不够详细的地方,由于WIFI版的单片机程序是基于原版程序移植到一颗国产cortex-M0上再进行修改的,源程序我就不贴了,方法告诉给你们,你们加油!

    技小新
    技小新 吃瓜群众

    写的非常好!

    流逝
    流逝 吃瓜群众

    来我q2032897425技术交流

    kicker
    kicker 吃瓜群众

    我烧录了安信可官方的固件,支持TCP透传,请问怎么运行RUN_MQTT( ),是要自己重新写固件添加进去吗

正在查看 4 帖子:1-4 (共 4 个帖子)

抱歉,回复话题必需登录。