数码之家

 找回密码
 立即注册
搜索
查看: 13146|回复: 89

[Arduino] 拒绝限制,重新编写LED彩屏时钟的天气接收部份,改为网页爬取天气信息。

    [复制链接]
发表于 2019-8-24 18:06:07 | 显示全部楼层 |阅读模式

爱科技、爱创意、爱折腾、爱极致,我们都是技术控

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 落叶风 于 2019-8-24 18:09 编辑

        原制作的自动授时128*64LED彩屏天气万年历时钟https://www.mydigit.cn/forum.php ... 7504&extra=page%3D1的天气是接收http://www.webxml.com.cn这个网站的,免费用户每天只有几十次读取,有时会出现维护时把免费用户给停了,而且数据与手机及当地的天气对比,感觉准确度不够高,所以现在一直想找合适的天气网站,不用注册的。前些时间找了个www.tianqi.com,发现还可以,但网页的数据量太大,ESP8266没法处理,发贴求助https://www.mydigit.cn/forum.php ... 3347&extra=page%3D1,有坛友sadate提供简单的连接地址,发现数据量不多,可以处理,但信息太少。后来另一坛友lyy-cy发天气时钟贴https://www.mydigit.cn/forum.php ... 8181&extra=page%3D1,在它的贴中找到这个天气网站连接地址的一些规律,发现不同ID输出不同的数据,可以用ESP8266读多次数据,重新组织天气数据输出方式来实现。所以昨晚就找合适的连接地址,发现有些比较合适地址会引起ESP8266重启,不知是什么原因,后选择ID为3的地址及ID为102的地址比较合适,ID为3的用于三天的天气数据http://i.tianqi.com/index.php?c=code&a=getcode&id=3&py=beijing,ID为102为当前的数据http://i.tianqi.com/index.php?c=code&a=getcode&id=102&py=beijing
1221.jpg
1222.jpg
重写Arduino程序,并更新到LED时钟,由于本次更新是采用网页爬取天气信息,如网页发生变化,这程序就会失效,所以各位看情况决定更新。
1223.jpg
1226.jpg
程序需要根据自己的实际情况输入WIFI参数及地名,连接地址最后的拼音就是天气地点,如下图。
1224.jpg
1225.jpg
以下为本人的钟写入程序。
IMG_20190824_173145_1.jpg
IMG_20190824_173926_1.jpg
由于这天气网站不同ID有不同数据,如有需要可以自己改一下本程序,显示更多内容,由于本时钟程序限制,只能接收380个字节,只要发送数据不要超就行了,开头(风向前的文字)及结束(空格及星号)不要动,数据中间不能有星号就行了,注意汉字UTF-8是占3个字节的。
显示内容少了空气质量,增加了明天后天的风向,由于程序刚写好,可能有BUG,或有不好用的情况,仅供参考。
mydigittimetanqi1.zip (2.37 KB, 下载次数: 158)





打赏

参与人数 9家元 +210 收起 理由
jf201006 + 20 謝謝分享
亲爱的混蛋 + 20 高手,感谢分享
家睦 + 50
dragonlt + 20 優秀文章
维超 + 20 謝謝分享
hfsp + 20 優秀文章
stdzlqz + 20 優秀文章
200birds + 20 優秀文章
williamgarci + 20 謝謝分享

查看全部打赏

发表于 2019-8-24 18:18:24 | 显示全部楼层
建议楼主试一试micropython,处理这种网络数据,不要太……
回复 支持 反对

使用道具 举报

发表于 2019-8-24 18:55:10 | 显示全部楼层
如果可以的话建议访问手机版的天气网站,手机版的网站比PC版要简洁,数据量会少很多,爬取也会容易一些。有的网站是把www改成wap,有的是www改m,实在不知道网址就用手机访问一下,然会复制过来,这也是一个爬虫的小技巧。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-25 11:08:49 | 显示全部楼层
lyy-cy 发表于 2019-8-24 18:18
建议楼主试一试micropython,处理这种网络数据,不要太……

