Pular para o conteúdo principal

Grove - Sensor de Gás Multicanal

O Grove – Sensor de Gás Multicanal é um sensor de detecção ambiental com um MiCS-6814 integrado que pode detectar muitos gases prejudiciais à saúde, e três gases podem ser medidos simultaneamente devido aos seus múltiplos canais, portanto ele pode ajudá‑lo a monitorar a concentração de mais de um gás.

Este sensor pertence ao sistema Grove, e você pode conectá‑lo ao Base shield e trabalhar com o Arduino diretamente sem nenhum fio jumper. Sua interface é I2C, portanto conecte‑o à porta I2C do Base shield e então você já pode começar a usá‑lo.

Cuidado

O valor do sensor apenas reflete a tendência aproximada da concentração de gás dentro de uma faixa de erro permissível, ele NÃO representa a concentração exata de gás. A detecção de certos componentes no ar geralmente requer um instrumento mais preciso e caro, o que não pode ser feito com um único sensor de gás. Se o objetivo do seu projeto é obter a concentração de gás em um nível muito preciso, então não recomendamos este sensor de gás.

pir

dica

Atualizamos o produto para Multichannel Gas Sensor v2 com documentos mais detalhados e mais módulos de sensores onboard. Além disso, lançamos o Seeed Gas Sensor Selection Guide, que ajudará você a escolher o sensor de gás que melhor atende às suas necessidades.

Antes de usar

Leituras relacionadas

Sugerimos que você leia estes conteúdos antes de usar o sensor de gás, isso o ajudará a aprender mais sobre Arduino e nossos produtos, e também facilitará o uso de hardware open source.

  • Primeiros passos com Arduino
  • O que é o sistema Grove
  • Por que eu preciso de um Base shield?

Depois de ler isso, você saberá como usar o Base shield com produtos Grove para funcionar bem com o Arduino. Vamos começar!

O que preparar

Este tutorial incluirá alguns produtos necessários:

  • Arduino UNO R3 ou Seeeduino v4
  • Base Shield
  • Grove - Multichannel Gas Sensor

Visão geral de hardware

pir

Quatro pinos são indicados na figura acima

Rótulo do pinoDescrição
GNDConectar ao terra
VCCFonte de alimentação: 3.3V - 5V
SDADados I2C
SCLClock I2C

A fonte de alimentação é entre 3.3V e 5V, portanto este sensor pode ser compatível com um microcontrolador cujo valor de saída seja 3.3V.

Recursos

  • Três elementos de detecção totalmente independentes em um único encapsulamento
  • Construído com ATmega168PA
  • Interface I2C com endereço programável
  • Potência de aquecimento pode ser desligada para baixo consumo
  • Gases detectáveis
    • Monóxido de carbono CO 1 – 1000ppm
    • Dióxido de nitrogênio NO2 0.05 – 10ppm
    • Etanol C2H6OH 10 – 500ppm
    • Hidrogênio H2 1 – 1000ppm
    • Amônia NH3 1 – 500ppm
    • Metano CH4 >1000ppm
    • Propano C3H8 >1000ppm
    • Iso-butano C4H10 >1000ppm

Diagrama de blocos

pir

Plataformas compatíveis

ArduinoRaspberry Pi

pir

pir

cuidado

As plataformas mencionadas acima como suportadas são uma indicação da compatibilidade teórica ou de software do módulo. Na maioria dos casos, fornecemos apenas biblioteca de software ou exemplos de código para a plataforma Arduino. Não é possível fornecer biblioteca de software / código de demonstração para todas as possíveis plataformas de MCU. Portanto, os usuários precisam escrever sua própria biblioteca de software.

Características elétricas

ItemCondiçãoMín.Típ.Máx.Unidade
Tensão-3.13.35.25V
Ripple@Potência Máx-80100mV
Potência de aquecimento---88mW
Potência Máx---150mW
Precisão do ADC--10-Bits
Taxa I2C--100400kHz
VIL@I2C-0.5-0.99V
VIH@I2C2.31-5.25V

Desempenho do sensor RED

Característica do sensor REDSímboloTípMínMáxUnidade
Resistência de detecção no arR0-1001500
Faixa típica de detecção de COFS-11000ppm
Fator de sensibilidadeSR-1.250-

pir

Desempenho do sensor OX

Característica do sensor OXSímboloTípMínMáxUnidade
Resistência de detecção no arR0-0.820
Faixa típica de detecção de NO2FS-0.0510ppm
Fator de sensibilidadeSR-2--

pir

Desempenho do sensor NH3

Característica do sensor NH3SímboloTípMínMáxUnidade
Resistência de detecção no arR0-101500
Faixa típica de detecção de NH3FS-1300ppm
Fator de sensibilidadeSR-1.515-

pir

Primeiros passos

atenção

O sensor precisa ser pré-aquecido por pelo menos 10 minutos antes de obter dados estáveis.

Instalação de hardware:

