本帖最后由 wx不过六级不改网名 于 2023-4-27 17:10 编辑
一、本文介绍 ESP8266是上海乐鑫信息科技设计的低功耗WiFi芯片,集成完整的TCP/IP协议栈和MCU。而ESP8266模块是深圳安信可公司基于ESP8266芯片研发(增加必要外围电路、串口flash、板载天线等)的串口WiFi模块,成本低、使用简便、功能强大。 本文使用了LPC55S69_EVK开发板连接ESP8266模块,本次使用ENV工具,对于RT-Thread以及底层的外设进行了配置,并且使用了AT的软件包,开发比较容易,调试代码比较简单,本次重点介绍AT组件的移植方法,以及一些重要的使用功能。 二、硬件搭建
按照原理图的引脚号,把模块连接到LPC55S69_EVK开发板上,ESP8266模块和LPC55S69_EVK开发板IO接口与功能之间的对应关系表如下: LPC55S69_EVK引脚 | | | | | | | | | | | 外部Reset信号,低电平复位,高电平工作(默认高) | | | | | | | | | 悬空:FlashBoot,工作模式;下拉:UARTDownload,下载模式 | | | 1.开机上电时必须为高电平,禁止硬件下拉2.内部默认已拉高 | | | | AT Client功能 AT Client 功能主要用于完成 AT 命令的数据收发和解析过程。这里我们使用LPC55S69_EVK开发板串口作为ATClient连接esp8266模块的发送和接收引脚,esp8266的串口作为AT Server。
1.进入\rt-thread\bsp\lpc55sxx\lpc55s69_nxp_evk 目录,右键鼠标,打开RT-Thread命令行配置工具,输入menuconfig 进入配置界面: 2.开启 AT Client 功能:找到RT-Thread Components --->Network ---> AT commands --> 开启 AT DEBUG,开启 AT Client 支持,目前 AT Client 支持多连接功能,后面需要手动初始化AT Client。
3.RT-Thread的配置选项介绍详见官网,此处不进行详细介绍。退回到主页面后,sons编译,打开mdk5软件编译
4.烧写程序到开发板上后,可以看到 RT-Thread 系统启动日志。 AT Scoket功能下面主要介绍 Env 中配置 AT Socket 功能的整个流程: 1. 进入\rt-thread\bsp\lpc55sxx\lpc55s69_nxp_evk目录,右键鼠标,打开RT-Thread命令行配置工具, 输入menuconfig 进入配置界面。 2. 开启 AT Device 软件包,使用 最新版本,需要配置使用的AT 模块型号(ESP8266)和 AT Client 设备名称: RT-Thread online packages---> IoT - internet of things ---> AT Device配置开启 AT DEVICE 软件包支持;
3. 配置完成,保存并退出配置选项,输入命令scons --target=mdk5 生成 keil 工程。 4. 打开MDK 工程,编译、下载代码到开发板中。 5. 打开 PC 上串口工具 xshell,配置打开串口(配置串口参数为115200-8-1-N、无流控),然后按下复位后就可以在串口 1 连接的终端上看到 RT-Thread 系统启动日志,并可以看到 AT Client 的启动日志、SAL的启动日志且设备自动连接网络成功,说明 AT Socket 功能初始化成功。 网络连接测试 AT Socket 功能提供 ping或者ifconfig命令用于测试设备网络连接环境,,ping 命令原理是通过 AT 命令发送请求到服务器,服务器响应数据,客户端解析 ping数据并显示。ifconfig 命令可以查看当前设备网络状态和 AT 设备生成的网卡基本信息。如下图所示,设备网络连接成功之后,执行网络测试命令: MQTT组件测试1. 进入\rt-thread\bsp\lpc55sxx\lpc55s69_nxp_evk目录,右键鼠标,打开RT-Thread命令行配置工具, 输入menuconfig 进入配置界面。 2.具体配置方式:RT-Thread online packages ---> IOT - internet of things---> 开启 paho MQTT 组件包,配置开启 MQTT 示例代码。 3.配置完成,保存并退出配置选项,scons 重新生成工程,编译下载代码到开发板中。 4.打开串口工具,系统启动成功,输入 mqtt_start命令启动 MQTT 协议,启动完成之后输入 mqtt_publishmqtt_test_data 命令,用于向固定的 MQTT Topic 发送数据,同时 MQTT 服务器会立刻向该 Topic 发送同样数据,MQTT示例测试完成,如下图所示 三、问题解决以及记录移植AT Client问题 1.编译的时候会出现报错信息,提示缺少at_device.h文件 解决措施 1.多次尝试使用pkgs --upgrade,对软件包升级之后,重新编译,问题没有解决, 2.进入menuconfig,对于界面进行重新的选择,关闭所有的socket选项,并且使用git pull命令,对于本地的仓库进行了更新。本月RT-Thread5.0.0版本已经发布。进行了这些操作之后,可以正常的进行了编译,烧录程序。 移植AT Scoket问题
关于WIFI模组的串口2的使用,在配置的时候,使用了这Flexcomm2作为了串口2,此处串口2名称为UART2,因此在对于ESP8266的配置的时候,使用了UART2的名称,导致串口2的client失败。 解决措施 1.打开MDK的工程,,在Edit下面,选择Find in Files ,全局搜索,发现此处,在代码里面使用,是uart2。 2.RT-Thread online packages---> IoT - internet of things ---> AT Device重新配置 AT DEVICE 软件包支持。 3.log显示总是为连接超时,对串口2测试发送AT指令正常。 4.排查硬件连接,模块不能正常工作,尝试把esp8266模块的CH-PD引脚拉高,模块能够正常工作。但是RT-Thread的运行日志会提示到某一条AT指令不支持。原因是ESP8266的固件版本很低,需要重新升级到最新固件。
5.ESP固件升级方法,将ESP8266模块与串口TTL相接,CH-PD引脚拉高,GPIO0引脚接地,模块使用3.3V供电。升级工具附件:
flash_download_tool_3.9.4_0.zip
(16.03 MB, 下载次数: 0)
固件附件:
标准固件.rar
(747.53 KB, 下载次数: 0)
移植MQTT测试出现问题 1.编译代码出现报错,整个工程搜索AIGN(4),没有其他地方定义。
2.烧录代码进入设备,开始MQTT的测试,会出现MQTT的服务器连接失败,原因是,RTT开发人员开发的时候,MQTT的服务器与本地不一致,修改成实际应用的服务器地址即可。
|