Detector de gases inflamáveis e fumaça com SigFox: sistema embarcado
11 de Junho de 2020

Detector de gases inflamáveis e fumaça com SigFox: sistema embarcado

A Internet das Coisas abriu muitas possibilidades de projetos e produtos conectados. Dentre estes, projetos para a finalidade de monitoramento e segurança são especialmente úteis, uma vez que podem detectar situações anormais e prevenir danos da forma mais rápida possível. Nesta linha de pensamento, este artigo é o primeiro da série que mostrará como fazer um projeto completo de detecção de gases inflamáveis e fumaça utilizando a LPWAN SigFox e a plataforma IoT Tago.IO. Aqui, informações fundamentais do SigFox e de funcionamento do projeto serão passadas.

O que é SigFox?

Em poucas palavras, SigFox é uma LPWAN (Low Power Wide Area Network) para Internet das Coisas, focada em dispositivos que precisam enviar poucos dados para a nuvem. Assim como seu concorrente direto, as redes LoRaWAN, também é sub-GHz (trabalha nas faixas de frequências 862-876 MHz e 902-928 MHz, sendo no Brasil utilizada a banda 902-928 MHz). As frequências de operação do SigFox em regiões do planeta são divididos em RCs, de RC1 até RC7. Para mais detalhes das zonas, países abrangidos e suas frequências, clique aqui.

Comparado ao LoRaWAN, o SigFox possui como principal diferencial não permitir que terceiros façam gateways SigFox. Dessa forma, há várias operadoras SigFox no mundo (no Brasil, a operadora responsável é a WND Brasil), cada qual responsável por instalar gateways e prover cobertura e conectividade. Isso forma um modelo de negócios interessante para quem deseja ter um produto IoT e não quer se preocupar com a infraestrutura de conectividade. O SigFox no Brasil hoje possui cobertura em todas as capitais, em algumas rodovias importantes (como a via Dutra, por exemplo) e nas principais cidades interioranas do país. Para ver a cobertura do SigFox em qualquer local do mundo, clique aqui.

Assim como no caso de empresas que provém conectividade LoRaWAN, há um valor a ser pago por dispositivo conectado, dependente do plano de dados contratado. O plano que permite maior transferência de dados para a SigFox Cloud permite um máximo de 140 mensagens diárias do dispositivo para a SigFox Cloud (uplink) e 8 mensagens da SigFox Cloud para o dispositivo (downlink) possui um custo anual de $12 / dispositivo. Ou seja, é preciso que o projetista estaja ciente de que, no máximo, pode-se enviar aproximadamente 5 mensagens por hora do dispositivo para a SigFox.

É importante ressaltar que no SigFox cada mensagem deve possuir, no máximo, 12 bytes. Para ajudar, estes 12 bytes são “limpos”, ou seja, informações referentes a comunicação e integridade dos dados (tais como contador sequencial e CRC) já são garantidas pelo stack SigFox e não precisam estar contidas nos 12 bytes de payload.

Porque usar SigFox?

Dentre os motivos para se usar SigFox, destacam-se os seguintes:

  • Preço do MODEM (popularmente chamado de módulo SigFox) é normalmente inferior ao equivalente em LoRa/LoRaWAN.
  • A questão de não ter que se preocupar com a infraestrutura de conectividade é algo atrativo para empresas que não tem condições de manter gateways próprios ou que vendem em massa dispositivos dependentes de uma LPWAN, por exemplo.
  • Confiabilidade oferecida pelo SigFox: toda mensagem enviada de um dispositivo SigFox é replicada em três canais distintos (chamados de micro canais). Dessa forma, a mesma mensagem pode ser recebida por três radio-bases (cada uma sintonizada numa frequência) distintas, aumentando as chances de que sua mensagem chegue ao destino (SigFox Cloud) mesmo em case de falha de uma radio-base ou a se a qualidade de recepção de um dos canais ser ruim. Isso deixa a conectividade via SigFox muito robusta.

Ativação do modem SigFox

Após comprar seu modem SigFox (ou um módulo que possua um), é preciso ativá-lo antes de usar. Há revendedores (chamados pela SigFox de canais) que enviam o modem já ativado e proto para uso. Caso isso não seja válido no seu caso, você poderá ativá-lo segundo instruções do link abaixo:

Hardware utilizado: shield Tatamaya Black + SigBOT

