Saídas Digitais (Relés + Open-Collectors)

Este é mais um circuito com o Raspberry PI e alguns sensores e transdutores. Pretende-se testar saídas digitais (relés e open-collectors) e um conversor digital-analógico de 0 a 10 volts. O circuito ainda inclui um sensor de luz e outro de CO2, temperatura e humidade.

Esquema de blocos simplificado

Esquema de blocos mais pormenorizado

«Zoom» às ligações nas placas de saídas digitais

Relés
Open-Collectors

Endereços dos sensores e transdutores

Endereços pré-definidos ou configurados através de jumpers:

I2C – RL812s = 0x20
I2C – OC805s = 0x27
MCP4725 = 0x60
TSL2591 = 0x29
SCD30 = 0x61

Objectivo de cada sensor e transdutor:

i2c – RL812S: Relés (Saídas digitais)
i2c – OC805S: Open Collectors (Saídas digitais)
DAC 10V – MCP4725 (Conversor Digital-Analógico)
TSL2591: Sensor de luz
SCD30: Sensor de Temperatura, Humidade e CO2

Interface adaptadora para módulos NCD: OUTPI2

«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.»

Saídas digitais: Relés

Saídas Digitais: Open-Collectors

«Each output is open collector that can support 500mA of load current and up to 50V.»

«…the VCC and GND of loads must be supplied into the boards via +V and GND terminals.»

Frame

«São enviados dados a partir do raspberry para a placa de saída Open-Collectors via barramento I2C. O primeiro byte é o endereço definido para a placa. O segundo byte é a informação que define o estado de cada saída. O bit ‘0’ do segundo byte controla a saída O / C1. O valor ‘1’ do bit significa saída desativada e o valor ‘0’ significa saída ativada. »

Hiperligações úteis

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

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

MCP4725:
https://store.ncd.io/product/1-channel-0-10v-dac-digital-analog-converter-i²c/
https://github.com/adafruit/Adafruit_CircuitPython_MCP4725

I2C OC PCF8574 / I2C-OC805S
https://www.ereshop.com/shop/index.php?main_page=product_info&products_id=806

I2C Relay 12V 1A PCF8574 / I2C-RL812S
https://www.ereshop.com/shop/index.php?main_page=product_info&products_id=790

Interface I2C / OUTPI2
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/ | https://i2cdevices.org/devices | https://i2cdevices.org/addresses

Bibliotecas

sudo pip3 install adafruit-circuitpython-tsl2591
sudo pip3 install adafruit-circuitpython-mcp4725

Código para testar sensores e transdutores

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ã