当前位置: 首页 > news >正文

【雕爷学编程】MicroPython动手做(33)——物联网之天气预报2

天气(自然现象)
是指某一个地区距离地表较近的大气层在短时间内的具体状态。而天气现象则是指发生在大气中的各种自然现象,即某瞬时内大气中各种气象要素(如气温、气压、湿度、风、云、雾、雨、闪、雪、霜、雷、雹、霾等)空间分布的综合表现。

天气过程就是一定地区的天气现象随时间的变化过程。各种天气系统都具有一定的空间尺度和时间尺度,而且各种尺度系统间相互交织、相互作用。许多天气系统的组合,构成大范围的天气形势,构成半球甚至全球的大气环流。天气系统总是处在不断新生、发展和消亡过程中,在不同发展阶段有着其相对应的天气现象分布。

在这里插入图片描述
天气预报
是应用大气变化的规律,根据当前及近期的天气形势,对某一地未来一定时期内的天气状况进行预测。它是根据对卫星云图和天气图的分析,结合有关气象资料、地形和季节特点、群众经验等综合研究后作出的。如我国中央气象台的卫星云图,就是我国制造的“风云一号”气象卫星摄取的。利用卫星云图照片进行分析,能提高天气预报的准确率。天气预报就时效的长短通常分为三种:短期天气预报(2~3天)、中期天气预报(4~9天),长期天气预报(10~15天以上),中央电视台每天播放的主要是短期天气预报。

天气预报的主要内容是一个地区或城市未来一段时期内的阴晴雨雪、最高最低气温、风向和风力及特殊的灾害性天气。就中国而言,气象台准确预报寒潮、台风、暴雨等自然灾害出现的位置和强度,就可以直接为工农业生产和群众生活服务。天气预报是根据气象观测资料,应用天气学、动力气象学、统计学的原理和方法,对某区域或某地点未来一定时段的天气状况作出定性或定量的预测。它是大气科学研究的一个重要目标。对人们生活有重要意义。

在这里插入图片描述
在这里插入图片描述
6、当地天气预报及六项生活指数

#MicroPython动手做(33)——物联网之天气预报
#当地天气预报及六项生活指数from mpython import *
import network
import json
import urequestsmy_wifi = wifi()my_wifi.connectWiFi("zh", "zy1567")def get_seni_weather(_url, _location):_url = _url + "&location=" + _location.replace(" ", "%20")response = urequests.get(_url)json = response.json()response.close()return jsonw1 = get_seni_weather("https://api.seniverse.com/v3/weather/daily.json?key=SSY9pi-U4QH-ZDrf", "ip")
w2 = get_seni_weather("https://api.seniverse.com/v3/life/suggestion.json?key=SSY9pi-U4QH-ZDrf", "ip")
oled.fill(0)
oled.DispChar((''.join([str(x) for x in [w1["results"][0]["location"]["name"], "   ", w1["results"][0]["daily"][0]["text_day"], "   ", w1["results"][0]["daily"][0]["low"], "  - ", w1["results"][0]["daily"][0]["high"], " 度"]])), 0, 0, 1)
oled.DispChar((str("穿衣指数 : ") + str(w2["results"][0]["suggestion"]["dressing"]["brief"])), 0, 16, 1)
oled.DispChar((str("运动指数 : ") + str(w2["results"][0]["suggestion"]["sport"]["brief"])), 0, 32, 1)
oled.DispChar((str("紫外线指数 : ") + str(w2["results"][0]["suggestion"]["uv"]["brief"])), 0, 48, 1)
oled.show()

mPython X 实验图形编程

在这里插入图片描述

当地天气预报及六项生活指数

在这里插入图片描述

7、按下AB键查询今明二天的天气和生活指数

