"ESP8266WiFi.h" 和 AT 命令有什么区别?

What is the difference between "ESP8266WiFi.h" and AT Commands?

我很困惑,有些人使用ESP8266WiFi.h library而有些人使用AT命令 用于将 WiFi 模块连接到 Arduino。

它们的工作原理是否相同?

是否有任何问题,或者库是否用于某些不同目的而 AT 命令用于其他目的?

这是一个很好的问题。从很多代码和很多人的问题来看,这绝对不是显而易见的post。

ESP8266刚出来的时候,只是用来给其他个处理器连接Wifi的。它发布了 运行ning 软件,提供 TCP/IP 和 Wifi 支持。您可以将它连接到 Arduino 或其他处理器并使用 AT 命令控制它。但是您不会更改 ESP8266 本身上 运行 的软件。

许多人仍然以这种方式使用它,但事实证明,ESP8266 与使用它连接 Wifi 的某些处理器一样(或更强大)。因此,开发人员将用于在 ESP8266 本身上 运行 构建软件的工具链放在一起。他们甚至移植了 Arduino SDK,这样您就可以在上面 运行 "Arduino" 程序(即使它不是 Arduino)。

ESP8266Wifi.h 是一个头文件,用于为 运行 on ESP8266 构建的软件,如与在 Arduino 或其他 使用 ESP8266 连接 Wifi 的处理器上 运行 构建的软件相反。当您直接在 ESP8266 上为 运行 构建软件时,它会替换实现 AT 命令的软件 - 尽管您可以稍后根据需要重新安装它。

因此,当您看到一个项目使用 ESP8266.h 时,它意味着直接在 ESP8266 上构建并 运行。当您看到一个项目使用 AT 命令时,它意味着 运行 在使用 ESP8266 进行通信的第二个处理器(很可能是 Arduino)上。

还有像 https://github.com/itead/ITEADLIB_Arduino_WeeESP8266 这样的库可以帮助 Arduino 与 ESP8266 对话——它们隐藏了 AT 命令并提供了一组简单的函数调用来完成 AT 命令的功能。 Arduino 上的这个 运行s,仍然使用 AT 命令,但程序员不必担心它们。

ESP8266 本身也有其他语言,如 LUA 和 Python 运行。同样,这些取代了它最初附带的 AT 软件。