从MH-Z19传感器中读取CO 2浓度并处理它。
连接RPI&MH-Z19 AS:
以下是电缆的示例,但是您可以在RPI上自由使用其他5V和0V引脚。
pi@raspberrypi:~/mh-z19 $ gpio readall
+-----+-----+---------+------+---+---Pi B+--+---+------+---------+-----+-----+
| BCM | wPi | Name | Mode | V | Physical | V | Mode | Name | wPi | BCM |
+-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+
| | | 3.3v | | | 1 || 2 | | | 5v | | |
| 2 | 8 | SDA.1 | IN | 1 | 3 || 4 | | | 5v | | | <---- Vin
| 3 | 9 | SCL.1 | IN | 1 | 5 || 6 | | | 0v | | | <---- Gnd
| 4 | 7 | GPIO. 7 | IN | 1 | 7 || 8 | 1 | ALT0 | TxD | 15 | 14 | <---- RxD
| | | 0v | | | 9 || 10 | 1 | ALT0 | RxD | 16 | 15 | <---- TxD
| 17 | 0 | GPIO. 0 | IN | 0 | 11 || 12 | 0 | IN | GPIO. 1 | 1 | 18 |
| 27 | 2 | GPIO. 2 | IN | 0 | 13 || 14 | | | 0v | | |
| 22 | 3 | GPIO. 3 | IN | 0 | 15 || 16 | 0 | IN | GPIO. 4 | 4 | 23 |
| | | 3.3v | | | 17 || 18 | 0 | IN | GPIO. 5 | 5 | 24 |
| 10 | 12 | MOSI | IN | 0 | 19 || 20 | | | 0v | | |
| 9 | 13 | MISO | IN | 0 | 21 || 22 | 0 | IN | GPIO. 6 | 6 | 25 |
| 11 | 14 | SCLK | IN | 0 | 23 || 24 | 1 | IN | CE0 | 10 | 8 |
| | | 0v | | | 25 || 26 | 1 | IN | CE1 | 11 | 7 |
| 0 | 30 | SDA.0 | IN | 1 | 27 || 28 | 1 | IN | SCL.0 | 31 | 1 |
| 5 | 21 | GPIO.21 | IN | 1 | 29 || 30 | | | 0v | | |
| 6 | 22 | GPIO.22 | IN | 1 | 31 || 32 | 0 | IN | GPIO.26 | 26 | 12 |
| 13 | 23 | GPIO.23 | IN | 0 | 33 || 34 | | | 0v | | |
| 19 | 24 | GPIO.24 | IN | 0 | 35 || 36 | 0 | IN | GPIO.27 | 27 | 16 |
| 26 | 25 | GPIO.25 | IN | 0 | 37 || 38 | 0 | IN | GPIO.28 | 28 | 20 |
| | | 0v | | | 39 || 40 | 0 | IN | GPIO.29 | 29 | 21 |
+-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+
| BCM | wPi | Name | Mode | V | Physical | V | Mode | Name | wPi | BCM |
+-----+-----+---------+------+---+---Pi B+--+---+------+---------+-----+-----+
全套包括以下内容:
安装完整集,从发布中下载
git clone https://github.com/UedaTakeyuki/mh-z19.git
然后,到达文件夹并发出setup.sh *
./setup.sh
此脚本中进行了必要的设置,包括串行端口启用。
对于Python 2.x
sudo pip install mh_z19
对于Python 3.x
sudo pip3 install mh_z19
如果您将使用它的root许可,请在没有sudo的情况下使用以下方式致电PIP:
对于Python 2.x
pip install mh_z19
对于Python 3.x
pip3 install mh_z19
每个Raspberry Pi模型之间的界面差异在此模块内解决。例如,串行设备名称是Raspberry Pi 3和旧模型之间的差异,但是MH-Z19模块会自动检测模型并从适当的串行设备读取。
要使用MH-Z19,一旦您需要在Raspberry Pi上设置启用串行端口设备。遵循Wiki页面可能有益。另外,请参阅PYPI上一页以获取详细信息。
pi@raspberrypi:~ $ sudo python3 -m mh_z19
{'co2': 668}
如上所述, Sudo可能是必要的,因为MH-Z19传感器值是通过串行连接读取的,并且一般请求root许可。
已安装的MH-Z19模块是对应的,它是多个和多功能传感器处理程序,可以保存,发送和执行具有传感器值的其他必要操作。
例如,我们介绍以下用例:
指定的传感器处理程序读取传感器值,并将这些值传递给对其作用的值。
传感器和价值处理程序都是Python模块。有关处理程序的更多详细信息,请参考此。
该模块对应于多个和多功能传感器处理程序,可以保存,发送和执行具有传感器值的其他必要操作。
如果您选择上面提到的完整安装,换句话说,您已经完成了设置。
您可以使用Save2Strage值处理程序进行操作,该处理程序/value/value/saver/save2strage ,以及以从MH-Z19传感器读取的配置文件,并通过save2strage保存为config.save.toml在MH-Z19安装的文件夹上准备。
在MH-Z19文件夹上,通过将pondslider称为如下;
sudo python -m pondslider --config config.save.toml
然后,应创建/home/pi/data/co2.csv ,并为每个呼叫添加新线路。
Monitor™是一项免费的远程监视服务,可以在网络上显示最新数据。


