- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
用树莓派玩一把室内环境监测
录入:edatop.com 点击:
最近在研究怎么在树莓派上接入各种传感器,初步完成了气压温湿度还有pm2.5/pm10的检测功能,有些配置上写出来可能会比较复杂,分享下。
首先说明下,基于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照猫画虎接上去):
系统:
我用的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)。
首先说明下,基于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照猫画虎接上去):
系统:
我用的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)。
上一篇:电感失效导致路由“感冒”
下一篇:三极管判定的口诀技巧详细讲解