前言
本期,我们使用到的主角是瑞萨DA16200 Wi-Fi模块,只需要UART发送AT指令,就可以让你的项目连接范围从手机进一步扩展到互联网。
Bluetooth LE和Wi-Fi都可以为嵌入式设备提供无线连接,但两者的使用重点并不相同。Bluetooth LE更关注近距离、低功耗的设备连接;Wi-Fi则可以让设备接入无线路由器或手机热点,并在获得IP地址后使用TCP、UDP、HTTP、MQTT等网络协议与其他设备或云端通信。
DA16200是一颗面向低功耗Wi-Fi应用的无线SoC,内部已经集成Wi-Fi和TCP/IP网络协议相关功能,使用2.4GHz Wi-Fi。在本文采用的Hosted模式下,单片机(RA4M2)仍然负责运行用户程序,DA16200负责扫描热点、加入网络和处理网络通信,两者通过UART和AT指令交互。
本文使用RA4M2+DA16200模块完成如下联网链路:
UART通信 → AT应答 → 扫描热点 → 加入热点 → 获取IP地址 → Ping公网地址
当这条链路验证通过后,就能为后续的TCP、UDP、HTTP和MQTT开发提供可靠的基础。
Part 01 硬件与软件
本次主控板仍然使用RA-Eco-RA4M2 V2.0来演示:

RA-Eco-RA4M2 V2.0

Wi-Fi模块使用瑞萨DA16200 Wi-Fi模块:


DA16200 Wi-Fi模块
开发软件选择瑞萨FSP6.5。
模块板上预留了纽扣电池座,方便独立供电使用。本次模块由PMOD接口供电,因此不需要安装电池。
Part 02 硬件连接与引脚配置
硬件连接上,DA16200直接插入RA-Eco-RA4M2 V2.0的PMOD2接口即可,引脚情况如下:

点击可查看大图
P608配置为普通GPIO输出,用于控制DA16200的RESET引脚。RESET为低电平有效,模块正常运行时必须保持高电平。更稳妥的启动方法:可以先输出低电平完成一次硬件复位,短暂延时后再拉高,等待模块启动完成。
Part 03 时钟与UART配置
这块开发板的板载晶振为12MHz,与工程默认的24MHz不同,因此需要先修改时钟配置

点击可查看大图
这里我们把系统时钟换成了HOCO,调试不容易出问题。
拉高P608:

点击可查看大图
在stack中添加UART(r_sci_uart)模块,修改:
RXD0:P410;
TXD0:P411;
回调函数:wifi_uart_callback;
波特率:115200;
配置完成后单击“Generate Project Content”生成代码。
Part 04 UART和AT指令
DA16200模块已经烧录了支持AT指令的固件,因此RA4M2只需要通过UART发送指令,就可以控制模块完成联网操作:
AT指令的基本概念、UART发送函数和回调事件已经在中介绍过。本次仍然使用相同的基本方法:
清空接收缓冲区;
通过`R_SCI_UART_Write()`发送一条以`\r\n`结尾的AT指令;
在UART回调函数中逐字节接收模块返回的数据;
等待发送完成和模块响应;
在超时时间内查找`OK`、`ERROR`或命令对应的特征字符串;
记录执行结果,供主程序和调试器查看。
与只判断有没有收到数据相比,检查明确的成功标志更可靠。例如,扫描热点时应检查扫描结果和`OK`,加入热点时应检查连接成功响应,Ping测试时则应比较发送包数和接收包数。
Part 05 发送AT指令
本次程序按照以下顺序执行:

点击可查看大图
完成UART和程序框架后,接下来只需要按照固定顺序向DA16200发送几条AT指令,即可完成从模块识别到接入互联网的全过程。
程序启动后,首先发送`AT`。收到`OK`说明模块供电、复位和UART通信均已正常,可以继续执行Wi-Fi相关指令。
随后使用`AT+WFSCAN`扫描周围热点。DA16200会返回热点名称、信号强度和安全类型等信息。扫描成功后,程序从结果中确认目标热点是否存在。
找到目标热点后,程序先通过`AT+WFQAP`退出可能存在的旧连接,再使用下面的指令连接新的热点:AT+WFJAPA=<SSID>,<PASSWORD>。
举个“栗子”
这里拿作者使用的手机热点举例,本人手机热点的名字是iPhone,SSID就是iPhone,PASSWORD就是我的热点密码,注意打开手机热点的最大兼容性选项。
发送入网指令后,DA16200就会连接热点并通过DHCP自动获取IP地址。程序确认已经获得IP地址后,就可以认为热点连接成功。
最后发送:
AT+NWPING=0,8.8.8.8,4
该指令直接Ping公网IP地址,可以避开域名解析因素,快速判断模块是否真正具备互联网访问能力。本次测试成功发送并接收了4个数据包,说明下面这条链路已经完整打通:
RA4M2 → UART → DA16200 → Wi-Fi热点 → 互联网
在这个过程中,RA4M2主要负责组织和发送AT指令、接收执行结果;Wi-Fi连接、DHCP和Ping等网络功能均由DA16200完成,因此本次入门实践不需要在RA4M2中另外移植网络协议栈。
最终,DA16200成功连接手机热点、获得IP地址,并完成4次Ping测试,说明RA4M2到互联网的基础通信链路已经打通。
(对该工程感兴趣的小伙伴,您可复制链接到浏览器打开下载本文板卡及模块资料)
https://www.ramcu.cn/api/member/dowfilebefore?did=2752
END