AWTK 开源串口屏开发(11) - 天气预报

# AWTK 开源串口屏开发 - 天气预报

天气预报是一个很常用的功能,在很多设备上都有这个功能。实现天气预报的功能,不能说很难但是也绝不简单,首先需要从网上获取数据,再解析数据,最后更新到界面上。

在 AWTK 串口屏中,内置了 XML/JSON/INI 等各种数据文件的模型,并支持用 HTTP/HTTPS 从网络获取数据。所以实现天气预报非常简单,不用编写一行代码即可实现天气预报的功能。而且用同样的方式,也可以实现其它功能,比如:股票行情、新闻、公交查询、火车查询、航班查询、快递查询等等。

这里以 http://t.weather.sojson.com 提供的接口为例,来实现一个显示天气信息的应用程序。这个是免费的,无需注册的 API,当然也有些限制,在实际工作中,你可以换成自己的接口。

它返回的数据是 JSON 格式的,如下所示:

{"message": "success 感谢又拍云 (upyun.com) 提供 CDN 赞助","status": 200,"date": "20240101","time": "2024-01-01 08:13:13","cityInfo": {"city": "天津市","citykey": "101030100","parent": "天津","updateTime": "08:01"},"data": {"shidu": "86%","pm25": 57.0,"pm10": 93.0,"quality": "良","wendu": "-7","ganmao": "极少数敏感人群应减少户外活动","forecast": [],"yesterday": {"date": "31","high": "高温 1℃","low": "低温 -3℃","ymd": "2023-12-31","week": "星期日","sunrise": "07:30","sunset": "16:57","aqi": 35,"fx": "北风","fl": "2 级","type": "晴","notice": "愿你拥有比阳光明媚的心情"}}
}

AWTK 串口屏中的 json 模型,支持用下面的语法从网络获取数据,它会自动解析 JSON 数据,并生成一个模型,通过路径可以引用模型中的数据。