请参考介绍rasp鸟眼对Monior™的理解。
免费帐户如下。然后,登录并获取一个View_ID ,它是唯一的ID,可以指向Monitor™上的数据区域以显示最新值和图表,如下所示。
在浏览器中获取value_id后,返回到Raspberry pi的终端,然后将此软件设置为将测量值发送到value_id。为此,请在MH_Z19安装目录中调用setId.sh命令。假设您的value_id是vpgpargj ,equest setId.sh命令如下:
./setid.sh vpgpargj
然后,将“ pondlider” python脚本称为如下:
pi@raspberrypi:~/mh-z19 $ sudo python -m pondslider
{'co2': 742}
co2
{"ok":false,"reason":"ViewID not valid"}
您的浏览器显示器显示屏上显示的时间序列图必须通过最新的CO2浓度值更新。
您可以通过MH_Z19安装目录中的AutoStart.sh命令设置它,如下所示:
./autostart.sh --on
您可以按照以下方式关闭此内容:
./autostart.sh --off
此外,您可以检查当前状态,如下所示:
./autostart.sh --status
有关更多详细信息,请参考此博客。
池塘运动员还支持ATT M2X。有关详细信息,请参考此文档。
有关校准(MH-Z19和MH-Z19B),检测范围更改(MH-Z19B)和ABC Logic ON/OFF(MH-Z19B)的功能。版本为0.2.1或更高版本。
恐怕由于缺乏测试的必要设备和设备,FX:标准浓度CO2 GAS,以及MH-Z19B模块,我只是仅在没有测试的情况下实施了这些。如果您拥有这些设备或设备并尝试慷慨地使用这些功能,我真的很感谢您的问题报告,无论结果是正面还是负面。
有关详细信息,请参考此Wiki。
RevSpace/MHz19显示了官方数据表(MH-Z19,MH-Z19B)上未记录的值。根据此, - 所有选项在返回JSON值中添加这些值如下:
sudo python -m mh_z19 --all
{"SS": 232, "UhUl": 10752, "TT": 61, "co2": 818, "temperature": 21}
sudo python3 -m mh_z19 --all
{"TT": 61, "co2": 807, "SS": 232, "temperature": 21, "UhUl": 10752}
或调用read_all()函数如下:
>>> import mh_z19
>>> mh_z19.read_all()
{'SS': 232, 'UhUl': 10738, 'TT': 61, 'co2': 734, 'temperature': 21}
>>>
如果您应该使用特定的串行设备代替Raspberry Pi默认串行设备,该库会自动选择该设备,例如,对于FT232 USB-Serial Converter需要使用 /dev /ttyusb0作为第12期,您可以按- serial_device选项指定串行设备,如下所示:如下:如下:如下:如下:
sudo python -m mh_z19 --serial_device /dev/ttyUSB0
看到这个Wiki。
看到这个Wiki。
看到这个Wiki。
即使电缆似乎没有问题,UART似乎已经准备好了,但是您无法获得传感器的价值。正如Nincube8所建议的那样,提取1-5kΩ寄存器可以是工作解决方案。谢谢Nincube8!
论坛在这里是avai。欢迎任何疑问,建议,报告!
--co2valueonly选项,通过合并第39期和第40期。谢谢Jonesthefox!