Para fins de prototipação, o projeto aqui desenvolvido utiliza um Arduino UNO como placa principal. Para prover conectividade SigFox ao Arduino UNO, fiz uso do shield IoT Tatamaya Black e a placa de conectividade SigBOT, ambos fabricados pela EngeBOT. O uso destas placas facilita muito o desenvolvimento de projetos que usam conectividade SigFox, pois toda a parte de conexões elétricas já está resolvida e  os periféricos que a Tatamaya Black possui (sensor de temperatura, sensor de luminosidade, receptor IR, buzzer, dois potenciômetros, dois push-buttons, LEDs, conectores para módulos I²C, etc.) facilitam a vida para desenvolver projetos diversos.
Ambas podem ser vistas na figura 1.

SigFox

Para mais detalhes das funcionalidades e pinout do shield IoT Tatamaya Black, veja a figura 2.

SigFox

Um fator muito interessante é que a SigBOT possui o mesmo Form-Factor dos módulos XBee, o que permite seu uso também em projetos e produtos  que já usam XBee e desejam suportar conectividade SigFox. Além disso, por possuir conexão a antena SMA, o uso de uma boa antena aumenta substancialmente a qualidade de transmissão (algo muito útil se você está relativamente longe de uma radio-base SigFox).

Detecção de gases inflamáveis e fumaça – MQ-2

Para a detecção de gases inflamáveis e fumaça, é utilizado um módulo com sensor MQ-2. Este módulo dispõe do sensor MQ-2 e circuitaria necessária para ele operar, incluindo um comparador utilizado para gerar uma saída digital, permitindo ler os estados “há gases inflamáveis e fumaça” e “não há gases inflamáveis e fumaça”. Este módulo pode ser visto na figura 3.

SigFox

Este módulo deve ser alimentado com 5V. Em termos de interface com mundo externo, ele possui 4 terminais, sendo:

  • Dois terminais de alimentação (Vcc e GND)
  • Um terminal de saída analógica (A0)
  • Um terminal de saída digital (D0), vinda de um comparador LM393

Ainda, este módulo possui um potenciômetro para ajuste de sua sensibilidade, localizado conforme destaque na figura 4. Esta deve ser ajustada de acordo com o nível de gases / fumaça no ambiente que se deseja detectar. O sensor suporta detecção destes tipos de gases numa faixa de concentração que vai de 300 ppm até 10000 ppm.

SigFox

O elemento sensor do módulo (MQ-2) possui uma característica de operação muito importante: é preciso respeitar o chamado tempo de queima, referenciado na documentação técnica como como burn-in time ou pre-heat. Este tempo corresponde ao tempo necessário para o elemento sensor “aquecer” (estar pronto para uso), de forma que antes deste tempo o sensor pode apresentar grandes instabilidades. Para testes preliminares, onde não é necessária uma grande exatidão na detecção do gases inflamáveis, é recomendado um burn-in time de 3 minutos. Já para a operação real, este tempo é de, no mínimo, 24 horas.

Logo, é necessário que o sistema eletrônico que for fazer uso de suas leituras desconsidere o tempo que julgar necessário para o burn-in time. No caso deste projeto, será considerado burn-in time de 3 minutos assim que o sistema embarcado é ligado, sendo durante este período todas as leituras do sensor ignoradas.

Leitura do módulo sensor MQ-2

Neste projeto, a leitura do módulo sensor MQ-2 será feita através de sua saída digital (D0). Esta irá ser conectada ao GPIO12 do Arduino UNO. A leitura é contínua (em polling).

Quando o sensor sinalizar a detecção de gás inflamável ou fumaça, é forçado imediatamente o envio de um payload SigFox indicando emergência para a plataforma Tago.IO, a qual irá disparar alertas pré-programados a quem for responsável por verificar a situação. Isso contrubui para a minimização do tempo de ação humana contra o problema detectado.

Circuito esquemático do projeto

O circuito esquemático do projeto pode ser visto na figura 5. Como o sheild IoT Tatamaya black se sobrepõe ao Arduino UNO, o circuito esqueamático fará referência a ele apenas (considere-o sobre o Arduino UNO).

SigFox