1.Conecte o Grove - Multichannel Gas Sensor ao Seeeduino.

pir

Enviar código:

2.Faça o download de Arduino Library & Grove/Xadow firmware e instale na biblioteca do Arduino.

3.Abra o código diretamente pelo caminho: File -> Example -> Mutichannel_Gas_Sensor-> ReadSensorValue_Grove.

O código de ReadSensorValue_Grove é apresentado abaixo.

// Read Data from Grove - Multichannel Gas Sensor
#include <Wire.h>
#include "MutichannelGasSensor.h"

void setup()
{
Serial.begin(115200); // start serial for output
Serial.println("power on!");
gas.begin(0x04);//the default I2C address of the slave is 0x04 ; for verison 2 of the multichannel gas sensor the i2c address is 0x08
gas.powerOn();
Serial.print("Firmware Version = ");
Serial.println(gas.getVersion());
}

void loop()
{
float c;

c = gas.measure_NH3();
Serial.print("The concentration of NH3 is ");
if(c>=0) Serial.print(c);
else Serial.print("invalid");
Serial.println(" ppm");

c = gas.measure_CO();
Serial.print("The concentration of CO is ");
if(c>=0) Serial.print(c);
else Serial.print("invalid");
Serial.println(" ppm");

c = gas.measure_NO2();
Serial.print("The concentration of NO2 is ");
if(c>=0) Serial.print(c);
else Serial.print("invalid");
Serial.println(" ppm");

c = gas.measure_C3H8();
Serial.print("The concentration of C3H8 is ");
if(c>=0) Serial.print(c);
else Serial.print("invalid");
Serial.println(" ppm");

c = gas.measure_C4H10();
Serial.print("The concentration of C4H10 is ");
if(c>=0) Serial.print(c);
else Serial.print("invalid");
Serial.println(" ppm");

c = gas.measure_CH4();
Serial.print("The concentration of CH4 is ");
if(c>=0) Serial.print(c);
else Serial.print("invalid");
Serial.println(" ppm");

c = gas.measure_H2();
Serial.print("The concentration of H2 is ");
if(c>=0) Serial.print(c);
else Serial.print("invalid");
Serial.println(" ppm");

c = gas.measure_C2H5OH();
Serial.print("The concentration of C2H5OH is ");
if(c>=0) Serial.print(c);
else Serial.print("invalid");
Serial.println(" ppm");

delay(1000);
}

4.Faça o upload do código. Lembre-se de selecionar Seeeduino Uno no menu Tools | Board do ambiente Arduino e selecionar a porta serial correta que o Arduino está usando.

Ao abrir o monitor serial, você pode ver os dados brutos lidos do sensor.

pir

dica

Para mais detalhes sobre os módulos Grove, consulte o Grove System

Atualizar Firmware

Este módulo Grove possui um MCU ATmega168 que vem gravado com um firmware de fábrica. A versão foi atualizada para V2 em 11/Nov/2016. Envie o código abaixo para detectar a versão do seu sensor.

// Get firmware version of Grove Multichannel Gas Sensor
#include <Wire.h>
#include "MutichannelGasSensor.h"

#define SENSOR_ADDR 0X04 // default to 0x04

void setup()
{
Serial.begin(115200);
gas.begin(SENSOR_ADDR);

unsigned char version = gas.getVersion();
Serial.print("Version = ");
Serial.println(version);
}

void loop()
{
// nothing to do
}

Se a versão do seu sensor for V1, recomendamos que você atualize para V2 para obter um desempenho melhor.

Para atualizar o firmware, você precisa de:

  • Um Arduino UNO/Seeeduino V3/
  • 6 fios dupont
  • Ferro de solda

Há um pad ICSP na parte de trás da placa; você precisa conectar esses pads a uma placa Arduino.

SensorArduino
MISOD12
SCKD13
NRSTD10
GNDGND
MOSID11
VCC5V

pir

Em seguida, abra o exemplo UpdateFrimware no seu Arduino, abra o Serial Monitor e você verá algumas informações impressas. Digite um 'g' para começar.

pir

Calibração

Se você sempre obtiver um valor não autêntico, tente calibrar o sensor. Abra o exemplo calibration e envie para o seu Arduino, abra o Serial Monitor para obter informações enquanto ele está calibrando.

nota

A calibração é feita antes de os módulos saírem da fábrica. Se você quiser recalibrar, certifique-se de que as condições do ar estejam limpas. E a calibração pode levar de alguns minutos até meia hora.

Visualizador de Esquemático Online

Recursos

FAQ

  • P1. Como alterar o endereço I2C do módulo

    • R1. Abra o exemplo I2C_Address e execute-o.
  • P2. Eu alterei o endereço I2C e, por azar, esqueci qual é.

    • R2. Não se preocupe, execute o exemplo factory_setting para voltar ao padrão. Observe que os dados de calibração também voltarão ao padrão de fábrica.
  • P3. O multichannel gas sensor funciona com Wio GPS e Wio LTE?

    • *R3. Sim, consulte o código abaixo.

