首页 > 其他分享 >树莓派天气助手

树莓派天气助手

时间:2023-09-02 20:44:20浏览次数:36  
标签:树莓 天气 jq 助手 weather 邮箱 now com

Vamei大神<<树莓派开始,玩转Linux>>第35章天气助手的简易复现!!

心知天气API 配置

API控制台官方网站:https://www.seniverse.com/dashboard

  • 如果你使用的是免费订阅,请复制下列链接:
https://api.seniverse.com/v3/weather/now.jsonkey=你的私钥&location=城市&language=zh-Hans&unit=c
  • scheme: https
  • host: api.seniverse.com
  • path:v3/weather/now
  • query parameters:jsonkey=&location=&language=zh-Hans&unit=c

key可以自行注册好,创建免费项目后,在官方项目管理网站上获取:

使用Postman进行请求访问:

树莓派调用API

Linux常常使用curl工具来调用远程API,再使用jq工具来解析返回的天气信息。其中curl树莓派自带,jq工具需要额外的安装。(二者的使用方法自行CSDN)

根据怕postman请求的结果编写脚本:

#!/usr/bin/env bash
city_name=wuxi
private_key_number=***

data=$(curl "https://api.seniverse.com/v3/weather/now.json?key=${private_key_number}&location=${city_name}&language=zh-Hans&unit=c")

weather=$(echo ${data} | jq -r '.results[0].now | .text')
temperature=$(echo ${data} | jq -r '.results[0].now | .temperature')

echo ${weather}
echo ${temperature}

树莓派以邮箱的方式发送天气内容

先安装sendemail

sudo apt-get install sendemail

将前面调用天气API获取到的天气信息编写到发送邮箱代码代码:

#!/usr/bin/env bash
city_name=**
private_key_number=**

data=$(curl "https://api.seniverse.com/v3/weather/now.json?key=${private_key_number}&location=${city_name}&language=zh-Hans&unit=c")

date=$(echo ${data} | jq -r '.results[0].last_update') 
weather=$(echo ${data} | jq -r '.results[0].now | .text')
temperature=$(echo ${data} | jq -r '.results[0].now | .temperature')

SERVER="smtp.qq.com:587" # 这里指发送服务器
FROM="**.com" # 发送邮箱
TO="**.com" # 接收邮箱通过命令行传入QQ号
SUBJECT="${date} 天气 "  # 主题
MESSAGE="今天天气:${weather}, 平均气温为:${temperature}" # 邮件文本内容
CHARSET="utf-8" # 字体
USERNAME="**.com" # 发送邮箱
PASSWD="**" # 发送邮箱密码,非qq密码,需自行在邮箱中查找
#FILE="$1" # 附件

sendemail \
    -f ${FROM}\
    -t ${TO}\
    -u ${SUBJECT}\
    -s ${SERVER}\
    -m ${MESSAGE}\
    -xu ${USERNAME}\
    -xp ${PASSWD}\
    -v -o message-charset=${CHARSET}
    # -a ${FILE}
    # 无法发送多文件 

上面的PASSWD如果是QQ邮箱,查找的界面如下:

运行脚本,界面如下:

接受邮箱成功受到邮箱信息:

设置自动发送

利用cron规划助手,让树莓派在特定的时间发出邮件提醒。

输入crontab -e进入编辑页面,如果我们要设置每天8.30发送邮件,那么增加

30 8 * * * bash 路径/发送右键的sh

运行后每天8.30(树莓派开机)将会给我们的邮箱推送天气情况!!

标签:树莓,天气,jq,助手,weather,邮箱,now,com
From: https://www.cnblogs.com/ambitionx/p/17674177.html

相关文章

  • 1775_树莓派3B键盘映射错误解决
    全部学习汇总:GitHub-GreyZhang/little_bits_of_raspberry_pi:myhackingtripaboutraspberrypi.入手树莓派3B之后用了没有多长时间,最初的这段时间感觉想让它代替我的PC机是不肯能的。性能先不说,我完全没有找到当初在我的笔记本上使用Linux的感觉。再加上各种各样的问题,这让......
  • 树莓派+Motion动作捕捉+腾讯云轻量服务器实现简易监控设备
    最近在读Vamei大神的《树莓派开始玩转linux》,当读到第13.4节的时候发现了Motion这个轻量级的监控软件,在树莓派上复现的时候遇到了一些问题,在解决的过程中看到了连接数据库的【入坑树莓派】motion点亮摄像头+frp的智能家居方案http://t.csdn.cn/U6Eou,觉得这个想法很不错,租借一台......
  • 树莓派-内核开发-说明 下载代码 编译 替换内核
    一、概述二、ubuntu里交叉编译1、获取交叉编译工具和源码2、配置编译环境变量2.1手动配置环境变量2.2自动配置环境变量3、配置config3.1使用源码里自带的config3.2获取当前树莓派的config4、编译5、挂载树莓派sd卡,并安装编译出的DIRECTLY到sd卡三、树......
  • 使用fetch获取wttr.in天气预报
    使用fetch获取wttr.in天气预报在https://wttr.in/可以看到当前ip的天气预报情况,在网页上想快速取得数据并组装为想显示的样式就需要自行处理了这里我们来尝试实现一个LED时间显示功能天气预报 样式表clock.css@font-face{font-family:'UnidreamLED';/*anametobeused......
  • iPhone卸载91手机助手
    1.下载个ifunbox,简单的学一学使用方法2.最後一次使用91,把你所有使用91安装的pxl格式文件删除掉~~~3.打开ifunbox,删除以下东西:    <1>进入「/Applications/目录」,删除Pandaspace.app    <2>进入「/var/mobile/Library/NetDragon/Applications/目录」,删除Pandaspace.a......
  • 浅谈视频汇聚平台EasyCVR视频平台在城市安全综合监测预警台风天气中的重要作用
    夏日已至,台风和暴雨等极端天气频繁出现。在城市运行过程中,台风所带来的暴雨可能会导致城市内涝等次生灾害,引发交通瘫痪、地铁停运、管网泄漏爆管、路面塌陷、防洪排涝、燃气爆炸、供热安全、管廊安全、消防火灾等安全隐患,影响城市的正常运行,甚至造成人员伤亡。面对台风带来的城市灾......
  • 智能天气预测,与Rainbow.ai共享每一天的美好
    天气状况对于我们的日常生活和计划有着重要影响。在这个充满变化的天气世界中,Rainbow.ai应运而生,基于人工智能技术的天气预测,帮助您随时了解天气变化,自信满满地制定您的计划。本文将深入介绍Rainbow.ai的作用以及其在天气预测领域的价值。1.Rainbow.ai服务简介Rainbow.ai是一款......
  • 串口助手
    https://github.com/cry1109/NbCommhttps://www.vofa.plus/docs/learning/start/quick_startJscope你买盗版jlink用hss模式也能干到1khz,串口压根达不到这个速度。......
  • 实验2:天气查询小程序
    一、实验目标掌握服务器域名配置和临时服务器部署;掌握wx.request接口的用法。二、实验步骤首先到和风天气开发服务~强大、丰富的天气数据服务(qweather.com)官网注册账号。进入控制台,创建项目。设置项目名称,选择订阅为“免费订阅”,设置KEY为“WebAPI”并填写名称。......
  • 移动软件开发--天气查询小程序
    一、实验目标1、掌握服务器域名配置和临时服务器部署;2、掌握wx.request接口的用法。二、实验步骤1.准备工作1.1API秘钥申请​ 登录和风天气官方网址https://www.qweather.com/注册并记录个人认证key1.2服务器域名配置​ 本次实验需要查询城市ID与该城市所对应天气,故需......