用小安派开源硬件制作一个桌面天气站

描述

最近有些地区的天气前一秒还是晴空万里,转眼一言不合就带来一场大风大雨。

上周安信可推出了小安派的2款开源硬件——AiPi-Eyes-S1、AiPi-Eyes-S2,安信可应用开发团队用小安派开源硬件制作了一款桌面天气站,为出行做好参考~

01功能分析

上位机

02Gui Guider模拟运行结果

这里使用的UI上位机是NXP的GUI Guider软件。

也可到文末链接下载资料包,含GUI Guider 软件及本次项目的GUI Guider 工程。

03UI 代码移植

1、文件移植

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

上位机

以上文件夹复制到工程的UI位置:Ai-Pi_Eeys/demos/240X320_ui。 因为M6X_SDK中的Lvgl没有dclock 时钟组件,所以也要把dclock 移植到SDK当中。dclock的目录如下:M6x_Eyeslvglsrcextrawidgets

上位机

把整个dclock文件夹复制到:Ai-Pi_Eeysaithinker_Ai-M6X_SDKcomponentsgraphicslvglextrawidgets目录下。

上位机

2、代码修改

1)工程添加UI代码

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

上位机

上位机

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

上位机

2)HTTPS GET请求及时间获取

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

  上位机  

天气情况获取,这里使用的是天气API的免费的未来七天天气接口

请求数据如下:

上位机

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

上位机

审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分