Untitled

작동 전압 5V ~ 6V

코드

import datetime
import Adafruit_MCP3008

class MG811Result:

    STD_AIR_LOW = 31
    STD_AIR_HIGH = 35

    ONE_BREADTH_AIR_LOW = 15
    ONE_BREADTH_AIR_HIGH = 18

    __dout = 0

    def __init__(self, dout):
        self.__dout = dout

    def raw(self):
        return self.__dout

    def compared_to_air(self):
        if self.__dout > self.STD_AIR_HIGH:
            return 'low'
        elif self.__dout < self.STD_AIR_LOW:
            return 'high'
        else:
            return 'normal'

class MG811:

    __clk = 0
    __dout_miso = 0
    __din_mosi = 0
    __chipselect_shutdown = 0
    __adc = None
    __in_analog_ch = None

    __start_time = None
    __calibration_time = None

    def __init__(self, dout, din=7, ch_sh=5, clk=11,
                 in_analog_ch=0, calibration_time=60):
        self.__dout_miso = dout
        self.__din_mosi = din
        self.__chipselect_shutdown = ch_sh
        self.__clk = clk
        self.__adc = Adafruit_MCP3008.MCP3008(
            clk=clk,
            cs=ch_sh,
            miso=dout,
            mosi=din
        )
        self.__in_analog_ch = in_analog_ch
        self.__start_time = datetime.datetime.now()
        self.__calibration_time = datetime.timedelta(seconds=calibration_time)

    def read(self):

        now = datetime.datetime.now()

        return MG811Result(self.__adc.read_adc(self.__in_analog_ch))

참고