從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!