Observações sobre o circuito esquemático:

  • O jumper 3 precisa ser removido do shield para que o GPIO12 possa ser usado de forma livre (sem estar atrelado a outras funcionalidades a ele atribuídas no shield. Desta forma, é possível usar o GPIO12 para leitura da saída digital do módulo sensor MQ-2.
  • Ligar / fechar o DS-2 faz com que a comunicação serial com o módulo SIgBOT seja feita via Software Serial (pinos 4 como RX e 5 como TX). Dessa forma, o Arduino UNO pode ser programado sem a remoção do módulo SIgBOT, além de a Serial nativa ficar livre para o Serial Monitor / “debug verboso”.

Overview do software embarcado do projeto

O software embarcado do projeto é responsável pelas seguintes ações:

  • De 15 em 15 minutos, fará a leitura da temperatura ambiente (sensor: LM35) e enviará este dado para a SigFox Cloud
  • De 15 em 15 minutos, fará a leitura do sensor de gases inflamáveis e fumaça (MQ-2) e enviará este dado para a SigFox Cloud
  • A qualquer momento, se houver adetecção de gases inflamáveis e fumaça, em carater emergencial, imediatamente é feito o envio de  um pacote de dados contendo a temperatura ambiente e byte indicando a detecção de gases inflamáveis e/ou fumaça.
  • Será considerado o LED ligado ao GPIO 13 como um breathing light, piscando sempre para indicar que o dispositivo embarcado está operando.

Projeto montado

Na figura 6 está uma foto do projeto completo montado. Neste projeto, foi usado como base a SparkFun baseplate.

SigFox

Código-fonte do projeto

O código-fonte do projeto está disponível no seu repositório Github oficial: https://github.com/phfbertoleti/detector_gas_inflamavel_sigfox_tagoio.

Leia atentamente todos os seus comentários para total entendimento do mesmo. Utilize a Arduino IDE para compilar e gravá-lo no Arduino UNO. Como referência, durante o desenvolvimento, utilizei a versão 1.8.10 para Linux 64 bits.

Informações para debug via Serial Monitor (verboso)

O projeto contempla debug verboso por meio de mensagens na UART nativa, visíveis pelo Serial Monitor. Para fins de melhor organização, é possível habilitar ou desabilitar estas mensagens em tempo de compilação. Para isso, existem três defines, conforme mostrado abaixo:

Por padrão, todas as mensagens de debug verboso são escritas. Caso desejar alterar este comportamento, basta deixar descomentado apenas os defines dos debugs verbosos que deseja ver.

Obtenção dos dados enviados na SigFox Cloud

Uma vez enviados os dados (no caso deste projeto, de 15 em 15 minutos), é possível visualiza-los e também visualizar a qualidade do sinal de transmissão através da SigFox Cloud. Para isso, siga o procedimento abaixo:

  1. Faça login com sua conta no Backend SigFox
  2. Feito o login, na parte superior da página, clique em Device
  3. Será exibida uma lista dos modems SigFox que vocÊ possui associados à sua conta. Clique sobre o Id daquele device correspondente ao deste projeto
  4. Serão exibidas informações gerais deste modem. Do lado esquerdo, clique sobre Messages
  5. A partir deste momento, serão exibidas todas as mensagens enviadas pelo dispositivo, incluindo a qualidade do sinal de transmissão (LQI).

Serão exibidos os 12 bytes enviados, sendo eles:

  • Byte 0: temperatura ambiente (°C)
  • Byte 1: estado do sensor de gases inflamáveis e fumaça:
    – 0x00:gases inflamáveis e fumaça não detectados;
    – 0x01: gases inflamáveis e/ou fumaça detectados;
  • Bytes 2 até 11: reservado para uso futuro (enviados, neste momento, como 0x00)

Ainda sobre as mensagens recebidas, uma recomendação é sempre ficar de olho na LQI, tentando mantê-lo o melhor possível. Se a qualidade indicada estiver baixa, pode indicar ao menos uma das situações abaixo:

  • A antena usada do dispositivo não é adequada para o uso de SigFox. No Brasil, o SigFox utiliza frequências em torno de 902.200 MHz para uplink, sendo assim a antena deve operar com o maior ganho possível nesta frequência.
  • Seu dispositivo se encontra em uma zona de pouca cobertura SigFox (poucas ou nenhnuma radio-base nas proximidades).
  • O modem tem um pico de consumo de corrente elétrica de até 120mA na hora de transmitir dados para a SigFox Cloud. Se sua fonte não estiver adequada com este consumo, pode resultar na não transmissão ou transmissão com baixa qualidade.

Próximos passos

No próximo artigo desta série será mostrado como integrar o SigFox Cloud a plataforma IoT Tago.io, de forma a permitir a exibição em forma de dashboards, tratamento e processamento dos dados obtidos e geração de alertas em caso de detecção de gases inflamáveis e/ou fumaça.

Referências

  • Post “Sensor de Gás MQ-135 e a família MQ de detectores de Gás “, do Portal Vida de Silício: https://portal.vidadesilicio.com.br/sensor-de-gas-mq-135/
  • Quick-start guide – SigFox: https://build.sigfox.com/technical-quickstart

Cadastre-se em nossa newsletter