Sensores de gases

Pretende-se detetar diversos tipos de gases, luminosidade, temperatura e humidade. Para tal foi utilizado um Raspberry PI com diversos sensores, entre eles:

  • MQ9: Mónoxido de carbono (CO), gás de carvão (Metano/CH4) e gás liquefeito (LPG);
  • MQ5: LPG, gás natural, gás de cidade;
  • MQ3: Vapor de álcool
  • MQ2: LPG, butano, propano, metano, álcool, hidrogénio [gás combustível]
  • CCS811: eCO2 e compostos orgânicos (TVOC)
  • TSL2591: Luz
  • SGP30: eCO2, TVOC
  • SCD30: CO2, temperatura e humidade

O protocolo de comunicação utilizado entre sensores e o Raspberry PI é o I2C:

Esquema de blocos

Os módulos sensores de gases da série MQx são módulos que integram um sensor e um conversor analógico-digital. Estes podem ser interligados facilmente, desde que se cumpra com a correta ligação física e desde que os endereços sejam corretamente selecionados de forma a evitar conflitos nas comunicações.

A representação genérica de cada sensor de gás MQx (módulo da NCD*) e a definição do endereço pode ser consultada aqui:

* «National Control Devices is an electronics manufacturer on the cutting edge of the IoT industry focusing on interfacing the analog world with digital electronics. NCD products unite the digital with the analog enabling you to monitor and control your environment.»

Os endereços dos módulos de gás MQx são configuráveis e para este circuito/montagem foram definidos os seguintes endereços:

MQ9 = 0x50
MQ5 = 0x52
MQ3 = 0x51
MQ2 = 0x54

Endereços pré-definidos nos restantes sensores:

CCS811 = 0x5a
TSL2591 = 0x29
SGP30 = 0x58
SCD30 = 0x61

Os módulos da NCD interligam-se ao barramento do Raspberry PI através do módulo OUTPI2, através de uma ficha apropriada e os restantes podem-se interligar ao barramento do modo habitual.

OUTPI2
Raspberry PI com o módulo OUTPI2
Atenção: Verificar se a ligação em cada módulo/sensor está a ser efetuada sempre com os pinos/fios GND para o lado de fora, de acordo com a figura.

Hiperligações úteis

MQ9:
https://github.com/ControlEverythingCommunity/ADC121C_MQ9
https://shop.controleverything.com/products/carbon-monoxide-combustible-gas-sensor
https://store.ncd.io/product/mq-9-carbon-monoxide-combustible-gas-sensor-adc121c-12-bit-adc-i2c-mini-module/

MQ3:
https://github.com/ControlEverythingCommunity/ADC121C_MQ3
https://store.ncd.io/product/mq-3-alcohol-sensor-adc121c-12-bit-adc-i2c-mini-module/

MQ2:
https://store.ncd.io/product/mq-2-propane-butane-methane-alcohol-gas-sensor-adc121c-12-bit-adc-i2c-mini-module/

MQ5:
https://store.ncd.io/product/mq-5-lpg-lng-natural-gas-iso-butane-propane-gas-sensor-adc121c-12-bit-adc-i2c-mini-module/

CCS811:
https://learn.adafruit.com/adafruit-ccs811-air-quality-sensor/python-circuitpython

TSL2591:
https://github.com/adafruit/Adafruit_CircuitPython_TSL2591
https://learn.adafruit.com/adafruit-tsl2591/python-circuitpython

SGP30:
https://learn.adafruit.com/adafruit-sgp30-gas-tvoc-eco2-mox-sensor
https://learn.adafruit.com/adafruit-sgp30-gas-tvoc-eco2-mox-sensor/circuitpython-wiring-test
https://github.com/adafruit/Adafruit_CircuitPython_SGP30

SCD30:
https://github.com/Wappsto/IoT_RapidPrototyping/tree/master/co2
https://www.hackster.io/bfboyles/homemade-co2-sensor-unit-22a9d8

Interface I2C:
https://store.ncd.io/product/i2c-shield-for-raspberry-pi-3-pi2-with-outward-facing-i2c-port/

Diversos:
http://wiki.seeedstudio.com/Seeed_Gas_Sensor_Selection_Guide/
https://learn.adafruit.com/i2c-addresses/the-list
https://github.com/ControlEverythingCommunity
https://store.ncd.io/
https://i2cdevices.org/

Bibliotecas a instalar

sudo pip3 install adafruit-circuitpython-ccs811
sudo pip3 install adafruit-circuitpython-tsl2591
sudo pip3 install adafruit-circuitpython-sgp30

Código fonte do programa teste, para todos os sensores

Eis os resultados que podemos obter na sequência da execução do programa de teste:

foto do ecrã