RT-Thread&BearPi 开发笔记 -- 小熊派基于RT-Thread使用ESP8266进行网络连接

小熊派基于RT-Thread使用ESP8266进行网络连接

物联网的概念和应用场景,最关键最必不可少的一个环节,就是联网。可以说,如果没有可靠的网络连接功能,那这个设备还不算是一个合格的物联网设备。

设备没有接入网络,就像被孤立的个体一样,只能孤独地低头做事,因此,物联网设备,首先要解决的就是网络接入问题。

无线WiFi是一种十分常用的网络连接方式,小熊派开发套件提供了一个ESP8266无线WiFi模块,用于开发板进行网络连接。ESP8266模块通过串口跟小熊派主板进行物理连接,主板通过AT指令对模块进行控制。

基于RT-Thread的小熊派BSP包链接:https://gitee.com/embediot/bearpi_rt-thread

小熊派在出厂的时候,默认是使用HUAWEI LiteOS的,为了在小熊派上使用RT-Thread,需要为其制作RT-Thread的BSP包,具体可参考以下链接:RT-Thread&BearPi 开发笔记 -- 为小熊派开发板制作 RT-Thread BSP 包

目前BSP包的功能模块还在不断完善中,以下是为BSP包添加AT组件并实现ESP8266 WiFi联网的具体操作过程,思维导图如下图所示。

 

使用STM32CubeMX配置芯片外设

小熊派主芯片是通过低功耗串口LPUART1跟ESP8266模块进行连接的,从原理图上看,LPUART1分别是PC0和PC1引脚,在使用低功耗串口之前,要先对LPUART1进行初始化工作。

对于BSP包里面没有添加的芯片外设,如果开发者需要把外设设备添加到BSP包里面,则需要先使用STM32CubeMX对其初始化参数进行配置,关于STM32系列外设驱动添加指南,RT-Thread提供了一份比较详细的参考文档,链接如下所示

STM32 系列外设驱动添加指南

小熊派的STM32CubeMX配置文件在bearpi_rt-thread\BSP\board\CubeMX_Config目录下,对于低功耗串口LPUART1,使用STM32CubeMX的配置参数,如下图所示。

该项配置主要在stm32l4xx_hal_msp.c里面,修改HAL_UART_MspInit()函数,在该函数里面添加低功耗串口的初始化,如下图所示。

 

修改Kconfig文件

要使用menuconfig管理STM32芯片的外设设备,需要修改Kconfig文件,上面的操作只是对LPUART1进行初始化,但还没有把LPUART1这个芯片外设放到menuconfig进行管理,我们需要对bearpi_rt-thread\BSP\board\Kconfig文件进行修改。

在Kconfig文件里面,添加LPUART1和ESP8266的配置项,添加后如下图所示,完整的内容,请查看Kconfig文件。

修改完成后,就可以对LPUART1和ESP8266进行配置,以上配置,主要是使能了宏定义BSP_USING_LPUART1以及使能AT_Client设备和ESP8266模块,BSP_USING_LPUART1这个宏定义在drv_usart.c文件里面使用,是让系统对低功耗串口进行配置的,如下图所示。

menuconfig修改配置单

在ENV命令行终端下,使用menuconfig命令打开工程的配置单,在芯片外设配置路径下,选择Enable LPUART1进行配置,如下图所示。

因为ESP8266是使用RT-Thread提供的AT组件进行管理的,因此,需要使能AT组件相关的选项,AT组件的配置路径以及配置选项,如下图所示。

1、使能AT命令。

2、使能AT命令的客户端模式、设置最大的客户端数量为1、使能标准的BSD Socket函数接口、使能AT指令的命令行模式。

3、设置AT指令的缓冲区大小为512字节。

因为需要使用标准的BSD Socket函数接口,所以,需要使能SAL组件,该组件提供了AT Socket接口的抽象,实现了标准的BSD Socket接口函数,如下图所示。

由于AT组件支持很多AT指令设备,因此,要在配置单里面开启ESP8266设备支持,配置路径是:RT-Thread online packages ---> IoT - internet of things ---> AT Device,如下图所示。

1、使能ESP8266模块。

2、设置wifi的账号和密码。

3、设置AT指令的通信串口和串口接收缓冲区的长度。

以上配置完成后,保存并退出配置菜单,在ENV命令行终端,输入scons –target=mdk5生成MDK工程,打开工程后,可以看到AT相关的组件和ESP8266模块相关的代码已经添加到工程里面,如下图所示。

测试开发板的联网情况

编译工程,并下载到小熊派开发板上运行,打开串口交互终端,准备对应的WiFi热点信号,运行应用程序,在串口交互终端可以看到AT组件初始化成功,ESP8266模块初始化成功,如下图所示。

上图提示执行“AT+CIPDNS_CUR?”命令失败,主要是ESP8266模块的出厂固件比较旧,更新模块固件即可解决该问题,更新方法在这里不再论述。

可以在ENV命令行终端,使用AT命令或netdev命令进行联网测试,使用AT命令测试的话,需要先输入“at client”让终端进入AT命令行模式;

如果要使用netdev命令测试,可以直接在命令行输入ping或ifconfig等网络指令,如下图所示。

 

 

猜你喜欢

转载自blog.csdn.net/wenjs0620/article/details/113112015
今日推荐