sigfox_comm – uma ferramenta para usar SigFox no Linux

SigFox é uma das LPWANs mais utilizadas no mundo e é um dos nomes em evidência quando se fala de Internet das Coisas. Com boa cobertura no Brasil e no exterior, o SigFox é utilizado em vários segmentos de mercado: agricultura, smart cities, indústrias, logística, gerenciamento de suprimentos, energia e por aí vai. Portanto, ao se projetar uma solução em Internet das Coisas, SigFox é um nome forte para a escolha da LPWAN a ser utilizada.

Como o número de projetos e soluções em Internet das Coisas utilizando Linux Embarcado como sistema operacional vem crescendo nos últimos anos, logo faz sentido ter algo para interagir com a rede SigFox a partir do Linux e um modem SigFox. Este artigo visa mostrar a sigfox_comm, uma ferramenta Linux open-source (de minha autoria) que permite o envio de dados para a rede SigFox a partir do Linux.

 

Requisito - modem SigFox a ser utilizado

Esta ferramenta foi preparada para o uso do Linux com o modem SigFox WSSFM11R2D, do fabricante Wisol. Este modem possui comunicação serial, a partir de uma UART. É importante ressaltar que este modem trabalha com nível de tensão 3,3V (alimentação e na comunicação serial), não sendo tolerante a 5V.

 

Codificação e repositório da sigfox_comm

A ferramenta sigfox_comm foi inteiramente feita em linguagem C, visando ser leve (poucos recursos computacionais utilizados) e de execução rápida. Dessa forma, seu uso é viável mesmo em sistemas com hardware muito modesto. Ainda, não há nenhuma dependência, ou seja, somente com o GCC e as bibliotecas padrão é possível compilar a ferramenta.

O código-fonte da ferramenta pode ser obtido no seguinte repositório Github: https://github.com/phfbertoleti/sigfox_comm/

 

Testes e validações executados

A sigfox_comm foi testada e validada nos seguintes sistemas Linux:

  • Notebook comum, utilizando como sistema operacional o Ubuntu 16.04 LTS e utilizando um conversor USB-Serial de 3,3V de nível de tensão de operação.
  • Placa Pocket Beaglebone, utilizando como sistema operacional o Debian GNU/Linux 9 (stretch).
  • Placa Raspberry Pi Zero W, utilizando como sistema operacional o Raspbian GNU/Linux 10 (buster) e utilizando um conversor USB-Serial de 3,3V de nível de tensão de operação.
  • Placa Raspberry Pi 3B, utilizando como sistema operacional o Raspbian GNU/Linux 9 (stretch) e utilizando um conversor USB-Serial de 3,3V de nível de tensão de operação.

 

Comunicação serial com o modem SigFox WSSFM11R2D

O modem SigFox WSSFM11R2D possui comunicação serial via UART, sendo que a configuração padrão é: 

  • Baudrate: 9600bps
  • Número de bits: 8 bits
  • Paridade: nenhuma
  • Número de stop-bits: 1 bit

 

Ou seja, para utilizar SigFox em seu sistema Linux, você precisará do modem SigFox, alimentação 3,3V e de uma UART somente.

 

Como baixar o código-fonte e compilar

 

Para baixar o código-fonte e fazer sua compilação, siga o procedimento abaixo:

 

  1. No sistema Linux em que deseja utilizar a ferramenta, clone o repositório do projeto com o seguinte comando:

    git clone https://github.com/phfbertoleti/sigfox_comm.git
  2. Entre no diretório do código-fonte da ferramenta (sigfox_comm\source_code).
  3. Compile o código-fonte utilizando o comando make


A compilação não deve demorar mais do que alguns segundos. A ferramenta compilada estará no mesmo diretório do código-fonte, sob o nome sigfox_comm.

 

Como utilizar a sigfox_comm

 

A utilização dessa ferramenta é feita via linha de comando (não há GUI para ela). Como a ferramenta faz uso de uma UART, se seu usuáreio Linux não estiver no grupo dialout, será preciso executá-la como super usuário (sudo).

 

Sua chamada é feita da seguinte forma:

 

sudo ./sigfox_comm PATH_UART DATA_ARRAY


Onde: 

  • Primeiro argumento (PATH_UART): caminho do arquivo referente a UART que o modem SigFox está ligado (por exemplo: /dev/ttyO4)
  • Segundo argumento (DATA_ARRAY): dados a serem enviados a rede SigFox. Estes dados devem estar na forma de uma Hex-String. Como a rede SigFox limita o tamanho máximo dos bytes a serem enviados em 12 bytes, este argumento (Hex-String) deve ter, no máximo, 24 caracteres ( = 24 bytes) . Caso uma Hex-String maior que 24 caracteres seja passada neste segundo argumento, a ferramenta considerará apenas os primeiros 24 caracteres e ignorará o restante.

 

Portanto, um exemplo de chamada seria:

 

sudo ./sigfox_comm /dev/ttyO4 010203040506070809101112

 

O que gera um output conforme mostrado na figura 1.

 

Output da execução da ferramenta sigfox_comm

Figura 1 - output da execução da ferramenta sigfox_comm

 

Feito isso, seus dados serão enviados à rede SigFox e já estarão disponíveis no backend SigFox para consulta e uso.

 

Exemplos de utilização

 

O repositório da ferramenta possui alguns exemplos de utilização (feitos para placas específicas) em: https://github.com/phfbertoleti/sigfox_comm/tree/master/examples

Os exemplos são em Shell Script, facilitando portanto o uso destes, de modo que com exceção da própria ferramente, não é necessária nenhuma outra compilação. É importante ressaltar que, para funcionarem, os Shell Scripts dos exemplos devem estar na mesma pasta onde se encontra a ferramenta compilada.

 

 

Sem licença

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

Notícias » sigfox_comm - uma ferramenta para usar SigFox no Linux
Comentários:
Notificações
Notificar
guest
0 Comentários
Inline Feedbacks
View all comments
Talvez você goste:

Nenhum resultado encontrado.

Séries

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