欢迎光临散文网 会员登陆 & 注册

【安信可开源硬件】小安派Eyes-天气站,酷炫DIY一起来~

2023-06-28 15:49 作者:安信可科技  | 我要投稿

前言

前几天不是刚发布小安派Eyes-S1/S2两款开源的板子,于是就有大佬问了,那两款板子怎么玩?感谢各位大佬的捧场~

小安在这里提示下大家,小安派Eyes是一款带触摸屏+音频+摄像头的一款开发板,最近刚好桌面少了个摆件,小安打算先从最容易也最有意思的屏幕下手,搞一个天气站。

安信可开源硬件:小安派Eyes-天气站


一、功能分析



二、Gui Guider模拟运行结果

小安在这里使用的UI上位机是NXP的GuiGuider软件,官方下载地址:https://www.nxp.com.cn/design/software/development-software/gui-guider:GUI-GUIDER

也可以到本文尾部连接下载资料包,里面有GuiGuider 软件及本次项目的GuiGuider 工程。

成果如下:



三、UI 代码移植

1.文件移植

因为在此之前,我们已经把屏幕和触摸的驱动写好了,并且在LVGL 下测试成功,所以本文不会介绍Lvgl 的移植。Gui Guider 在成功运行之后,才会生成最新的UI代码。需要移植的程序代码如下:

以上连个文件夹复制到工程的UI位置:Ai-Pi_Eeys/demos/240X320_ui。

因为M6X_SDK中的Lvgl没有dclock 时钟组件,所以也要把dclock 移植到SDK当中。dclock的目录如下:M6x_Eyes\lvgl\src\extra\widgets

把整个dclock文件夹复制到:Ai-Pi_Eeys\aithinker_Ai-M6X_SDK\components\graphics\lvgl\extra\widgets目录下。


2.代码修改

1)工程添加UI代码

只需要在CMakeLists.txt 中添加以下内容:

  • 然后在main.c中引用gui_guider.hcustom.h,并定义lv_ui全局变量,且使用setup_ui() 函数进行初始化:

2)HTTPS GET请求及时间获取

  • 然后随手把HTTPS请求天气的逻辑实现一下,大概就是写一个HTTPS的客户端,然后发送请求,时间可以在响应头中获取,Date参数中获取,北京时间只要把小时+8就OK,比如:

  • 天气情况获取,我们这里使用的是天气API的免费未来七天天气接口:http://www.tianqiapi.com/index/doc?version=week
    请求数据如下:

所以天气站最高可以显示未来七天的天气情况,我们只显示未来三天的数据。


3)WiFi 连接功能

天气站使用的屏幕是电容触摸屏,所以可以通过触摸输入WiFi 名称及密码连接WiFi。当我们输入完成后,点击确定按钮即可触发WiFi连接,天气站在连接成功WiFi之后,会保存当前的路由信息,下次重启时可以自动连接这次的WiFi。按钮的点击事件及读取输入的WiFi名称及密码代码:

四、实际运行


哇哦~小安觉得这个花了一天开发出来的天气站单纯从界面还是可以的,它就是少了个美丽的外壳。个人的想法有限,不知道大家有什么好的想法,说不定我们可以帮你实现呢?来“安信可科技”b站官方号留言,告诉小安你们的想法吧~


六、资料

文章原博客链接:https://blog.csdn.net/Boantong_/article/details/131422515

安信可官网docs:https://docs.ai-thinker.com/wifi

M6x-SDK编程指南:https://bouffalolab.github.io/bl_iot_sdk

小安派-Eyes天气站源码(记得看README):https://github.com/Ai-Thinker-Open/Ai-Pi_Eeys/tree/AiPi-Eyes_Weather

小安派-Eyes天气站其他资料包地址:https://docs.ai-thinker.com/eyes



【安信可开源硬件】小安派Eyes-天气站,酷炫DIY一起来~的评论 (共 条)

分享到微博请遵守国家法律