继上次的OLED显示开发之后,觉得RTT的平台挺好玩的,图形化配置,容易上手,这次在上次OLED显示的基础之上,增加ESP8266获取网络时间,同步网络时间并利用模拟RTC模块,做一个精巧的小时钟,ART-PI核心板板载有WIFI模组的,AP6212A ,wifi,蓝牙一体的模块,后面会开发板载模块,童鞋们搬好小板凳就可以啦,嘿嘿!
1、ESP8266与ART-PI连接图
我这里用到的是ART-PI的UART2串口,即是24(UART2-TX)引脚和26引脚(UART2-RX),杜邦线略显凌乱,哈哈
ART-PI | ESP8266 |
VCC3.3 | VCC |
PA2(UART2-TX) | RXD |
PA3(UART2-RX) | TXD |
GND | GND |
2、硬件平台很简单,搭建OK之后,下面就开始我们的RTT-Studio的探索之旅啦,伙伴们只需搬好小板凳,配置这种糙活累活交给小飞哥就OK啦。
老规矩,没有枪没有炮,RTT给我们造,感谢RTT模块贡献者们,我们只需要在软件包里面找到at device模块,添加进我们的工程就OK了,然后double click就进入详细配置界面,选择乐鑫ESP8266模块,wifi ssid、wifi密码栏目填入伙伴们自己的wifi账户密码,串口可以根据自己的选择设置,小飞哥这里使用的是UART2,接收缓存尽可能设置大一点,不要太小,否则可能会报一些缓存溢出错误。
设置完了之后,有手都会的CTRL S保存,稍等一会之后,就可以看到我们的工程里面已经添加了at device的软件包咯
3、接下来,需要对一些硬件资源进行配置,主要是我们用到的串口,在uart_config.h文件中我们添加红色方框所示代码,然后我们可以看到很多串口的定义,定义了#define BSP_USING_UART2,关于UART2的一些资源就可以调用了,IO口根据自己选用的IO定义就可以啦
然后,CTRL B,不出意外的话,应该是无errors的,嘿嘿
4、然后看打印信息,出现了一个错误,也很直白了,是关于DNS的错误,这涉及到ESP8366的固件版本,小飞哥的模块已经尘封了几年了,固件版本是老古董了,也懒得省级啦,大家如果固件比较新的话,就不会出现这个问题,如果有伙伴跟我的一样是老古董,可以自行升级固件,或者像我一样取巧(懒),屏蔽以下代码就可以啦。
然后一顿操作猛如虎,就OK啦,连接成功啦,坐下,基操基操。
然后,输入ifconfig命令,看一下我们的网卡配置
然后,来吧,推开网络的大门吧,ping百度,可以看到数据完全无问题咯
5、然后,添加netutils工具软件包,netutils软件包中汇集了RT-Thread可用的全部网络小工具集合,包括NTP工具,方法同其他工具包一样咯,然后配置默认就可以啦。
同时,开启软件模拟RTC功能,用于我们时间同步之后的本地计时,保存之后,工程已经添加进来了软件包。
6、编译下载完成之后没可以看到,我们已经添加进来了NTP工具啦,输入ntp_sync命令,时间同步成功,输入date,可以看到当前时间啦。
7、接下来,我们添加固件初始化自动对时,这段代码加在main函数里面
然后在上次的OLED_Display函数中,添加显示时间代码
8、编译完成之后,下载固件,然后输入oled_display,就可以看到我们的精美的时钟啦,哈哈