Einfache Überwachung des Innenraumklimas ~ ④ Erhalten Sie die CO2-Konzentration von MH-Z19B mit Java (serielle Kommunikation / jSerialComm) ~

Einführung

Verwenden Sie kostengünstiges MH-Z19B als Sensor zur Messung der CO2-Konzentration. Machen. Es kann Daten über serielle Kommunikation abrufen. In diesem Artikel wurde die Java-Bibliothek [mh-z19b] erstellt, um die CO2-Konzentration von MH-Z19B mithilfe des seriellen Java-Kommunikationsmoduls jSerialComm zu ermitteln. -driver](https://github.com/s5uishida/mh-z19b-driver) ist eine Übersicht. Der Inhalt von Github ist jedoch der gleiche. Einzelheiten zur Implementierung und zur Verwendung der Beispiele finden Sie unter Github-Code Bitte beziehen Sie sich auf /MHZ19BDriver.java).

Verbindung zwischen MH-Z19B und Raspberry Pi 3B

Schließen Sie 5V, GND, Tx, Rx wie folgt an. ** Bitte verbinden Sie sich mit Tx⇔Rx. ** ** **

Stecken Sie anstelle des GPIO-Terminals des Raspberry Pi 3B einen über USB angeschlossenen seriellen Kommunikationsadapter (SH-U09C) in den Raspberry Pi 3B. Sie können dies auch verwenden, indem Sie es an den MH-Z19B anschließen. In diesem Fall lautet der Name des seriellen Kommunikationsports "/ dev / ttyUSB0".

Betriebssystemeinstellungen

Konfigurieren Sie das Raspbian Buster Lite-Betriebssystem wie folgt, um die gleichzeitige Verwendung von Bluetooth und serieller Kommunikation (UART) zu ermöglichen.

console=serial0,115200 -->Löschen.
@@ -45,7 +45,7 @@
 # Uncomment some or all of these to enable the optional hardware interfaces
 #dtparam=i2c_arm=on
 #dtparam=i2s=on
-#dtparam=spi=on
+dtparam=spi=on
 
 # Uncomment this to enable the lirc-rpi module
 #dtoverlay=lirc-rpi
@@ -55,6 +55,10 @@
 # Enable audio (loads snd_bcm2835)
 dtparam=audio=on
 
+enable_uart=1
+dtoverlay=pi3-miniuart-bt
+core_freq=250
+
 [pi4]
 # Enable DRM VC4 V3D driver on top of the dispmanx display stack
 dtoverlay=vc4-fkms-v3d

Beispielcode

Unten finden Sie ein Beispiel für die Verwendung des mh-z19b-Treibers. ** Als Einschränkung geben die zum ersten Mal gelesenen Sensordaten einen seltsamen Wert zurück, aber der entsprechende Wert wird zum zweiten und nachfolgenden Mal zurückgegeben. ** ** **

import io.github.s5uishida.iot.device.mhz19b.driver.MHZ19BDriver;

public class MyMHZ19B {
    private static final Logger LOG = LoggerFactory.getLogger(MyMHZ19B.class);
    
    public static void main(String[] args) throws IOException {
        MHZ19BDriver mhz19b = null;
        try {
            mhz19b = MHZ19BDriver.getInstance("/dev/ttyAMA0");
            mhz19b.open();
            mhz19b.setDetectionRange5000();
            
            while (true) {
                int value = mhz19b.getGasConcentration();
                LOG.info("co2:" + value);
                
                Thread.sleep(10000);
            }
        } catch (InterruptedException e) {
            LOG.warn("caught - {}", e.toString());
        } catch (IOException e) {
            LOG.warn("caught - {}", e.toString());
        } finally {
            if (mhz19b != null) {
                mhz19b.close();
            }
        }
    }
}

Eine Reihe von Artikeln

Diese Reihe besteht aus folgenden Artikeln:

  1. Motivation und Konzept
  2. Bluetooth LE-Werbesignal mit Java abfangen (Bluetooth LE / bluez-dbus) Der zugehörige Github ist hier.
  3. Temperatur / Luftfeuchtigkeit / Beleuchtungsstärke usw. vom TI SensorTag CC2650 mit Java (Bluetooth LE / bluez-dbus) abrufen Der zugehörige Github ist hier.
  4. ** Erhalten Sie die CO2-Konzentration von MH-Z19B mit Java (serielle Kommunikation / jSerialComm) (diesmal) ** Der zugehörige Github ist hier.
  5. PM2.5-Konzentration von PPD42NS in Java (GPIO / Pi4J) abrufen Der zugehörige Github ist hier.
  6. Betriebsinformationen für industrielle Automatisierungsgeräte in Java (OPC-UA / Eclipse Milo) abrufen Der verwandte Github ist hier.
  7. In einem einfachen Tool sammeln Der verwandte Github ist hier.
  8. Postscript

Nachtrag

[2019.11.16] Die neuesten Informationen zu einfachen Tools finden Sie unter hier.

Recommended Posts

Einfache Überwachung des Innenraumklimas ~ ④ Erhalten Sie die CO2-Konzentration von MH-Z19B mit Java (serielle Kommunikation / jSerialComm) ~
Einfache Überwachung des Innenraumklimas - ⑤ Erhalten Sie die PM2.5-Konzentration von PPD42NS mit Java (GPIO / Pi4J) -
Überwachen Sie einfach das Raumklima. ⑪ Erhalten Sie die Beleuchtungsstärke mit Java von BH1750FVI (Ersatz) - (I2C / Pi4J) -
Einfache Überwachung des Innenraumklimas - ⑩ Beziehen Sie Temperatur / Luftfeuchtigkeit / Druck von BME280 (Ersatz) mit Java (I2C / Pi4J) -
Einfache Überwachung der Innenumgebung - ② Erfassen Sie das Bluetooth LE-Werbesignal mit Java (Bluetooth LE / bluez-dbus) -
Überwachen Sie einfach das Raumklima ~ ⑧ Postscript ~
Einfache Überwachung des Innenraumklimas ~ ③ Beziehen Sie Temperatur / Luftfeuchtigkeit / Beleuchtungsstärke usw. vom TI SensorTag CC2650 mit Java (Bluetooth LE / bluez-dbus) ~
Überwachen Sie einfach das Raumklima. (1) Motivation und Konzept.
Einfache Überwachung der Innenumgebung - ⑨ Erfassen Sie die Bewegungserkennung (HC-SR501 / RCWL-0516) mit Java (GPIO / Pi4J) -
Einfache Überwachung des Raumklimas - ⑦ Mit einem einfachen Tool zusammenfassen -
Einfache Überwachung des Innenraumklimas - ⑥ Erfassen von Betriebsinformationen für industrielle Automatisierungsgeräte in Java (OPC-UA / Eclipse Milo) -
[Java] Stellen Sie die Zeit im Browser mit jsoup ein