潘多拉 RT-Thread ESP8266 模块
实验概述
本实验将使用 ESP8266 模块连接到潘多拉 IoT 开发板上,并通过 RT-Thread 的 AT 组件完成对 ESP8266 AT 命令和数据的收发的,实现 WiFi 连接互联网的功能。
ESP8266 是一款集成 32 位 MCU 的 WiFi 芯片,内置 AT 指令。通过 AT 指令,用户能快速的开发网络应用,而无需关心具体的网络协议栈的内容。
硬件连接
这里以正点原子的 ATK-ESP8266 模块为例进行说明,将 ESP8266 模块连接到开发板左侧的 ATK MODULE 接口,实际通讯接口是 UART 串口,对应单片机的 UART2。原理图和实物图如下所示。
示例代码
参考《潘多拉 IoT Board 开发环境》创建工程,在 applications/main.c 中输入如下代码。
在 RT-Thread 上进行网络编程推荐使用 BSD Socket API,RT-Thread 提供了数量众多的网络软件包,都是用 BSD Socket API 编写的,用户可以利用这些软件包可以快速的完成自己的网络应用开发。RT-Thread 提供的 SAL 组件和 AT 组件可以帮助开发者非常方便的将带有 AT 命令的网络模块对接到 RT-Thread 上来, 所以可以看到 main 函数的应用程序非常简单。
applications/main.c
#include <rtthread.h>
int main(void)
{
extern int netdev_ping(int argc, char **argv);
char *cmd[] = {"esp8266_ping", "www.rt-thread.org"};
while (1) {
if (netdev_ping(2, cmd) == RT_EOK) {
break;
}
else {
rt_thread_mdelay(5000);
}
}
return 0;
}