Merge pull request #672 from dastels/iot_air_sensor
Add support for Metro M4 AirLift Lite
This commit is contained in:
commit
2b2bd39476
2 changed files with 21 additions and 8 deletions
|
|
@ -41,12 +41,19 @@ except ImportError:
|
|||
class AIO(object):
|
||||
|
||||
def __init__(self):
|
||||
esp32_cs = DigitalInOut(board.D10)
|
||||
esp32_ready = DigitalInOut(board.D9)
|
||||
esp32_reset = DigitalInOut(board.D6)
|
||||
try:
|
||||
esp32_cs = DigitalInOut(board.ESP_CS)
|
||||
esp32_busy = DigitalInOut(board.ESP_BUSY)
|
||||
esp32_reset = DigitalInOut(board.ESP_RESET)
|
||||
self._onboard_esp = True
|
||||
except AttributeError:
|
||||
esp32_cs = DigitalInOut(board.D10)
|
||||
esp32_busy = DigitalInOut(board.D9)
|
||||
esp32_reset = DigitalInOut(board.D6)
|
||||
self._onboard_esp = False
|
||||
|
||||
spi = busio.SPI(board.SCK, board.MOSI, board.MISO)
|
||||
self._esp = adafruit_esp32spi.ESP_SPIcontrol(spi, esp32_cs, esp32_ready, esp32_reset)
|
||||
self._esp = adafruit_esp32spi.ESP_SPIcontrol(spi, esp32_cs, esp32_busy, esp32_reset)
|
||||
|
||||
if self._esp.status == adafruit_esp32spi.WL_IDLE_STATUS:
|
||||
logger.debug('ESP32 found and in idle mode')
|
||||
|
|
@ -55,6 +62,9 @@ class AIO(object):
|
|||
|
||||
requests.set_interface(self._esp)
|
||||
|
||||
@property
|
||||
def onboard_esp(self):
|
||||
return self._onboard_esp
|
||||
|
||||
def connect(self):
|
||||
logger.debug("Connecting...")
|
||||
|
|
|
|||
|
|
@ -30,16 +30,19 @@ gps_interface.begin()
|
|||
|
||||
logger.debug('GPS started')
|
||||
|
||||
air_uart = busio.UART(board.A2, board.A3, baudrate=9600)
|
||||
aio_interface = aio.AIO()
|
||||
|
||||
if aio_interface.onboard_esp:
|
||||
air_uart = busio.UART(board.D5, board.D7, baudrate=9600)
|
||||
else:
|
||||
air_uart = busio.UART(board.A2, board.A3, baudrate=9600)
|
||||
air = air_quality.AirQualitySensor(air_uart)
|
||||
|
||||
logger.debug('Ait quality sensor started')
|
||||
logger.debug('Air quality sensor started')
|
||||
|
||||
i2c = busio.I2C(board.SCL, board.SDA)
|
||||
bme280 = adafruit_bme280.Adafruit_BME280_I2C(i2c)
|
||||
|
||||
aio_interface = aio.AIO()
|
||||
|
||||
reading_interval = 300.0
|
||||
reading_time = time.monotonic()
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue