查看: 3216|回复: 2

[分享] LPC55S69移植AT组件连接ESP8266

[复制链接]
  • TA的每日心情
    郁闷
    2023-4-27 16:11
  • 签到天数: 11 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    6

    主题

    43

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    494
    最后登录
    2025-7-4
    发表于 2023-4-26 23:45:13 | 显示全部楼层 |阅读模式
    本帖最后由 wx不过六级不改网名 于 2023-4-27 17:10 编辑

    一、本文介绍
       ESP8266是上海乐鑫信息科技设计的低功耗WiFi芯片,集成完整的TCP/IP协议栈和MCU。而ESP8266模块是深圳安信可公司基于ESP8266芯片研发(增加必要外围电路、串口flash、板载天线等)的串口WiFi模块,成本低、使用简便、功能强大。
      本文使用了LPC55S69_EVK开发板连接ESP8266模块,本次使用ENV工具,对于RT-Thread以及底层的外设进行了配置,并且使用了AT的软件包,开发比较容易,调试代码比较简单,本次重点介绍AT组件的移植方法,以及一些重要的使用功能。
    二、硬件搭建
      准备好ESP8266模块,在淘宝上有出售,价格因淘宝厂家不同,也会存在差异。淘宝连接https://m.tb.cn/h.UttAeor?tk=pDUhdlboP0b,实物图和引脚的原理与如下图所示。

    屏幕截图 2023-04-26 234930.png

    按照原理图的引脚号,把模块连接到LPC55S69_EVK开发板上,ESP8266模块和LPC55S69_EVK开发板IO接口与功能之间的对应关系表如下:

      
    LPC55S69_EVK引脚
      
    esp8266模块引脚
    说明
    UART2-Rx
    UTXD
    模块的发送引脚
    3.3V供电
    CH-PD
    高电平工作;低电平模块供电关掉
    NC
    GPIO16
    外部Reset信号,低电平复位,高电平工作(默认高)
    3.3V供电
    VCC
    模块供电
    UART2-Tx
    URXD
    模块的接收引脚
    NC
    GPIO0
    悬空:FlashBoot,工作模式;下拉:UARTDownload,下载模式
    NC
    GPIO2
    1.开机上电时必须为高电平,禁止硬件下拉2.内部默认已拉高
    GND
    GND
    模块的接地引脚
    AT Client功能
    AT Client 功能主要用于完成 AT 命令的数据收发和解析过程。这里我们使用LPC55S69_EVK开发板串口作为ATClient连接esp8266模块的发送和接收引脚,esp8266的串口作为AT Server。

    1.进入\rt-thread\bsp\lpc55sxx\lpc55s69_nxp_evk 目录,右键鼠标,打开RT-Thread命令行配置工具,输入menuconfig 进入配置界面:
    98889.png
    2.开启 AT Client 功能:找到RT-Thread Components --->Network ---> AT commands --> 开启 AT DEBUG,开启 AT Client 支持,目前 AT Client 支持多连接功能,后面需要手动初始化AT Client。
    235814z5iz750mio0uxods.png

    3.RT-Thread的配置选项介绍详见官网,此处不进行详细介绍。退回到主页面后,sons编译,打开mdk5软件编译

    6.png

    4.烧写程序到开发板上后,可以看到 RT-Thread 系统启动日志。
    7.png
    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 软件包支持;

    9.png
    3.    配置完成,保存并退出配置选项,输入命令scons --target=mdk5 生成 keil 工程。
    4.    打开MDK 工程,编译、下载代码到开发板中。
    5.    打开 PC 上串口工具 xshell,配置打开串口(配置串口参数为115200-8-1-N、无流控),然后按下复位后就可以在串口 1 连接的终端上看到 RT-Thread 系统启动日志,并可以看到 AT Client 的启动日志、SAL的启动日志且设备自动连接网络成功,说明 AT Socket 功能初始化成功。
    rrr.png 11.png
    网络连接测试
      AT Socket 功能提供 ping或者ifconfig命令用于测试设备网络连接环境,,ping 命令原理是通过 AT 命令发送请求到服务器,服务器响应数据,客户端解析 ping数据并显示。ifconfig 命令可以查看当前设备网络状态和 AT 设备生成的网卡基本信息。如下图所示,设备网络连接成功之后,执行网络测试命令:
    12.png
    MQTT组件测试
    1.    进入\rt-thread\bsp\lpc55sxx\lpc55s69_nxp_evk目录,右键鼠标,打开RT-Thread命令行配置工具, 输入menuconfig 进入配置界面。
    13.png
    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示例测试完成,如下图所示
                                                                             kkkk.png   
    三、问题解决以及记录移植AT Client
    问题
    1.编译的时候会出现报错信息,提示缺少at_device.h文件
    15.png
    解决措施
    1.多次尝试使用pkgs --upgrade,对软件包升级之后,重新编译,问题没有解决,
    2.进入menuconfig,对于界面进行重新的选择,关闭所有的socket选项,并且使用git pull命令,对于本地的仓库进行了更新。本月RT-Thread5.0.0版本已经发布。进行了这些操作之后,可以正常的进行了编译,烧录程序。
    移植AT Scoket问题
    关于WIFI模组的串口2的使用,在配置的时候,使用了这Flexcomm2作为了串口2,此处串口2名称为UART2,因此在对于ESP8266的配置的时候,使用了UART2的名称,导致串口2的client失败。
    企业微信截图_16825263131179.png 17.png
    解决措施
    1.打开MDK的工程,,在Edit下面,选择Find in Files ,全局搜索,发现此处,在代码里面使用,是uart2。
    18.png
    2.RT-Thread online packages---> IoT - internet of things ---> AT Device重新配置 AT DEVICE 软件包支持。
    19.png
    3.log显示总是为连接超时,对串口2测试发送AT指令正常。
    20.png
    4.排查硬件连接,模块不能正常工作,尝试把esp8266模块的CH-PD引脚拉高,模块能够正常工作。但是RT-Thread的运行日志会提示到某一条AT指令不支持。原因是ESP8266的固件版本很低,需要重新升级到最新固件。
    456.png




    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),没有其他地方定义。
    22.png

    2.烧录代码进入设备,开始MQTT的测试,会出现MQTT的服务器连接失败,原因是,RTT开发人员开发的时候,MQTT的服务器与本地不一致,修改成实际应用的服务器地址即可。
    jjjjjjjjjjjjjjjjjjjj8.png 23.png
    闲闲闲
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2025-7-11 08:53
  • 签到天数: 301 天

    连续签到: 2 天

    [LV.8]以坛为家I

    3936

    主题

    7557

    帖子

    0

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    40194
    最后登录
    2025-9-5
    发表于 2023-4-27 09:40:48 | 显示全部楼层
    可以,继续加油,有一张图发现没插到位置上!
    qiandao qiandao
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2023-4-27 16:11
  • 签到天数: 11 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    6

    主题

    43

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    494
    最后登录
    2025-7-4
     楼主| 发表于 2023-4-27 13:42:32 | 显示全部楼层
    NXP管管 发表于 2023-4-27 09:40
    可以,继续加油,有一张图发现没插到位置上!

    OK,最后一张多余的图片已经修改
    闲闲闲
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-9-6 07:50 , Processed in 0.089749 second(s), 22 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表