基于小安派AiPi-Eye-S1的天气站设计

小安派开源硬件,你的体验到哪一步了?有大佬@灰太狼在b站和安信可社区发布了基于小安派aipi-eye-s1的天气站,来看看过程~
02.作品说明
2.1硬件部分
硬件上使用到了aipi-eye-s1开发板以及3.5寸 240*320像素的电容触摸屏,日常使用usb线通过开发板上的typec接口为设备进行供电。使用usb转ttl工具进行程序下载。
2.2软件部分
①开发环境
个人是在windows环境下使用vscode进行项目的开发,具体的环境搭建过程可参考论坛中的帖子:【零基础搭建小安派windows 开发环境】
②ui设计
本项目使用了lvgl图形库,使用相应的辅助开发工具squareline studio来进行界面设计与c代码生成。
③天气信息获取
本项目使用易客云天气提供的免费天气api接口来获取当前地区基础七日天气与基础实况天气。由于请求数据时使用到用户id与密钥参数,因此需要进行账号注册。
④程序设计思路
本项目程序参考了官方给的天气站示例(aipi-open-kits/aipi-eyes_weather at master · ai-thinker-open/aipi-open-kits · github),其整体的实现思路如下:
系统初始化
基于freertos创建多个任务
(1) wifi_main wi-fi运行任务;
(2) lvgl_task 运行lvgl,实现触摸屏显示与触摸功能,当触发网络连接条件时,会向队列中发送wifi名称密码数据;
(3) bl61x_show_heap_size_task 通过串口打印内存占用情况(设定波特率为2000000);
(4) queue_task分析处理队列数据,执行相应程序。各任务间的通信是基于队列实现的,目前该任务处理的队列数据包含以下4种:
  a.wi-fi名称密码数据 -> 数据保存,进行wi-fi连接,wi-fi连接成功会向队列中发送wi-fi连接成功数据;
  b.wi-fi连接成功数据 -> 创建https_get_weather_task任务来获取时间、天气信息;
  c.未来七日天气数据 -> 更新屏幕显示内容;
  d.基础实况天气数据 -> 更新屏幕显示内容。
(5) https_get_weather_task 通过https获取未来七日天气及基础实况天气,成功获取后将向队列中发送相应数据。任务通过定时器http_timers来设定数据获取的频率。
03.固件烧录
3.1 固件烧录
以下操作需要再环境配置完成后进行。
①程序编译
在项目根目录下打开终端,输入make。
如无错误,最终会显示以下内容。
②固件烧录
在终端中输入make flash comx=comxx 其中xx为实际连接的下载器的com口号,如下图中com口为20。
根据提示按下复位按钮,进行烧录。
3.2 网络配置与天气账号
(1)在网络配置菜单中输入要连接的wifi名称及密码。
(2)在天气账号菜单中输入注册易客云天气后个人的appid与appsecret。
(3)点击连接按钮,若配置正确,则会跳转到以下界面。
04.说明
4.1界面切换说明
在主界面下点击下图所示的对应区域,可切换至相应界面,在子界面下触摸底部按钮可切换至主界面。
4.2其他说明
需要注意的是,如果长时间运行,会因http服务器连接问题偶然出现卡死的问题,正尝试进行解决......


东芝笔记本辉煌回顾
D类音频放大器CS8676E的特点及应用
澳大利亚:中国半导体若是自研成功,未来芯片将“一文不值”!
智能底盘国产化的机会到底在哪 本文告诉你答案
无线充电解决方案 让无线物联更进一步
基于小安派AiPi-Eye-S1的天气站设计
怎么设计一个Glitch Free的时钟切换电路呢?
全场景物联技术,助力亚运智慧化建设与管理
可穿戴设备的未来究竟是怎样的
英特尔2023至2025年的Xeon处理器产品路线图
TektronixTDS7104数字荧光示波器TDS7104
PADS Logic界面鼠标的使用介绍
OpenCV常用的 7 个示例(Python版)2
格雷码的编制规律
医疗可穿戴市场鱼龙混杂 核心技术尚待破局
表面贴装技术选择的问题研究
宁德时代在“储充检”领域的布局又进一步
使用OpenCR的真空吸盘系统的制作
科雅电子推出双85专用X2安规电容器
小米6性能完爆iPhone, 跑分轻松超iPhone!