利用单片机实现天气服务器获取指定位置天气数据

简介: 大家好,今天主要和大家聊一聊,如何利用单片机从心知天气服务器上获取到指定位置的天气数据,咱们先来了解一下心知天气吧!​

第一:天气数据API

fb5e8ea8e2e3ac4aca2af8b864d0f2a2.png

其中用户使用免费版可以调用哪些数据?

  1. 天气实况,包括天气现象文字、代码和气温三项重点数据
  2. 未来3天天气预报,包括白天天气现象文字及代码、晚间天气现象文字及代码、当天最高温度和最低温度、风向风速
  3. 六项基本类生活指标,包括穿衣、紫外线强度、洗车、旅游、感冒、运动指数

第二、通信原理图以及数据解析

如何获取这些数据?咱们可以通过一个原理框架图来看一看

50874494dc2ec19c5ce4adf7156762cc.png

天气实况接口参数及数据返回

心知天气TCP地址api.seniverse.com

端口号(PORT):80

数据返回:获取指定城市的天气实况。付费用户可获取全部数据,免费用户只返回天气现象文字、代码和气温 3 项数据。


接口地址格式:https://api.seniverse.com/v3/weather/now.json?key=your_api_key&location= beijing&language=zh-Hans&unit=c


参数说明:

参数名称 类型 默认值 必填 备注
key String 你的API密钥
location Location 所查询的位置
language Languae zh-Hans 语言
unit Unit c 单位

补充:

两种API安全验证方式:

1.”私钥“直接请求方式

将API密钥中的”私钥“作为API请求中的key参数值。

说明:此方式较为方便,但注意请不要泄露你的”私钥“。

2.”公钥+私钥“签名验证方式

“公钥 + 私钥” 验证方式更加安全。请求地址中只包含你的“公钥”以及用你的“私钥”制作的签名,因此 不会在请求地址中泄露你的私钥。方法见链接:

https://seniverse.yuque.com/login?goto=https%3A%2F%2Fseniverse.yuque.com%2Fdocs%2Fshare%2Ff08ddb4b-d3e5-4113-aa4e-3bf45c9f43ac%3F&org=seniverse#%20%E3%80%8A%E4%BD%BF%E7%94%A8%E7%AD%BE%E5%90%8D%E9%AA%8C%E8%AF%81%E6%96%B9%E5%BC%8F%E3%80%8B

第三、天气数据返回结果示例

{
"results": [
• {
• "location": {
• "id": "C23NB62W20TF",
• "name": "西雅图",
• "country": "US",
• "path": "西雅图,华盛顿州,美国",
• "timezone": "America/Los_Angeles",
• "timezone_offset": "-07:00"
• },
• "now": {
• "text": "多云", //天气现象文字
• "code": "4", //天气现象代码
• "temperature": "14", //温度,单位为c摄氏度或f华氏度
• "feels_like": "14", //体感温度,单位为c摄氏度或f华氏度
• "pressure": "1018", //气压,单位为mb百帕或in英寸
• "humidity": "76", //相对湿度,0~100,单位为百分比
• "visibility": "16.09", //能见度,单位为km公里或mi英里
• "wind_direction": "西北", //风向文字
• "wind_direction_degree": "340", //风向角度,范围0~360,0为正北,90为正
东,180为正南,270为正西
• "wind_speed": "8.05", //风速,单位为km/h公里每小时或mph英里每小时
• "wind_scale": "2", //风力等级,请参考:
http://baike.baidu.com/view/465076.htm
• "clouds": "90", //云量,单位%,范围0~100,天空被云覆盖的百分比 #目前不支持中
国城市#
• "dew_point": "-12" //露点温度,请参考:
http://baike.baidu.com/view/118348.htm #目前不支持中国城市#
• },
• "last_update": "2015-09-25T22:45:00-07:00" //数据更新时间(该城市的本地时
间)
• }
]
}

补充:

1.天气现象代码说明

每一种天气现象(例如:晴、小雨、多云等)都对应一个天气现象代码,即 API 返回结果中的 code字段。下表列出了心知天气 API 所有可能返回的天气现象代码。注:部分天气现象提供白天和夜间两种代码。