#MicroPython动手做(33)——物联网之天气预报
#按下AB键查询今明二天的天气和生活指数from mpython import *
import network
import json
import urequests
import time
import musicmy_wifi = wifi()my_wifi.connectWiFi("zh", "zy1567")def on_button_a_down(_):time.sleep_ms(10)if button_a.value() == 1: returnmusic.play('G5:1')oled.fill(0)oled.DispChar((''.join([str(x) for x in [w1["results"][0]["location"]["name"], "今天", w1["results"][0]["daily"][0]["text_day"], "", w1["results"][0]["daily"][0]["low"], "  - ", w1["results"][0]["daily"][0]["high"], " 度", w1["results"][0]["daily"][0]["high"]]])), 0, 0, 1)oled.DispChar((str("穿衣指数 : ") + str(w2["results"][0]["suggestion"]["dressing"]["brief"])), 0, 16, 1)oled.DispChar((str("运动指数 : ") + str(w2["results"][0]["suggestion"]["sport"]["brief"])), 0, 32, 1)oled.DispChar((str("紫外线指数 : ") + str(w2["results"][0]["suggestion"]["uv"]["brief"])), 0, 48, 1)oled.show()def on_button_b_down(_):time.sleep_ms(10)if button_b.value() == 1: returnmusic.play('B5:1')oled.fill(0)oled.DispChar((''.join([str(x) for x in [w1["results"][0]["location"]["name"], "明天", w1["results"][0]["daily"][1]["text_day"], "  ", w1["results"][0]["daily"][1]["low"], "  - ", w1["results"][0]["daily"][1]["high"], " 度", w1["results"][0]["daily"][1]["high"]]])), 0, 0, 1)oled.DispChar((str("穿衣指数 : ") + str(w2["results"][0]["suggestion"]["dressing"]["brief"])), 0, 16, 1)oled.DispChar((str("感冒指数 : ") + str(w2["results"][0]["suggestion"]["flu"]["brief"])), 0, 32, 1)oled.DispChar((str("旅游指数 : ") + str(w2["results"][0]["suggestion"]["travel"]["brief"])), 0, 48, 1)oled.show()def get_seni_weather(_url, _location):_url = _url + "&location=" + _location.replace(" ", "%20")response = urequests.get(_url)json = response.json()response.close()return jsonbutton_a.irq(trigger=Pin.IRQ_FALLING, handler=on_button_a_down)button_b.irq(trigger=Pin.IRQ_FALLING, handler=on_button_b_down)w1 = get_seni_weather("https://api.seniverse.com/v3/weather/daily.json?key=SSY9pi-U4QH-ZDrf", "ip")
w2 = get_seni_weather("https://api.seniverse.com/v3/life/suggestion.json?key=SSY9pi-U4QH-ZDrf", "ip")
rgb[1] = (int(0), int(102), int(0))
rgb.write()
time.sleep_ms(1)
music.play('E5:1')
oled.fill(0)
oled.DispChar("按下AB键查询天气预报", 0, 16, 1)
oled.show()

mPython X 实验图形编程

在这里插入图片描述
在这里插入图片描述

按下AB键查询今明二天的天气和生活指数

在这里插入图片描述

8、使用mindplus sever服务器获取天气预报

无需注册,不用密钥,不要设置,挺简单的一个办法