用来玩的,能用就行,是因为ESP8266用C编程太复杂才学一下Arduino(它有8266的示例),这程序就是在它的示例改的,已过了努力学习的阶段,懒了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-25 11:09:57 | 显示全部楼层
ifm 发表于 2019-8-24 18:55
如果可以的话建议访问手机版的天气网站,手机版的网站比PC版要简洁,数据量会少很多,爬取也会容易一些。有 ...

刚查看过手机地址,发现数据量也超多,超出处理能力了。
回复 支持 反对

使用道具 举报

发表于 2019-8-25 13:40:15 | 显示全部楼层
好评,这个方法不错。
回复 支持 反对

使用道具 举报

发表于 2019-8-30 20:53:49 | 显示全部楼层
这个要重新下载来更新一下
回复 支持 反对

使用道具 举报

发表于 2019-8-30 22:10:57 | 显示全部楼层
http://flash.weather.com.cn/wmaps/xml/xian.xml ,这个地址数据也简单,我现在取的是这个

http://t.weather.sojson.com/api/weather/city/101030100  这个地址我没找对应的地区 ,在这个贴子有https://www.sojson.com/blog/305.html
回复 支持 反对

使用道具 举报

发表于 2019-8-31 14:10:04 | 显示全部楼层
我的刷完这个程序 8266无限重启
回复 支持 反对

使用道具 举报

发表于 2019-8-31 20:45:49 | 显示全部楼层
是不是天气网站又关了呢?又接收不到天气了。:smile:
回复 支持 反对

使用道具 举报

发表于 2019-9-1 10:46:22 | 显示全部楼层
回复 支持 反对

使用道具 举报

发表于 2019-9-3 16:23:39 | 显示全部楼层
定时变换颜色没人需要吗?这么多人做出来了都是用一种颜色方案吗:dizzy:
回复 支持 反对

使用道具 举报

发表于 2019-9-15 16:06:08 | 显示全部楼层
为楼主这种精益求精的精神点赞。希望楼主再接再励,开发出更好的产品,我们誓将追随。
回复 支持 反对

使用道具 举报

发表于 2019-10-6 10:36:01 | 显示全部楼层
会编程就是好
回复 支持 反对

使用道具 举报

发表于 2019-10-8 14:37:10 | 显示全部楼层
支持,能把WIFI名和密码通过手机更改就更完美了!
回复 支持 反对

使用道具 举报

发表于 2019-10-8 21:45:38 | 显示全部楼层
changhai 发表于 2019-10-8 14:37
支持,能把WIFI名和密码通过手机更改就更完美了!

自已加上smartconfig就可以实现手机发送WIFI密码:smile:
回复 支持 反对

使用道具 举报

发表于 2019-10-8 22:07:41 来自手机浏览器 | 显示全部楼层
辛苦了,多谢分享
回复 支持 反对

使用道具 举报

发表于 2019-10-11 09:27:45 来自手机浏览器 | 显示全部楼层
yznj 发表于 2019-10-8 21:45
自已加上smartconfig就可以实现手机发送WIFI密码

手机配网具体怎么操作呢
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-10-11 10:06:25 | 显示全部楼层
以下为更新的8266程序,由于原程序对字符判断的取值有问题,引起当温度颜色发生变化时,出现数据出错,而且取当前参数时不是知网页的编码类型发生变化还是其它原因,没法定位需提取的数据,引起输出数据过多,超过单片机接收的数据量,由于时钟单片机程序没有对接收数据限制,导致有时引起时钟无故重启。
mydigittimetanqi191010.zip (2.58 KB, 下载次数: 116)

打赏

参与人数 2家元 +40 收起 理由
stdzlqz + 20 已更新,正常了,不再复位。
维超 + 20 謝謝分享

查看全部打赏

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2024-3-29 22:45 , Processed in 0.124800 second(s), 13 queries , Redis On.

Powered by Discuz!

© 2006-2023 smzj.net

快速回复 返回顶部 返回列表