代码 中文 英文 图标

0

晴(国内城市白天晴)

Sunny

f7e4ff019bc0fc1d263ba2ecb5259e11.png

1

晴(国内城市夜晚晴)

Clear

d4b6f8723863050c48fa6ff2f1b21742.png

2

晴(国外城市白天晴)

Fair

f7e4ff019bc0fc1d263ba2ecb5259e11.png

3

晴(国外城市夜晚晴)

Fair



表格尾注:这里仅放一种情况说明

2.天气现象优先级

  • 第一优先级:冰雹、雷暴、冰粒、冰针、龙卷风、热带风暴
  • 第二优先级:雪
  • 第三优先级:雨
  • 第四优先级:风和沙尘类(浮尘、扬沙、沙尘暴、风、大风、飓风)
  • 第五优先级:雾霾
  • 第六优先级:其他天气现象

3.多语言支持说明

   心知天气 API 支持 13 种语言,分别为:中文(简体、繁体),英语,日语,德语,法语,俄语,西班牙语,葡萄牙语,泰语,阿拉伯语,印尼语,印尼语,印地语。多语言支持向心知天气的所有注册用户开放,无论免费用户还是付费用户,都可以通过接口的language参数改变返回数据的语言。

可选

说明
zh-Hans 简体中文
zh-Hant 繁体中文
en 英文
ja 日语
de 德语
fr 法语
es 西班牙语
pt 葡萄牙语
hi 印地语
id 印度尼西亚语
ru 俄语
th 泰语
ar 阿拉伯语

注意:language 为可选参数。如果忽略,返回数据的默认语言为简体中文(默认值为zh-Hans)。气象灾害预警、农历、节气、生肖接口无多语言支持。生活指数的 details 无多语言支持。

四、软件代码实现

  • 串口收发配置
  • ESP8266基本功能配置
  • 数据解析函数
  • OLED显示

工程代码过于冗长,在此将实验功能视频以及工程代码都放于链接中,读者过后可以去尝试实现它!特别棒!


链接:https://download.csdn.net/download/weixin_41114301/86826257

总结:本次实验并不复杂,却拓展了我们的单片机领域,是我们向网络通信领域迈入的重要一步!