#MicroPython动手做(33)——物联网之天气预报
#使用mindplus sever服务器获取天气预报from mpython import *
import urequests
import network
import ntptime
import music
import jsonbrightness=9weather_serveraddr = "http://server.mindplus.top"weather_appid = "31982666"weather_appsecret = "E6MtBcxQ"def weather_getWeather(_weather, _city):if weather_serveraddr=="http://www.tianqiapi.com":nowResult = urequests.get(weather_serveraddr+"/api/?appid="+weather_appid+"&appsecret="+weather_appsecret+"&version=v6&cityid="+_city)json=nowResult.json()nowResult.close()return json[_weather]else:nowResult = urequests.get(weather_serveraddr+"/api/weather/?appid="+weather_appid+"&appsecret="+weather_appsecret+"&version=v6&cityid="+_city)json=nowResult.json()nowResult.close()return json[_weather]my_wifi = wifi()
my_wifi.connectWiFi("zhz","zy156721")
while not (my_wifi.sta.isconnected()):pass
rgb[1] = (0*brightness//9, 102*brightness//9, 0*brightness//9)
rgb.write()
music.pitch(392, 50)
oled.fill(0)
oled.DispChar("福建 福州", 0, (1-1)*16, 1)
oled.show()
ntptime.settime(8, "ntp.ntsc.ac.cn")
oled.DispChar(weather_getWeather("wea", "101230101"), 0, (2-1)*16, 1)
oled.DispChar((str("最低温度:") + str(weather_getWeather("tem2", "101230101"))), 0, (3-1)*16, 1)
oled.DispChar((str("最高温度:") + str(weather_getWeather("tem1", "101230101"))), 0, (4-1)*16, 1)
oled.show()

使用mindplus sever服务器获取天气预报

在这里插入图片描述

Mind+ 实验图形编程

在这里插入图片描述

相关文章:

【雕爷学编程】MicroPython动手做(33)——物联网之天气预报2

天气(自然现象) 是指某一个地区距离地表较近的大气层在短时间内的具体状态。而天气现象则是指发生在大气中的各种自然现象,即某瞬时内大气中各种气象要素(如气温、气压、湿度、风、云、雾、雨、闪、雪、霜、雷、雹、霾等&#xff…...

macOS 虚拟桌面黑屏(转)

转自:macOS重置虚拟桌面、macOS 虚拟桌面黑屏 有几次出现如图的情况,以为是iTerm的问题,但是在关闭软件,重启之后,依旧无效。 后面经过网友告知,才知道是虚拟桌面的问题。 为了清理这个问题,有以…...

查看gz文件 linux zcat file.gz mtx.gz

可以使用以下命令来查看 gz 压缩文件的内容: zcat file.gz 1 该命令会将 file.gz 文件解压并输出到标准输出,可以通过管道符将其与 grep 命令结合使用来查找需要的关键词,例如: zcat file.gz | grep keyword 1 该命令会将 file.gz…...

互联网——根服务器

说明 根服务器是互联网域名系统(DNS)中最高级别的服务器之一。它们负责管理整个DNS系统的顶级域名空间,例如.com、.org和.net等。 根服务器的主要功能是将用户的DNS查询转发到适当的顶级域名服务器。当用户在浏览器中输入一个域名&#xff…...

华为OD机试之报文回路(Java源码)

题目描述 IGMP 协议中响应报文和查询报文,是维系组播通路的两个重要报文,在一条已经建立的组播通路中两个相邻的 HOST 和 ROUTER,ROUTER 会给 HOST 发送查询报文,HOST 收到查询报文后给 ROUTER 回复一个响应报文,以维持…...

林大数据结构【2019】

关键字: 哈夫曼树权值最小、哈夫曼编码、邻接矩阵时间复杂度、二叉树后序遍历、二叉排序树最差时间复杂度、非连通无向图顶点数(完全图)、带双亲的孩子链表、平衡二叉树调整、AOE网关键路径 一、判断 二、单选 三、填空 四、应用题...

2023华数杯数学建模A题思路分析 - 隔热材料的结构优化控制研究

# 1 赛题 A 题 隔热材料的结构优化控制研究 新型隔热材料 A 具有优良的隔热特性,在航天、军工、石化、建筑、交通等 高科技领域中有着广泛的应用。 目前,由单根隔热材料 A 纤维编织成的织物,其热导率可以直接测出;但是 单根隔热…...

Linux常用命令——dos2unix命令

在线Linux命令查询工具 dos2unix 将DOS格式文本文件转换成Unix格式 补充说明 dos2unix命令用来将DOS格式的文本文件转换成UNIX格式的(DOS/MAC to UNIX text file format converter)。DOS下的文本文件是以\r\n作为断行标志的,表示成十六进…...

【NLP pytorch】基于BERT_TextCNN新闻文本分类实战(项目详解)

基于BERT_TextCNN新闻文本分类实战项目 1 数据集介绍2 模型介绍3 数据预处理3.1 数据集加载3.2 统计文本长度分布4 BERT模型4.1 HuggingFace介绍4.2 HuggingFace使用4.2.1 加载预训练模型4.2.2 预训练模型的使用4.3 BERT模型使用4.3.1 编码和解码4.3.2 批处理4.3.3 词向量处理5…...

决策树与随机森林

目录 决策树是:Why:How:基本概念决策树生成举例决策树缺点参考 Demo 随机森林1.是:2.Why:3.How:参考 Demo 决策树 是: 1.一种有监督的分类(或预测)算法。 2.利用属性、…...

Nginx 网站服务

Nginx 稳定性高 (但是没有apache稳定) 版本号:1.12 1.20 1.22 系统资源消耗低 (处理http请求的并发能力很高,单台物理服务器可以处理30000-50000个并发请求) 稳定:一般在企业中,为了保持服务器稳定,并发量的…...

Python爬虫——爬虫时如何知道是否代理ip伪装成功?

前言 在进行爬虫时,我们可能需要使用代理IP来伪装自己的身份,以避免被网站封禁。如何判断代理IP是否伪装成功呢?本篇文章将围绕这个问题展开讲解,同时提供Python代码示例。 1. 确认代理IP地址 首先,我们需要确认代理…...

flink1.17 json_tuple udf 实现

使用效果 思路: flink1.17要求复杂类型必须通过hint指定每个字段类型, 只有固定个数,都是基础类型的flink才能自动推断. 这就导致json_tuple返回不定长参数无法搞定. 所以这里通过返回字符串数组来解决. 同时带来新的问题: 数组元素类型一样,导致fastjson2解析到的int也需要…...

Vue3实现6位验证码输入框,用户可以连续输入和删除

实现代码 可以随意填写删除 <template><div class"verification-container"><inputv-for"(code, index) in verificationCodes":key"index"v-model"verificationCodes[index]"input"handleInput(index, $event…...

如何在终端设置代理(设置jupyter notebook同理)

设置代理 在终端(我用的gitbash)下执行 set HTTP_PROXYhttp://<user>:<password><proxy server>:<proxy port> set HTTPS_PROXYhttp://<user>:<password><proxy server>:<proxy port>其中&#xff1a; user、password&#…...

git报错:Error merging: refusing to merge unrelated histories

碰对了情人&#xff0c;相思一辈子。 打命令&#xff1a;git pull origin master --allow-unrelated-histories 然后等一会 再push 切记不要有冲突的代码 需要改掉~...

QT-QLabel显示图片,按QLabel控件的大小自动缩放

要按照 QLabel 控件的大小调整并显示图片&#xff0c;你可以使用 scaled() 函数将 QPixmap 对象进行缩放&#xff0c;然后将缩放后的图片设置到 QLabel 上。下面是一个示例代码&#xff1a; #include <QApplication> #include <QLabel> #include <QPixmap>i…...

【JS代码调试技巧】你必须知道的Javascript技巧汇总

注&#xff1a;最后有面试挑战&#xff0c;看看自己掌握了吗 文章目录 使用控制台检查变量值控制台使用 type of 检查变量的类型捕获拼错的变量名和函数名捕获使用赋值运算符而不是相等运算符捕捉函数调用后缺少的左括号和右括号 &#x1f338;I could be bounded in a nutshel…...

JAVA-@Configuration注解属性proxyBeanMethods

Configuration注释中的proxyBeanMethods参数是springboot1.0&#xff0c;升级到springboot2.0之后新增的比较重要的内容&#xff0c;该参数是用来代理bean的。 理论 首先引出两个概念&#xff1a;Full 全模式&#xff0c;Lite 轻量级模式 Full(proxyBeanMethods true) :pro…...

锁策略, cas 和 synchronized 优化过程总结

目录 一、锁策略 1. 乐观锁和悲观锁 2. 读写锁 3. 重量级锁和轻量级锁 4. 自旋锁 5. 公平锁和非公平锁 6.可重入锁 vs 不可重入锁 二、CAS 1. CAS 是怎么实现的 1) 实现原子类 2) 实现自旋锁 3. CAS 的 ABA 问题 三、Synchronized 原理 1.Synchronized 加锁工作过程 3.1 偏向…...

