The First DIY------基于树莓派3代实现定时播放天气预报功能

本文记录了使用树莓派3代实现定时播放天气预报的过程,包括选取和风天气API,处理JSON数据,进行语音合成,并通过树莓派设置定时任务。代码示例展示了如何解析天气数据并合成语音。
摘要由CSDN通过智能技术生成

 

前段时间偶尔发现了新大陆

在论坛上面瞎晃的时候,忽然之间点开一个网页,秒了一眼之后,感觉,哇,瞬间开启新大陆啊!那就是今天的主角---树莓派。看到上面的大佬们,一个个功能的DIY,我瞬间崩塌了,如醍醐灌顶一样。什么

  • 定时播放各种声音,音乐,朗诵。
  • 搭建个人私有云。
  • 通过外网访问家里的电脑啊,这那的。
  • 远程控制空调啊,什么的。
  • 比较高级的实时监控战车,这个比较牛X了就

尘归尘,土归土

兴奋之余,还是觉得先从一个小功能开始吧,基于一些功能需要拓展硬件的需求,所以现决定先从天气预报开始们,都是软件的东西。主要是怕我自己买了那么多的东西用来吃灰!那就有点浪费了。好了,废话到此,下面开始记录过程

 

 

  1. 选取天气预报接口
  2. 处理接口数据
  3. 语音合成MP3文件
  4. 树莓派安装音频播放器
  5. 树莓派设置定时任务

 

 

 

1.自己玩,就选了个免费的--和风天气。安装官方给的文档一步步来就好。麻烦的一点是处理返回的json串的时候,不熟练所以用了最笨的方法,代码比较冗长,望各位见谅见谅(喷轻点),后面会做精简和优化的!

 

 String result = "";
        BufferedReader in = null;
        try
        {
            String urlNameString = "https://free-api.heweather.com/v5/weather?city=北京&key=4a77eab0ed90418180b33b4cabf74b12";
            URL realUrl = new URL(urlNameString);
            URLConnection connection = realUrl.openConnection();
            // 连接,读取超时时间设置
            connection.setConnectTimeout(4000);
            connection.setReadTimeout(15000);


            connection.connect();
            in = new BufferedReader(new InputStreamReader(
                    connection.getInputStream()));
            String line;
            while ((line = in.readLine()) != null)
            {
                result += line;
            }


        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
        finally
        {
            try
            {
                if (in != null)
                {
                    in.close();
                }
            }
            catch (Exception e2)
            {
                e2.printStackTrace();
            }
        }

//处理返回数据,由于JSONObject和百度语音合成的JSONObject重复,只能先这样
        com.alibaba.fastjson.JSONObject parseObject = JSON.parseObject(result);
        Object object = parseObject.get("HeWeather5");


        String jsonString = JSON.toJSONString(object);
        String substring = jsonString.substring(1, jsonString.length() - 1);


        com.alibaba.fastjson.JSONObject api = JSON.parseObject(substring);
        Object object2 = api.get("aqi");
        String jsonString2 = JSON.toJSONString(object2);
        com.alibaba.fastjson.JSONObject parseObject2 = JSON.parseObject(jsonString2);
        Object obj3 = parseObject2.get("city");
        String jsonString3 = JSON.toJSONString(obj3);
        com.alibaba.fastjson.JSONObject parseObject3 = JSON.parseObject(jsonString3);
        // PM2.5
        Object obj4 = parseObject3.get("pm25");
        String PM25 = JSON.toJSONString(obj4).substring(1,
                JSON.toJSONString(obj4).length() - 1);
        // 空气质量
        Object obj5 = parseObject3.get("qlty");
        String quailty = JSON.toJSONString(obj5).substring(1,
                JSON.toJSONString(obj5).length() - 1);
        Object object3 = api.get("basic");
        String jsonString4 = JSON.toJSONString(object3);
        com.alibaba.fastjson.JSONObject parseObject4 = JSON.parseObject(jsonString4);
        // 所在城市
        Object obj6 = parseObject4.get("city");
        Stri

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DE-Marciya

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值