Skip to main content

MH410D by NekoSensors

A Python library for interfacing with the MH-410D CO2 sensor via UART.

Sensor Datasheet (+ Protocol) - MH-410D.PDF

image.png

Installation

You can install the library via pip:

pip install MH410D

Usage

Here is an example of how to use the MH410D library:

from MH410D import MH410D_CO2

# Create an instance of the sensor
sensor = MH410D_CO2(port='COM3', baudrate=9600, timeout=2)

# Read gas concentration
concentration_ppm = sensor.read_gas_concentration()
if concentration_ppm is not None:
    print(f"Gas concentration: {concentration_ppm} ppm")
    print(f"Gas concentration: {sensor.ppm_to_percent(concentration_ppm)} %")

    # Example conversion to mg/m3 for carbon dioxide (CO2), molar mass 44 g/mol
    concentration_mg_m3 = sensor.ppm_to_mg_m3(concentration_ppm, molar_mass=44)
    print(f"Gas concentration: {concentration_mg_m3} mg/m3")

# Calibrate the sensor
sensor.calibrate_zero()
sensor.calibrate_span()

# Close the connection
sensor.close()

Features

  • Read Gas Concentration: Read CO2 concentration in ppm from the MH-410D sensor.
  • Calibrate Sensor: Calibrate the zero and span points of the sensor.
  • Convert Units: Convert gas concentration from ppm to percentage and mg/m3.

API Reference

MH410D_CO2

__init__(self, port='COM3', baudrate=9600, timeout=2)

Initializes the serial connection with the specified parameters.

  • port (str): Port name to which the sensor is connected (default 'COM3').
  • baudrate (int): Data transmission speed (default 9600).
  • timeout (int): Timeout for read operations (default 2 seconds).

read_gas_concentration(self)

Sends a command to read gas concentration and returns the value.

  • Returns: Gas concentration in ppm, or None if reading failed.

calibrate_zero(self)

Sends a command to calibrate the sensor zero point.

  • Returns: True if calibration is successful, otherwise False.

calibrate_span(self)

Sends a command to calibrate the sensor span point.

  • Returns: True if calibration is successful, otherwise False.

ppm_to_percent(self, ppm)

Converts ppm to percentage.

  • ppm (int): Value in ppm.
  • Returns: Value in percentage.

ppm_to_mg_m3(self, ppm, molar_mass, temperature=25, pressure=101325)

Converts ppm to mg/m3.

  • ppm (int): Value in ppm.
  • molar_mass (float): Molar mass of the gas in grams per mole.
  • temperature (float): Temperature in degrees Celsius (default 25).
  • pressure (float): Pressure in Pascals (default 101325 Pa).
  • Returns: Value in mg/m3.

close(self)

Closes the serial connection.

Out Another Projects:

https://github.com/NekoRMD/NekoRMD - Control MyActuator RMD X8-PRO using Python by CAN

https://github.com/K-Lab-Students/REIS_PCB - PBC library

Metadata

Release files for MH410D 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for MH410D 1.0.0
File Size Uploaded
mh410d-1.0.0.tar.gz 3.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for MH410D 1.0.0
File Interpreter ABI Platform
MH410D-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 7.9 kB

Release files / mh410d-1.0.0.tar.gz

Download URL mh410d-1.0.0.tar.gz
Size 3.6 kB
Tags Source
SHA-256 checksum
How to use checksums
cc7cd73626c3ceb1fb82893e7890b1e88521dc1005695b9322949764e850e596
BLAKE2b-256 checksum
How to use checksums
395db55ba49f8ce65fc8dc2adbf195fe2381231c11db42830958971d458366c4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.10.14

Release files / MH410D-1.0.0-py3-none-any.whl

Download URL MH410D-1.0.0-py3-none-any.whl
Size 4.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e561795d9a583fe46d34c407615156b6a96656aa753f5a409f074c9154daa3ce
BLAKE2b-256 checksum
How to use checksums
cf0161665f9c476679def8c76c23521f59cf758d134a84c99667bfa866601ce7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.10.14

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page