Wio GPS:

#include <Wire.h>
#include "MutichannelGasSensor.h"

#define WIOLTE_GROVE_PIN (12)
#define SENSOR_ADDR 0X04 // default to 0x04

void setup()
{
SerialUSB.begin(115200);
pinMode(WIOLTE_GROVE_PIN, OUTPUT);
digitalWrite(WIOLTE_GROVE_PIN, HIGH);
delay(2000);
gas.begin(SENSOR_ADDR); //
}

void loop()
{
float R0_NH3, R0_CO, R0_NO2;
float Rs_NH3, Rs_CO, Rs_NO2;
float ratio_NH3, ratio_CO, ratio_NO2;

R0_NH3 = gas.getR0(0);
R0_CO = gas.getR0(1);
R0_NO2 = gas.getR0(2);

Rs_NH3 = gas.getRs(0);
Rs_CO = gas.getRs(1);
Rs_NO2 = gas.getRs(2);

ratio_NH3 = Rs_NH3/R0_NH3;
ratio_CO = Rs_CO/R0_CO;
ratio_NO2 = Rs_NH3/R0_NO2;

SerialUSB.println("R0:");
SerialUSB.print(R0_NH3);
SerialUSB.print('\t');
SerialUSB.print(R0_CO);
SerialUSB.print('\t');
SerialUSB.println(R0_NO2);

SerialUSB.println("Rs:");
SerialUSB.print(Rs_NH3);
SerialUSB.print('\t');
SerialUSB.print(Rs_CO);
SerialUSB.print('\t');
SerialUSB.println(Rs_NO2);

SerialUSB.println("ratio:");
SerialUSB.print(ratio_NH3);
SerialUSB.print('\t');
SerialUSB.print(ratio_CO);
SerialUSB.print('\t');
SerialUSB.println(ratio_NO2);

SerialUSB.println("------------------------");
delay(1000);
}

Wio LTE:

#include <Wire.h>
#include "MutichannelGasSensor.h"

#define WIOLTE_GROVE_PIN (26)
#define SENSOR_ADDR 0X04 // default to 0x04

void setup()
{
// SerialUSB.begin(115200);
pinMode(WIOLTE_GROVE_PIN, OUTPUT);
digitalWrite(WIOLTE_GROVE_PIN, HIGH);
delay(2000);
gas.begin(SENSOR_ADDR); //
}

void loop()
{
float R0_NH3, R0_CO, R0_NO2;
float Rs_NH3, Rs_CO, Rs_NO2;
float ratio_NH3, ratio_CO, ratio_NO2;

R0_NH3 = gas.getR0(0);
R0_CO = gas.getR0(1);
R0_NO2 = gas.getR0(2);

Rs_NH3 = gas.getRs(0);
Rs_CO = gas.getRs(1);
Rs_NO2 = gas.getRs(2);

ratio_NH3 = Rs_NH3/R0_NH3;
ratio_CO = Rs_CO/R0_CO;
ratio_NO2 = Rs_NH3/R0_NO2;

SerialUSB.println("R0:");
SerialUSB.print(R0_NH3);
SerialUSB.print('\t');
SerialUSB.print(R0_CO);
SerialUSB.print('\t');
SerialUSB.println(R0_NO2);

SerialUSB.println("Rs:");
SerialUSB.print(Rs_NH3);
SerialUSB.print('\t');
SerialUSB.print(Rs_CO);
SerialUSB.print('\t');
SerialUSB.println(Rs_NO2);

SerialUSB.println("ratio:");
SerialUSB.print(ratio_NH3);
SerialUSB.print('\t');
SerialUSB.print(ratio_CO);
SerialUSB.print('\t');
SerialUSB.println(ratio_NO2);

SerialUSB.println("------------------------");
delay(1000);
}

Projetos

Smart Crops: Implementando IoT na Agricultura Convencional!: Nossa missão com a natureza é preservá-la, projetando e implementando tecnologias e métodos de monitoramento com a ajuda de IoT via Helium.

Suporte Técnico & Discussão de Produto

Atualizável para Sensores Industriais

Com o S2110 controller e o S2100 data logger da SenseCAP, você pode facilmente transformar o Grove em um sensor LoRaWAN®. A Seeed não só ajuda você na prototipagem, como também oferece a possibilidade de expandir seu projeto com a série SenseCAP de robustos sensores industriais.

O invólucro IP66, configuração via Bluetooth, compatibilidade com a rede global LoRaWAN®, bateria interna de 19 Ah e o forte suporte do APP tornam o SenseCAP S210x a melhor escolha para aplicações industriais. A série inclui sensores para umidade do solo, temperatura e umidade do ar, intensidade de luz, CO2, EC e uma estação meteorológica 8-em-1. Experimente o mais recente SenseCAP S210x para o seu próximo projeto industrial de sucesso.

Loading Comments...