您好!
本人使用AT组件与ESP8266通信,ESP8266支持AT和MQTT固件,8266需要作为服务器与手机APP交互,同时通过MQTT连接到公共云。
已经通过AT命令测试了8266的固件,它的固件太多,很多AT命令也不统一,AT SCOKET里的有些指令就不支持,目前的固件能够实现我上面的功能。但是看了AT组件的资料后,大致了解到,直接使用AT Client可以直接与8266交互,这种方式类似于串口终端直接发送AT命令;还有一种方式是使用AT SCOKET的方式。没有使用过,所以不清楚应该怎么选择。
请问:
1、使用哪种方式更好?
2、由于固件不支持标准的AT命令,使用AT SCOKET可能会有问题,据说AT SCOKET 不支持作为TCP服务器,是否是这样的?
3、有没有两种方式的应用笔记或详细的例程,能够尽快了解其使用过程,开发出应用程序。
谢谢!
问题1和问题2:TA组件目前还不支持作为服务器端,只支持作为客户端使用,具体的可以查看 at_socket.h 中的函数定义,如下图,里面至定义了bind,没有listen、accept的实现。作为客户端的使用还是非常方便的,抽象了套接字抽象层,网卡层和网络接口层,可以直接用socket编程来进行通信。
问题3:AT组件源码分析可以查看文章 https://club.rt-thread.org/ask/article/3394.html
使用示例可以查看官方的demo 分布式温度监控系统
rt-thread/components/net/at/at_socket/at_socket.h
@crystal266 谢谢您。项目有个需求就是通过微信进行一键配网,然后工作在AP模式,手机作为客户端连接AP。这个需求是否只能用AT Client;对于连接外网公共云,MQTT,作为客户端,使用AT SCOKET会更方便。我的理解是否正确。
@huajiankang 配网可以参考这个试试 https://club.rt-thread.org/ask/question/424981.html。或者说自己编写AT控制指令使模组进入配网模式,控制指令可以参考 ESP8266 AT指令 手机配网失败经历和解决过程,或者试试 airkiss。
只单独的测试过配网的功能,还没在RTT中使用过
收到,谢谢,我先看看参考资料。有问题再向您请教。
@huajiankang 共同学习