疫情显示器【shell脚本版】

该项目显示了2020年新冠病毒疫情的实时情况,免去了罗马烟花筒君每天早上起来就打开知乎查看疫情的步骤。

罗马烟花筒

喜欢

3495
浏览
1
喜欢

> 更多图片

项目状态:填坑进行中
开放度:公开
所属分类:电子
发布时间:2020-02-04
最近更新:2021-03-12

标签

描述

#---------------------------------------------------
I. 流程简介:
想要的数据:中国大陆疫情的总体信息
知乎html->树莓派->arduino->lcd显示屏
#---------------------------------------------------
II. 主体程序步骤
1. 在树莓派上利用shell脚本进行数据的获取和数据处理
2. 利用python的串口操作库建立树莓派与arduino之间的通信
3. arduino串口接收到数据后进行字段判断分割处理得到疫情信息
4. arduino驱动lcd屏显示目前的疫情
#---------------------------------------------------
III. 其他拓展:
1. 树莓派端筛选存储实时的数据
2. 利用存储的数据和gnuplot进行简单的画图
#---------------------------------------------------
IV. 下一步计划(项目)
1. arduino端加入传感器(dht11温湿度等)、执行器(喇叭、rtc时钟)
2. 树莓派对温湿度等传感器数据的初步筛选存储并利用:
-> 基于c语言的数据库操作, 基于gnuplot的简单数据可视化
3. 将数据发送给云服务器端进一步数据处理并进一步利用:
-> html, php访问数据库,网页动态展示数据
4. 求建议!
#----------------------------------------------------


详细说明

V.详细说明
https://mc.dfrobot.com.cn/thread-302816-1-1.html#pid442449

VI. 变动情况记录

2月13日傍晚 完善了c语言保存数据时的策略,完善代码逻辑使得错误数据不被保存;新增图片自动生成脚本,默认每三小时生成一张图片;下一步考虑:动态显示。对了,之前m4版本没有加入之前记录的数据,所以较小。现在是把之前所有的数据都加进去了。

2月9日晨 睡醒突然想起来,如果数据生成错误无法避免,不妨加入判断使得错误的数据不要保存,像传感器之类的数据也会有噪音,而此处的错误数据产生的原因可能有两点:

**一是无线网络问题,本来在二楼信号就比较弱,wget长时间未接收到数据包便自动退出,但因为-O参数的原因导致最初的文件已被覆盖,在未下载完成的情况下传递给后面sed、grep命令的文件实为空文件,加之之前偷懒用于保存数据的c程序中数据结构没有初始化,故fsanf格式化输入字段后得到之前的错误数据--比较像系统打印未赋值变量的值(不知道是否可以在最初端加入判断,wget返回值?);

二是前辈指出的grep的标准输入匹配到二进制、sed对含有中文输入的文件会出现卡死等情况导致。
目前解决:因错误产生数据均有规律可循,现已尝试加入判断:即若显然是错误数据,则丢弃不保存,并用上一次保存的数据覆盖python串口发送程序的文件。**

测试完成将后上传。

2月8日亥(hai)时(21-23) 最新modified 4版本已上传,目前对lcd显示无影响,但是数据出错会对gnuplot的画图有影响。目前尚未加入“数据若生成错误就默认生成上一次的数据“,过几天跟进。先恶补知识!文件夹中无用重复的内容进一步删除。

2月8日戌(xu)时(19-21) 还是不行。但发现家中无线网断了一会儿,发现出现和先前一样的数据。
打算停止一会儿,补习一下相应linux知识再继续。

2月8日午时(11-13) 发现程序卡死不运行,但目前未见有数据保存不正确。再推测为源文件与本地编码格式不同导致的卡死,调试运行中。
grep, sed -> LC_ALL=C grep, sed 环境变量去除本地编码设置

2月8日晨 发现数据保存仍有错误,判断并非fscanf输入格式问题。再推测为 grep命令匹配到二进制文件导致数据无法生成所造成的原因,待测试运行完成后上传。
注:标准输入匹配到二进制文件 grep -> grep -a 将二进制文件以 text 文件的方式搜寻数据
https://www.cnblogs.com/f-ck-need-u/p/7499309.html

2月7日晚 修改错误点,初步判断为fscanf输入以空格为分隔符时的造成的错误。待测试完成运行后上传。

2月7日晨 发现错误,存储数据不正确,测试完成后更新上传。

2月6日晚 之前上传的程序中有个地方错误,存储数据间隔非60s 现已修改重新上传

2月6日晚 更新了脚本筛选程序
整理了文件夹,新上传的代码中新增了README

2月5日下午,知乎源html变了,需要重新修改,修改完成后上传
p.s.知乎加入了数据可视化功能 人画得可真好!我得继续跟进


VII. 其他
还有位同学的项目@RaspiSQH是用python和oled
https://make.quwj.com/project/196

「豆知識」

LCD (Liquid Crystal Display) 液晶显示器
OLED (OrganicLight-Emitting Diode) 有机电激光显示
有机发光半导体(OrganicElectroluminesence Display)
Markdown语法..... LaTex?
链接表


文件库

2020virus_monitor.tar.bz2
旧版本,文件夹杂乱 [482587 Bytes at 2020-02-04, 4 次下载]

Virus_Monitor_m3.tar.bz2
数据保存有问题的版本 [172000 Bytes at 2020-02-07, 1 次下载]

Virus_Monitor_m4.tar
Generally is fine [23040 Bytes at 2020-02-08, 1 次下载]

Virus_Monitor_m5.tar
[2823168 Bytes at 2020-02-13, 4 次下载]



教程

组件清单
  • 树莓派2B+ × 1
  • Arduino Uno × 1
  • lcd显示屏 (hd44780 1602) × 1