树莓派玩一把室内环境监测
最近在研究怎么在树莓派上接入各种传感器,初步完成了气压温湿度还有pm2.5/pm10的检测功能,本来觉得有些配置上写出来可能会比较复杂,但是看到值友casatift几篇原创的受欢迎程度,决定也出来分(pian)享(jin)下(bi)。
首先说明下,基于arduino的方案,从性价比上来说相对树莓派要高很多,毕竟一个树莓派200大洋,一个arduino的板子才1、20来块,如果只是为了监测监测市内的温湿度空气质量啥的,其实还是arduino这种小板子性价比高。那么又想省钱又想省事的话,淘宝还有不少商家拿攀藤g5+单片机搭出来的pm2.5检测的成品,1、200也不贵。我写的这篇东西,更适合已经有了或者将要买树莓派的值友。
树莓派好在做这种小的电子diy时候写代码方便,c、python或者其他的语言,只要linux上有的、有gpio相关的包,都可以用,会什么用什么。而且可以在电视上放放视频、实现简单的nas、http服务器之类的功能。外设也和pc基本兼容。哪天玩腻了还可以干点别的东西。
首先完成体照片镇楼:
采购清单
树莓派2:
200左右,要是图便宜的话,可以收个二手一代树莓派,100多应该能拿下,其他的像橙子派之类的跟风产品,也有gpio口,自称和树莓派兼容,不知道实际如何,价格90多。
GY-68模块:
芯片也就是bmp180,监测气温气压。淘宝大概7-13块
SHT20:
监测气温、湿度,25块左右,这个记得买模块sht20只是上面的芯片名称。
攀藤g5:
检测pm2.5/pm10,用的是激光散射的方式,相对比较准确, 110-130左右的样子。
LCD1602模块:
我是跑中关村的中发市场买的,蓝白屏(下面哪种,蓝底白字,上面的是绿底,黑字)带背光3.3v,18块,回来看淘宝才发现便宜点,买时候注意是5v还是3.3v的,我是因为买的扩展板只能插3.3v的。
杂物:
面包板、公对母、公对公杜邦线,加一块10快钱吧,淘宝有卖套装的。如果要装lcd1602,而且不用扩展板,记得再买个10k的电位器。
===========================================================
上面是必选物品,下面是可选物品:
GY-30:
测光强的,说实话没多大用,就是为了个好玩,8、9块钱
DVK512扩展板:
买这个是为了接线方便(尤其是lcd1602,3.3V的lcd1602直接插上就可以),i2c总线接口和uart接口也单独引出了,接线方便。另外集成了时钟电路、二极管小灯,usb转串口之类的功能。
性价比一般80块,当时也是头脑一热,自己面包板搭也是可以的,买这个就是图个最后样子好看点,另外就是树莓派1代不推荐,因为2带gpio是40针,一代只有26针,没法直接插上,还得用杜邦线引出。
免驱wifi网卡:
一般卖树莓派的店家都有,插上之后配好系统里配好路由就能用,20+。
树莓派2的外壳:
15、6块,也是买树莓派时候可以捎上一个。
===============
连线:
首先是传感器部分,因为我选择的传感器就两种接口,i2c和串口的,所以接线比较简单,上图:
然后是LCD1602,这个分两种情况,一个是买了扩展板的,直接把插到对应的插槽里就行,如果没买的话自己搭,参考这个(注意这是5v的图,千万别把3.3v的lcd1602照猫画虎接上去):
(来自CSDN 链接)
系统:
我用的rasbian,怎么刷系统、配网络之类的不说了,可以参考这个教程:链接
说几个注意的地方:
1、要启用i2c接口
登陆后运行raspi-config
Advanced Options->I2c->YES
之后重启
2、安装i2c-tools
apt-get install i2c-tools
安装好后运行i2cdetect -y 1(树莓派1应该是改成0)
应该有类似下面的内容出现,其中的23、40、77是应该出现的,没有的话说明接线图左边的一溜有没接对的,其中23是GY-30, 40是sht20,77是GY-68:
3、配置串口,以方便读取攀藤g5的数据
因为树莓派就一个串口,默认貌似开了内核串口输出,这样就没法用来读攀藤g5的数据了,所以需要关闭。
修改/boot/cmdline.txt里面的内容为:
dwc_otg.lpm_enable=0 rpitestmode=1 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
保存,重启。
完成后输入命令cat /dev/ttyAMA0 -b -v
之后应该看到有几行乱码出现:
这样就说明pm2.5的传感器也连接好了,现在就可以上代码了,我把我python写的脚本开源出来,方便大家(里面有些程序配置的说明,参考就可以)
因为要长期运行需要装个supervisor 达到自动启动脚本守护的功能:
apt-get install supervisor安装
之后在/etc/supervisor/conf.d/里新建个配置文件,内容如下
[program:yeelink_poster.py]
command=python /自己的脚本路径/yeelink_poster.py
autorstart=true
directory=/自己的脚本路径/
autorestart=true
startsecs=10
startretries=36
redirect_stderr=true
stdout_logfile=/自己的脚本路径/log.txt
stderr_logfile=/自己的脚本路径/err.txt
之后自己在这个页面上注册个账号,然后添加设备传感器,之后把设备id、传感器id、api_key都填入python代码里就行
至此大功告成。
然后其实做之前也是不大了解这些东西的,但是实际做起来发现,只要把线连好了,网上大把的开源代码可供参考,我的代码里几个读取传感器数据的代码都是参照别人开源的改来的。现在互联网发达,自己diy些东西方便太多了。
如果有条件,后续用wifi插座或者用继电器模块diy一下,就可以相对智能的控制家里的加湿器、还有一些低端没有传感器的净化器(譬如ffu)。
附上一些参考资料:
Somama
校验提示文案
Mark桑
校验提示文案
多少买点吧
校验提示文案
pear28
校验提示文案
锅小鲜
校验提示文案
卧龙大熊猫
校验提示文案
qsinap
校验提示文案
knaan
校验提示文案
tosei0714
校验提示文案
含情脉脉林老师
校验提示文案
电灯泡酱
校验提示文案
面线糊
校验提示文案
ZM小透明
校验提示文案
力度伸
校验提示文案
guaiguaixxx
校验提示文案
王者兄弟连
校验提示文案
jiayongjian
校验提示文案
Cambrian
校验提示文案
Extended_kalman
校验提示文案
dots
校验提示文案
卧龙大熊猫
校验提示文案
值友5199053909
校验提示文案
值友3063537022
校验提示文案
锅小鲜
校验提示文案
pear28
校验提示文案
xxyjj
校验提示文案
阿猫阿狗丶
校验提示文案
ITKILIGN
校验提示文案
永远的那条雨巷
校验提示文案
多少买点吧
校验提示文案
Mark桑
校验提示文案
pippenpp
校验提示文案
酷寒
校验提示文案
dots
校验提示文案
Extended_kalman
校验提示文案
Cambrian
校验提示文案
Mark桑
校验提示文案
Somama
校验提示文案
jiayongjian
校验提示文案
王者兄弟连
校验提示文案