node 控制 树莓派做的天气闹钟
来源:互联网 发布:武汉纵横网络 编辑:程序博客网 时间:2024/05/16 01:19
node 控制 树莓派做的天气闹钟
在成都上班,下雨天堵车,迟到的概率会很大。
正好手上有一块树莓派 ,做了一个晴雨闹钟。
下雨天 早上 7:00叫我起床
晴天 早上 7:30叫我起床
将自己喜欢的歌曲放在一个文件夹中,随机播放,防止听腻
以下是代码
const UID = "U785B76FC9"; // 测试用 用户ID,请更换成您自己的用户IDconst KEY = "4r9bergjetiv1tsd"; // 测试用 key,请更换成您自己的 Keylet LOCATION = "双流"; // 除拼音外,还可以使用 v3 id、汉语等形式let Api = require('./lib/api.js');let api = new Api(UID, KEY);let rainRegexp = /雨/;let exec = require('child_process').exec;let fs = require("fs");let schedule = require("node-schedule");function alarmClockTime(isRain) { let today = new Date(); let Y = today.getFullYear(); let M = today.getMonth(); let D = today.getDate(); let week = today.getDay(); if (week === 0 || week === 6) { return new Date(Y, M, D, 9, 30, 0); } if (isRain) { return new Date(Y, M, D, 7, 0, 0); } return new Date(Y, M, D, 7, 30, 0);}//调用音乐function playMusic() { let shellStr; let musicArray; try { musicArray = fs.readdirSync("/media/hd/music/alarm/"); let fileNmae=musicArray[Math.floor(musicArray.length * Math.random())].replace(/ /g,"\\ "); shellStr = "mplayer /media/hd/music/alarm/" +fileNmae; } catch (err) { shellStr = "mplayer /media/hd/music/qiyue.mp3"; } console.log(shellStr); exec(shellStr, function (err, data) { if (err) { console.log(err); return; } console.log("播放完成"); })}function setAlarmClock(time) { schedule.scheduleJob(time, function () { playMusic(); });}/** * 获取天气信息 */function getWetherInfo() { let getNowWeather = api.getWeather("/weather/now.json", { location: LOCATION }); let getNextWeather = api.getWeather("/weather/daily.json", { location: LOCATION }); Promise.all([getNowWeather, getNextWeather]).then(function (data) { let nowWeatherText = data[0].results[0].now.text; let dayWeatherText = data[1].results[0].daily[0].text_day; console.log(new Date() + " :" + dayWeatherText); if (rainRegexp.test(nowWeatherText) || rainRegexp.test(dayWeatherText)) { //当天有雨 提前设置闹钟 setAlarmClock(alarmClockTime(true)); } else { //没有雨 延后设置闹钟 setAlarmClock(alarmClockTime()); } }).catch(function (err) { console.log(err); //如果保存 setAlarmClock(alarmClockTime(true)); });}schedule.scheduleJob("0 50 6 * * *", function () { getWetherInfo();});
在成都上班,下雨天堵车,迟到的概率会很大。
正好手上有一块树莓派 ,做了一个晴雨闹钟。
下雨天 早上 7:00叫我起床
晴天 早上 7:30叫我起床
将自己喜欢的歌曲放在一个文件夹中,随机播放,防止听腻
在成都上班,下雨天堵车,迟到的概率会很大。
正好手上有一块树莓派 ,做了一个晴雨闹钟。
下雨天 早上 7:00叫我起床
晴天 早上 7:30叫我起床
将自己喜欢的歌曲放在一个文件夹中,随机播放,防止听腻
阅读全文
0 0
- node 控制 树莓派做的天气闹钟
- node 控制 树莓派做的天气闹钟
- 天气控制
- node的内存控制
- Android开发之实现对闹钟Alarm的控制
- Android开发之实现对闹钟Alarm的控制
- 树莓派3 打造定时播报电台音乐闹钟、天气等
- 基于node.js的ARDrone控制
- node版本控制n的使用
- node权限控制模块node_acl的应用
- 怪诞可爱的闹钟
- 我的小闹钟
- 闹钟的实现代码
- 闹钟里的母爱
- Android闹钟的实现!
- Android闹钟的实现!
- 进程版本的闹钟
- 线程版本的闹钟
- [51NOD] 1028 大数乘法 V2 [NTT]
- Maven学习记录(1)——Maven项目中导入本地自定义jar包
- csv--->hive
- 动态规划问题
- Java8 HashMap源码分析
- node 控制 树莓派做的天气闹钟
- 功夫小子实践开发-英雄实体类的基本分析和实现
- HDU5880(AC自动机)
- Java 对象集合按指定要求排序
- [SDUT](2107) 图的深度遍历 ---DFS(图)
- 大数据基础概念(1)
- 在树莓派上使用LimeSDR
- 占楼
- 【词汇详解】事务详解