Docker 离线安装指南

参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性&#xff0c;不同版本的Docker对内核版本有不同要求。例如&#xff0c;Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本&#xff0c;Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…...

stm32G473的flash模式是单bank还是双bank?

今天突然有人stm32G473的flash模式是单bank还是双bank&#xff1f;由于时间太久&#xff0c;我真忘记了。搜搜发现&#xff0c;还真有人和我一样。见下面的链接&#xff1a;https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...

uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖

在前面的练习中&#xff0c;每个页面需要使用ref&#xff0c;onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入&#xff0c;需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...

高等数学(下)题型笔记(八)空间解析几何与向量代数

目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...

Nginx server_name 配置说明

Nginx 是一个高性能的反向代理和负载均衡服务器&#xff0c;其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机&#xff08;Virtual Host&#xff09;。 1. 简介 Nginx 使用 server_name 指令来确定…...

AspectJ 在 Android 中的完整使用指南

一、环境配置&#xff08;Gradle 7.0 适配&#xff09; 1. 项目级 build.gradle // 注意&#xff1a;沪江插件已停更&#xff0c;推荐官方兼容方案 buildscript {dependencies {classpath org.aspectj:aspectjtools:1.9.9.1 // AspectJ 工具} } 2. 模块级 build.gradle plu…...

2023赣州旅游投资集团

单选题 1.“不登高山&#xff0c;不知天之高也&#xff1b;不临深溪&#xff0c;不知地之厚也。”这句话说明_____。 A、人的意识具有创造性 B、人的认识是独立于实践之外的 C、实践在认识过程中具有决定作用 D、人的一切知识都是从直接经验中获得的 参考答案: C 本题解…...

基于TurtleBot3在Gazebo地图实现机器人远程控制

1. TurtleBot3环境配置 # 下载TurtleBot3核心包 mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3.git git clone -b noetic https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git git clone -b noetic-dev…...

Python基于历史模拟方法实现投资组合风险管理的VaR与ES模型项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档&#xff09;&#xff0c;如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在金融市场日益复杂和波动加剧的背景下&#xff0c;风险管理成为金融机构和个人投资者关注的核心议题之一。VaR&…...

Vue ③-生命周期 || 脚手架

生命周期 思考&#xff1a;什么时候可以发送初始化渲染请求&#xff1f;&#xff08;越早越好&#xff09; 什么时候可以开始操作dom&#xff1f;&#xff08;至少dom得渲染出来&#xff09; Vue生命周期&#xff1a; 一个Vue实例从 创建 到 销毁 的整个过程。 生命周期四个…...