6 Comentários

Sistema embarcado e backend SigFox

Este post faz parte da série Detecção de Gases Inflamáveis com SigFox. Leia também os outros posts da série:

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.

 

Detecção de Gases Inflamáveis

Figura 1 - shield IoT Tatamaya Black e módulo de conectividade Sigfox SigBOT

 

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

Detecção de Gases Inflamáveis

Figura 2 - pinout e funcionalidades do shield IoT Tatamaya Black

 

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.

 

Detecção de Gases Inflamáveis

Figura 3 - módulo com sensor MQ-2 (fonte da imagem: https://www.filipeflop.com/produto/sensor-de-gas-mq-2-inflamavel-e-fumaca/)

 

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.

 

Detecção de Gases Inflamáveis

Figura 4 - potenciômetro para ajuste de sensibilidade do módulo sensor MQ-2

 

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).

 

Detecção de Gases Inflamáveis

Figura 5 - circuito esquemático do projeto

 

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.

 

Figura 6 - projeto completo montado

Figura 6 - projeto completo montado

 

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

Outros artigos da série

Integração com plataforma IoT >>
Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.

Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais e promoções.

Comunicações » Sistema embarcado e backend SigFox
Comentários:
Notificações
Notificar
guest
6 Comentários
recentes
antigos mais votados
Inline Feedbacks
View all comments
Ismael Lopes da Silva
Membro
15/03/2020 21:14

Pedro, muito bom seu artigo. Parabéns!

Cirineu C Fernandes
Cirineu C Fernandes
06/03/2020 20:31

Parabéns ao Pedro Bertoleti pelo excelente artigo. Ele soube explorar perfeitamente todos os recursos dos hardwares utilizados no projeto, equipamentos esses que auxiliam muito o desenvolvimento de aplicações em IoT. O protocolo SIGFOX oferece um forma de comunicação plena e eficiente para dispositivos de internet das coisas.

Fabio Rosa
Fabio Rosa
06/03/2020 16:03

Impressionante a qualidade e a clareza. Com certeza este artigo vai ajudar muita gente que quer entender como fazer uma super aplicacao usando a rede Sigfox e direcionando para uma plataforma na cloud como a TagoIO.

Talvez você goste:

Nenhum resultado encontrado.

Séries



Outros da Série

Menu

WEBINAR
 

Soluções inteligentes para acionamento de MOSFETs/IGBTs com família STDRIVE

Data: 08/10 às 15:00h - Apoio: STMicroelectronics
 
INSCREVA-SE AGORA »



 
close-link