Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/rimochan/raspberry-pi-bedroom-monitor

基于树莓派的多功能寝室监控系统
https://github.com/rimochan/raspberry-pi-bedroom-monitor

Last synced: 7 days ago
JSON representation

基于树莓派的多功能寝室监控系统

Awesome Lists containing this project

README

        

# 基于树莓派的多功能寝室监控系统

这个标题看起来就很像大学生的课设,但是其实不是,因为我是小学生,所以是小学生的课设。

大家在寝室里经常会遇到一些难题,比如寝室太冷、太热、太吵,然后你要和舍友理论的时候,舍友却说「不是和之前差不多吗」。

好在聪明的莉沫酱发明了多功能寝室监控系统,有了寝室监控系统记录下这些数据,以后你就可以和舍友说「你看,这个星期的温度比上星期高了0.5度」,然后舍友就会说「哦,那就不用开空调了」,然后你就可以安心的睡觉了。

## 材料

- 树莓派4B 1个 (价格 ¥1000)
- 16G以上的SD卡 1个 (价格 ¥50)
- 传感器 (可选)
- 微雪的传感器组 1个 (价格 ¥200)
- TSL25911FN
- BME280
- ICM20948
- LTR390-UV-1
- SPG40
- SCD40 1个 (价格 ¥100)
- 杜邦线若干 (价格 ¥2)
- 麦克风 1个 (可选) (价格 ¥10)

然后因为树莓派现在很贵,也可以买win10平板加usb转GPIO的方式来实现,还白赚了一个平板,不过我没有试过,所以也不知道会不会有坑。

## 监控指标

### 空气

空气指标包括温度、湿度、大气压、二氧化碳浓度、VOC浓度。

- 人的活动会产生二氧化碳和VOC,所以这两个指标可以用来判断舍友是否在房间里。

- 由于VOC是由味道产生的,所以可以根据VOC周期性的变化计算舍友多少天没有洗澡了。

- 此外,二氧化碳浓度过高是导致舍友变成傻子的重要原因,所以这个指标也可以用来判断舍友是不是傻子。

### 场

场指标包括光照强度、紫外线强度、声音、磁场、加速度。

- 光照强度可以用来统计寝室每天关灯上床的时间。

- 紫外线强度在室内没有什么作用,不过因为紫外光很难透过普通玻璃,所以可以判断窗户是不是开着的。

- 声音的频谱可以用来推理当时发生了什么事情,比如说开关门的声音是一条很高的竖线,洗衣机的声音是周期性的短线。

- 地球上的加速度通常都是1G,如果你发现你测出来的值不是1G,那就说明你是在异世界上大学。

### 网络

网络指标包括WiFi信号、WiFi频道、蓝牙信号、局域网主机ping时间、互联网http get时间。

- WiFi信号可以用来诊断网络问题,如果发现它出现异常,那就得及时检查路由器是不是被外卖的盒子埋住了。

- 如果你的寝室的WiFi频道和隔壁寝室的WiFi频道重合了,会导致互相干扰,这时候就需要你们去换个WiFi频道。

- 局域网主机ping时间可以帮你和你的舍友找手机,如果手机ping的延迟很大,那就说明手机在厕所里,如果ping不通,那就说明手机在教室里。

- 互联网http get时间可以在你的舍友过来找你说「今天怎么网这么卡」的时候,把责任推卸给运营商。

然后这里有一个样例可以看: [监控面板的样例](https://snapshots.raintank.io/dashboard/snapshot/QO0xSixMZMV5AIatOAveoIFSnpBgOP8F)

## 使用方法

1. 首先要把树莓派和传感器组装好,并且连上网。

2. 把这个仓库clone到树莓派上。

3. 执行 `pip install -r requirements.txt`

这里会有几个库装不上,这是正常的,网上搜一下就能解决,他们有说要apt install哪些但是我已经忘记了……

4. 文件夹里面有5个监控程序,分别是`监控传感器`、`监控声音`、`监控系统`、`监控蓝牙`、`监控网络`,可以直接用python3命令启动,你需要监控哪些就开哪些吧。

(如果你知道怎么在本地起Grafana,那后面就可以跳过了)

5. 接下来要去注册一个Grafana Cloud的帐号。

6. 进到你的Grafana项目主页点击「+ Connect data」添加一个数据源,选择「Hosted Prometheus metrics」。

7. 接下来根据网页上的提示,一步步填写即可。其中有一个它让你复制配置到本地的,那个地方有`- targets: ['localhost:9100']`,得把它换成`- targets: ['localhost:9191', 'localhost:9192', 'localhost:9193', 'localhost:9194', 'localhost:9195']`。

8. 添加好数据源之后,新建一个Dashboard,但不是空白的,而是选择「Import」,然后把`model.json`里的内容粘贴进去,点击「Load」即可。

## 结束

就这样,大家88,我要去和舍友一起睡觉了。