乐鑫技术交流
直播中

张昂笙

8年用户 1016经验值
私信 关注
[问答]

atmega1824p使用AT命令遇到的疑问求解

我正在使用物联网设备(使用 atmega1824p),并想使用 AT 命令。
它作为客户端工作。.但是,我也希望它用作服务器(例如,当我需要创建/更新 ssid 和密码时)。我正在使用 ISR 取回回复。

以下是流程:
1. initwifi -> 2. setCWMode=3 -> 3. APJoin with SSID and password (set CWDHCP=1,1) -> 4. setMux=1 -> 5. set softAP-> 6. create server (AT+CIPSERVER) -> 7. set IP (e.g. 192.168.4.1)  

流程是否正确?如果我想检查是否已经加入了 Ap(所以我不需要每次都加入 APJoin),在我将 CWHDCP 设置为 3 后,我会查询 getiP(AT CIFSSR)?

对于回复,我正在使用中断 (ISR)。当我知道我在接入点时,我检查 ISR 的“IPD:connect_id,data”,做一个 CIPSEND 来connect_id网页?是否有适当的过程。

我有上述工作。但有时,我在设置 IP 时失败了,有人有什么想法吗?一旦我设置 IP 失败,我似乎无法将 ISR 作为网络服务器接收(我确实检查了 sei())

回帖(1)

杨秀英

2024-7-16 17:53:20
根据您提供的流程,您的目标是使用ATmega1824p作为物联网设备,既可以作为客户端连接到WiFi网络,也可以作为服务器接收其他设备的连接。以下是对您流程的一些建议和解答:

1. initwifi:初始化WiFi模块。
2. setCWMode=3:设置设备为AP(Access Point)模式,允许其他设备连接。
3. APJoin with SSID and password:这一步应该是连接到一个现有的WiFi网络,而不是创建一个新的AP。如果您希望设备作为服务器,您应该使用setSoftAP命令创建一个新的AP。
4. setMux=1:设置多连接模式,允许设备同时作为客户端和服务器。
5. set softAP:创建一个新的AP,允许其他设备连接。
6. create server (AT+CIPSERVER):创建TCP服务器,允许其他设备通过TCP连接。
7. set IP (e.g. 192.168.4.1):设置设备的IP地址。

关于您的问题,如果您想检查设备是否已经加入了AP,您可以使用以下命令:

- AT+CWJAP_CUR:查询当前连接的AP信息。

如果您希望设备在已经连接到AP的情况下不重复连接,您可以在连接之前检查设备是否已经连接到AP。如果已经连接,您可以跳过APJoin步骤。

此外,您还可以考虑以下步骤来优化您的流程:

1. 在初始化WiFi模块后,检查设备是否已经连接到AP(使用AT+CWJAP_CUR)。
2. 如果设备已经连接到AP,跳过APJoin步骤。
3. 如果设备没有连接到AP,执行APJoin步骤,然后继续执行setCWMode、setMux、setSoftAP等步骤。

这样,您的设备就可以根据当前的网络状态自动选择是否需要重新连接到AP,从而提高效率。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分