json(url=http://t.weather.sojson.com/api/weather/city/101030100)

网上有很多天气预报的接口,这里只是举个例子,如果你有自己的接口,可以用自己的接口。

1. 功能

不用编写代码,实现天气预报。

2. 创建项目

从模板创建项目,将 hmi/template_app 拷贝 hmi/weather 即可。

第一个项目最好不要放到其它目录,因为放到其它目录需要修改配置文件中的路径,等熟悉之后再考虑放到其它目录。路径中也不要中文和空格,避免不必要的麻烦。

3. 制作界面

用 AWStudio 打开上面 weather 目录下的 project.json 文件。里面有一个空的窗口,做出类似下面的界面。

在这里插入图片描述

4. 添加绑定规则

4.1 城市

绑定属性绑定规则说明
v-data:value{cityInfo.city}不同的 JSON API 需要使用不同的路径,请根据具体的 JSON 数据填写

4.2 温度

绑定属性绑定规则说明
v-data:value{data.wendu}不同的 JSON API 需要使用不同的路径,请根据具体的 JSON 数据填写

4.3 湿度

绑定属性绑定规则说明
v-data:value{data.shidu}不同的 JSON API 需要使用不同的路径,请根据具体的 JSON 数据填写

4.4 PM2.5

绑定属性绑定规则说明
v-data:value{data.pm25}不同的 JSON API 需要使用不同的路径,请根据具体的 JSON 数据填写

4.5 空气质量

绑定属性绑定规则说明
v-data:value{data.quality}不同的 JSON API 需要使用不同的路径,请根据具体的 JSON 数据填写

4.6 感冒指数

绑定属性绑定规则说明
v-data:value{data.ganmao}不同的 JSON API 需要使用不同的路径,请根据具体的 JSON 数据填写

4.7 刷新按钮

  • 刷新 按钮的 点击 事件绑定到 reload 命令。添加自定义的属性 v-on:click,将值设置为 {reload}
绑定属性绑定规则说明
v-on:click{reload}reload 命令是内置的命令,用于重新加载持久化的配置,命令要用英文大括号括起来。

4.8 窗口模型

  • 指定窗口的模型为 json, url 为 http://t.weather.sojson.com/api/weather/city/101030100
绑定属性绑定规则说明
v-modeljson(url=http://t.weather.sojson.com/api/weather/city/101030100)不同的 JSON API 需要使用不同的 URL,可以换成自己的 URL

5. 初始化数据

6. 描述需要持久化的数据

7. 编译运行

运行 bin 目录下的 demo 程序:

在这里插入图片描述

点击 刷新 按钮,可以重新加载数据,但是通常界面没有变化,因为天气数据没有变化。

8. 注意

  • 本项目并没有编写界面相关的代码,AWStudio 在 src/pages 目录下生成了一些代码框架,这些代码并没有用到,可以删除也可以不用管它,但是不能加入编译。

  • 完整示例请参考:demo_weather

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/269356.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何在jupyter notebook 中下载第三方库

在anconda 中找到: Anaconda Prompt 进入页面后的样式: 在黑色框中输入: 下载第三方库的命令 第三方库: 三种输入方式 标准保证正确 pip instsall 包名 -i 镜像源地址 pip install pip 是 Python 包管理工具,…

牛客练习赛122

D:圆 正着求删除的最小代价不好做,采用逆向思维,求选择一些不相交的线段使得构成一个圆的代价尽量大,最后答案就是所有线段权值之和减去最大代价。 那么如何求这个最大代价呢?显然区间DP 老套路:破环成链&#xff0…

Java实现手机库存管理

一、实验任务 编写一个程序,模拟库存管理系统。该系统主要包括系统首页、商品入库、商品显示和删除商品功能。每个功能的具体要求如下: 1.系统的首页:用于显示系统所有的操作,并且可以选择使用某一个功能。 2.商品入库功能&…

Java 数据结构篇-深入了解排序算法(动态图 + 实现七种基本排序算法)

🔥博客主页: 【小扳_-CSDN博客】 ❤感谢大家点赞👍收藏⭐评论✍ 文章目录 1.0 实现冒泡排序 2.0 实现选择排序 2.1 选择排序的改良升级 3.0 实现堆排序 4.0 实现插入排序 5.0 实现希尔排序 6.0 实现归并排序 6.1 递归实现归并排序 6.2 使用…

用FPGA CORDIC IP核实现信号的相位检测,计算相位角

用FPGA CORDIC IP核实现信号的相位检测 1.matlab仿真 波形仿真代码: 代码功能:生成一个点频信号s,求出s的实部和虚部;并且结算相位角atan2。画出图形,并且将Q和I数据写入文件中。 %代码功能:生成一个点…

双链表——“数据结构与算法”

各位CSDN的uu们你们好呀,今天,小雅兰又回来了,到了好久没有更新的数据结构与算法专栏,最近确实发现自己有很多不足,需要学习的内容也有很多,所以之后更新文章可能不会像之前那种一天一篇或者一天两篇啦&…

红帆OA 多处 SQL注入漏洞复现

0x01 产品简介 红帆iOffice.net从最早满足医院行政办公需求(传统OA),到目前融合了卫生主管部门的管理规范和众多行业特色应用,是目前唯一定位于解决医院综合业务管理的软件,是最符合医院行业特点的医院综合业务管理平台,是成功案例最多的医院综合业务管理软件。 0x02 漏…

网络安全: Kali Linux 使用 docker-compose 部署 openvas

目录 一、实验 1.环境 2.Kali Linux 安装docker与docker-compose 3.Kali Linux 使用docker-compose方式部署 openvas 4. KaliLinux 使用openvas 二、问题 1. 信息安全漏洞库 2.信息安全漏洞共享平台 3.Windows 更新指南与查询 4.CVE 查询 5.docker-compose 如何修改o…

哪些型号的高速主轴适合PCB分板机

在选择适合PCB分板机的高速主轴时,SycoTec品牌提供了丰富的型号选择,主要型号包括4025 HY、4033 AC(电动换刀)、4033 AC-ESD、4033 DC-T和4041 HY-ESD等。 那么如何选择合适的PCB分板机高速主轴型号呢?在选择适合PCB分…

LZO索引文件失效说明

在hive中创建lzo文件和索引时,进行查询时会出现问题.hive的默认输入格式是开启小文件合并的,会把索引也合并进来。所以要关闭hive小文件合并功能!

day03_Vue_Element

文章目录 01.Ajax1.1 Ajax 概述1.2 同步异步1.3 原生Ajax 2. Axios2.1 Axios的基本使用2.2 Axios快速入门2.3请求方法的别名2.4 案例 3 前后台分离开发3.1 前后台分离开发介绍 04 YAPI4.1 YAPI介绍4.2 接口文档管理 05 前端工程化5.1 前端工程化介绍5.2 前端工程化入门5.2.1 环…

小程序学习

1、小程序体验 2、注册账号 小程序 (qq.com) 3、开发工具下载 下载 / 稳定版更新日志 (qq.com) 4、目录结构 "navigationBarBackgroundColor": "#00b26a" 配置头部背景色 4、wxml模板介绍 5、wxss 6、js文件 7、宿主环境 1、通信主体 2、运行机制 3、…

网工学习 DHCP配置-接口模式

网工学习 DHCP配置-接口模式 学习DHCP总是看到,接口模式、全局模式、中继模式。理解起来也不困难,但是自己动手操作起来全是问号。跟着老师视频配置啥问题没有,自己组建网络环境配置就是不通,悲催。今天总结一下我学习接口模式的…

动手学深度学习—循环神经网络RNN详解

循环神经网络 循环神经网络的步骤: 处理数据 将数据按照批量大小和时间步数进行处理,最后得到迭代器,即每一个迭代的大小是批量大小时间步数,迭代次数根据整个数据的大小决定,最后得出处理的数据(参照第三…

基于SpringBoot的物业管理系统

** 🍅点赞收藏关注 → 私信领取本源代码、数据库🍅 本人在Java毕业设计领域有多年的经验,陆续会更新更多优质的Java实战项目希望你能有所收获,少走一些弯路。🍅关注我不迷路🍅** 一 、设计说明 1.1 研究…

Elasticsearch:使用 Streamlit、语义搜索和命名实体提取开发 Elastic Search 应用程序

作者:Camille Corti-Georgiou 介绍 一切都是一个搜索问题。 我在 Elastic 工作的第一周就听到有人说过这句话,从那时起,这句话就永久地印在了我的脑海中。 这篇博客的目的并不是我出色的同事对我所做的相关陈述进行分析,但我首先…

Python的PrettyTable模块

Python的PrettyTable模块 1.PrettyTable介绍与基本使用 ​ 在使用Python查询表格数据的时候,直接print出来的话。数据杂乱无章,这个使用就可以使用PrettyTable模块来解决这个问题。如下图: 这样在输出的窗口可以很清晰看到所需要的信息。那么类似这种表…

更换个人开发环境后,pycharm连接服务器报错Authentication failed

原因:服务器中更换个人开发环境后,密码变了。 解决:在pycharm中修改服务器开发环境密码即可。 1 找到Tools-Depolyment-Configuration 2 点击SSH Configuration后的省略号 3 修改这里面的Password即可

autodock分子对接操作步骤完整版

对接完整步骤具体操作 设置工作目录 保证工作目录下必须要有这五个文件: 对蛋白质的操作 打开蛋白质 去水,结构周围的小红点。 加氢 将蛋白质设为受体 点击确定进行保存 进行下一步小分子 小分子具体操作 打开小分子 对小分子进行加氢 将小分子设定为配…

第三篇【传奇开心果系列】Python的自动化办公库技术点案例示例:深度解读Pandas股票市场数据分析

传奇开心果博文系列 系列博文目录Python的自动化办公库技术点案例示例系列 博文目录前言一、Pandas进行股票市场数据分析常见步骤和示例代码1. 加载数据2. 数据清洗和准备3. 分析股票价格和交易量4. 财务数据分析 二、扩展思路介绍1. 技术指标分析2. 波动性分析3. 相关性分析4.…