目录
相关文章
|
29天前
|
存储 安全 网络安全
服务器感染了.baxia勒索病毒,如何确保数据文件完整恢复?
近年来,勒索病毒如.baxia不断演变,利用漏洞、社交工程等手段加密文件,威胁范围扩大。加密货币的兴起使其支付方式更匿名,追踪困难。技术支持尤为重要,添加技术服务号(shuju315),专业团队提供数据恢复方案。面对复杂解密要求,包括赎金支付、个人信息提供和执行特定操作,需保持冷静并寻求帮助。防御措施包括加强安全意识、定期备份数据、安装杀毒软件、避免未知文件、更新系统及制定应急响应计划。
70 11
|
3月前
|
XML 前端开发 JavaScript
PHP与Ajax在Web开发中的交互技术。PHP作为服务器端脚本语言,处理数据和业务逻辑
本文深入探讨了PHP与Ajax在Web开发中的交互技术。PHP作为服务器端脚本语言,处理数据和业务逻辑;Ajax则通过异步请求实现页面无刷新更新。文中详细介绍了两者的工作原理、数据传输格式选择、具体实现方法及实际应用案例,如实时数据更新、表单验证与提交、动态加载内容等。同时,针对跨域问题、数据安全与性能优化提出了建议。总结指出,PHP与Ajax的结合能显著提升Web应用的效率和用户体验。
84 3
|
3月前
|
存储 运维 算法
服务器数据恢复—raid6阵列硬盘重组raid5阵列如何恢复raid6阵列数据?
服务器存储数据恢复环境: 存储中有一组由12块硬盘组建的RAID6阵列,上层linux操作系统+EXT3文件系统,该存储划分3个LUN。 服务器存储故障&分析: 存储中RAID6阵列不可用。为了抢救数据,运维人员使用原始RAID中的部分硬盘重新组建RAID并进行了初始化。 初始化开始一段时间后,运维人员察觉到情况有异后强制终止初始化,这个时候初始化已经完成一半以上。数据部分已被不可逆的破坏。
|
4月前
|
存储 数据挖掘
服务器数据恢复—用RAID5阵列中部分盘重建RAID5如何恢复原raid5阵列数据?
服务器数据恢复环境: 一台服务器挂接一台存储,该存储中有一组由5块硬盘组建的RAID5阵列。 服务器故障: 存储raid5阵列中有一块硬盘掉线。由于RAID5的特性,阵列并没有出现问题。工作一段时间后,服务器出现故障,用户方请人维修。维修人员在没有了解故障磁盘阵列环境的情况下,用另外4块硬盘(除去掉线的硬盘)重新创建了一组全新的RAID5阵列并完成数据同步,导致原raid5阵列数据全部丢失。
|
4月前
|
Python
Flask学习笔记(三):基于Flask框架上传特征值(相关数据)到服务器端并保存为txt文件
这篇博客文章是关于如何使用Flask框架上传特征值数据到服务器端,并将其保存为txt文件的教程。
54 0
Flask学习笔记(三):基于Flask框架上传特征值(相关数据)到服务器端并保存为txt文件
|
4月前
|
弹性计算 Linux 数据库
阿里云国际版如何迁移Linux云服务器系统盘中的数据
阿里云国际版如何迁移Linux云服务器系统盘中的数据
|
4月前
|
SQL 分布式计算 关系型数据库
Hadoop-21 Sqoop 数据迁移工具 简介与环境配置 云服务器 ETL工具 MySQL与Hive数据互相迁移 导入导出
Hadoop-21 Sqoop 数据迁移工具 简介与环境配置 云服务器 ETL工具 MySQL与Hive数据互相迁移 导入导出
140 3
|
2天前
|
存储 机器学习/深度学习 人工智能
2025年阿里云GPU服务器租用价格、选型策略与应用场景详解
随着AI与高性能计算需求的增长,阿里云提供了多种GPU实例,如NVIDIA V100、A10、T4等,适配不同场景。2025年重点实例中,V100实例GN6v单月3830元起,适合大规模训练;A10实例GN7i单月3213.99元起,适用于混合负载。计费模式有按量付费和包年包月,后者成本更低。针对AI训练、图形渲染及轻量级推理等场景,推荐不同配置以优化成本和性能。阿里云还提供抢占式实例、ESSD云盘等资源优化策略,支持eRDMA网络加速和倚天ARM架构,助力企业在2025年实现智能计算的效率与成本最优平衡。 (该简介为原文内容的高度概括,符合要求的字符限制。)
|
3天前
|
存储 弹性计算 人工智能
2025年阿里云企业云服务器ECS选购与配置全攻略
本文介绍了阿里云服务器的核心配置选择方法论,涵盖算力需求分析、网络与存储设计、地域部署策略三大维度。针对不同业务场景,如初创企业官网和AI模型训练平台,提供了具体配置方案。同时,详细讲解了购买操作指南及长期运维优化建议,帮助用户快速实现业务上云并确保高效运行。访问阿里云官方资源聚合平台可获取更多最新产品动态和技术支持。
|
6天前
|
弹性计算 JavaScript 前端开发
一键安装!阿里云新功能部署Nodejs环境到ECS竟然如此简单!
Node.js 是一种高效的 JavaScript 运行环境,基于 Chrome V8 引擎,支持在服务器端运行 JavaScript 代码。本文介绍如何在阿里云上一键部署 Node.js 环境,无需繁琐配置,轻松上手。前提条件包括 ECS 实例运行中且操作系统为 CentOS、Ubuntu 等。功能特点为一键安装和稳定性好,支持常用 LTS 版本。安装步骤简单:登录阿里云控制台,选择扩展程序管理页面,安装 Node.js 扩展,选择实例和版本,等待创建完成并验证安装成功。通过阿里云的公共扩展,初学者和经验丰富的开发者都能快速进入开发状态,开启高效开发之旅。