Surveillez facilement l'environnement intérieur ~ ④ Obtenez la concentration de CO2 du MH-Z19B avec Java (communication série / jSerialComm) ~

introduction

Utilisez le MH-Z19B peu coûteux comme capteur pour mesurer la concentration de CO2. Faire. Il peut récupérer des données via une communication série. Dans cet article, la bibliothèque Java [mh-z19b] créée pour obtenir la concentration de CO2 du MH-Z19B à l'aide du module de communication série Java jSerialComm. -driver](https://github.com/s5uishida/mh-z19b-driver) est un aperçu. Cependant, le contenu de Github est le même. Pour obtenir des détails sur l'implémentation et un exemple d'utilisation, voir [Code Github](https://github.com/s5uishida/mh-z19b-driver/blob/master/src/io/github/s5uishida/iot/device/mhz19b/driver Veuillez vous référer à /MHZ19BDriver.java).

Connexion entre MH-Z19B et Raspberry Pi 3B

Connectez 5V, GND, Tx, Rx comme suit. ** Veuillez vous connecter les uns aux autres avec Tx⇔Rx. ** **

De plus, au lieu du terminal GPIO du Raspberry Pi 3B, insérez un adaptateur de communication série connecté par USB (SH-U09C) dans le Raspberry Pi 3B. Vous pouvez également l'utiliser en le connectant au MH-Z19B. Dans ce cas, le nom du port de communication série sera / dev / ttyUSB0.

Paramètres du système d'exploitation

Pour activer l'utilisation simultanée de Bluetooth et de la communication série (UART), configurez le système d'exploitation Raspbian Buster Lite comme suit.

console=serial0,115200 -->Effacer.
@@ -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

Exemple de code

Vous trouverez ci-dessous un exemple d'utilisation de mh-z19b-driver. ** En guise de mise en garde, les données du capteur lues pour la première fois renverront une valeur étrange, mais la valeur appropriée sera renvoyée pour la deuxième fois et les suivantes. ** **

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();
            }
        }
    }
}

Une série d'articles

Cette série comprend les articles suivants:

  1. Motivation et concept
  2. Capturez le signal publicitaire Bluetooth LE avec Java (Bluetooth LE / bluez-dbus) Le Github associé est ici.
  3. Obtenir la température / l'humidité / l'éclairement à partir du TI SensorTag CC2650 avec Java (Bluetooth LE / bluez-dbus) Le Github associé est ici.
  4. ** Obtenir la concentration de CO2 du MH-Z19B avec Java (communication série / jSerialComm) (cette fois) ** Le Github associé est ici.
  5. Obtenir la concentration de PM2,5 à partir de PPD42NS en Java (GPIO / Pi4J) Le Github associé est ici.
  6. Obtenir des informations sur le fonctionnement des équipements d'automatisation industrielle en Java (OPC-UA / Eclipse Milo) Le Github associé est ici.
  7. Collectez dans un outil simple Le Github associé est ici.
  8. Postscript

Postscript

[2019.11.16] Pour obtenir les dernières informations sur les outils simples, veuillez consulter ici.

Recommended Posts

Surveillez facilement l'environnement intérieur ~ ④ Obtenez la concentration de CO2 du MH-Z19B avec Java (communication série / jSerialComm) ~
Surveillez facilement l'environnement intérieur-⑤ Obtenez la concentration de PM2,5 à partir du PPD42NS avec Java (GPIO / Pi4J) -
Surveillez facilement l'environnement intérieur-⑪ Obtenez l'éclairement avec Java à partir de BH1750FVI (substitut) - (I2C / Pi4J) -
Surveillez facilement l'environnement intérieur - ⑩ Obtenez température / humidité / pression à partir du BME280 (substitut) avec Java (I2C / Pi4J) -
Surveillez facilement l'environnement intérieur-② Capturez le signal publicitaire Bluetooth LE avec Java (Bluetooth LE / bluez-dbus) -
Surveillez facilement l'environnement intérieur ~ ⑧ Postscript ~
Surveillez facilement l'environnement intérieur ~ ③ Obtenez la température / l'humidité / l'éclairement, etc. de TI SensorTag CC2650 avec Java (Bluetooth LE / bluez-dbus) ~
Surveillez facilement l'environnement intérieur - (1) Motivation et concept -
Surveillez facilement l'environnement intérieur ~ ⑨ Obtenez la détection de mouvement (HC-SR501 / RCWL-0516) avec Java (GPIO / Pi4J) ~
Surveillez facilement l'environnement intérieur - ⑦ Résumez dans un outil simple -
Surveillez facilement l'environnement intérieur-⑥ Acquérez les informations de fonctionnement des équipements d'automatisation industrielle en Java (OPC-UA / Eclipse Milo) -
[Java] Réglez l'heure depuis le navigateur avec jsoup