Beaglebone Black - IoT com ThingSpeak

thingspeak

Introdução

Já faz alguns anos que a famigerada Internet of Things (IoT) está entre os tópicos mais badalados da área. Não que antes não houvessem dispositivos embarcados que se conectassem à internet, mas de um tempo pra cá, impulsionado pelo estilo de vida cada vez mais conectado da população e pelo avanço de hardware, surgiu um movimento forte de pessoas e empresas trabalhando nesse assunto. 

E com tanta gente pensando e desenvolvendo soluções para conectar seus dispositivos na internet, já surgiram na comunidade incontáveis abordagens e projetos diferentes para todo tipo de situação em que o seu dispositivo possa se encaixar.

Neste post vou falar um pouco de um desses projetos, o ThingSpeak, que nada mais é do que uma aplicação e API open source desenvolvidos com o framework Ruby on rails, e que podem ser utilizados para armazenar, enviar, organizar, processar e até exibir de forma gráfica os seus dados, que podem ser informações comuns, de localização, ou de status dos seus dispositivos.

A aplicação ThingSpeak com a qual as "coisas" irão se conectar por HTTP pode ser instalada em qualquer computador, dispositivo, ou até mesmo ser utilizada na nuvem por meio do thingspeak.com.

A ideia é que a plataforma funcione como um concentrador de dados e serviços, onde as informações de todos os seus dispositivos vão estar armazenadas e organizadas.

Figura 1 - ThingSpeak e IoT.

 

Na prática

Como de costume vou usar uma Beaglebone Black revisão C e sua última imagem oficial com Debian. Também vou utilizar o acesso à internet para o nosso exemplo e para clonar o projeto do GitHub.

Nosso código será desenvolvido em Python 2.7.3 e irá ler a temperatura ambiente com o sensor de temperatura LM35 utilizando o conversor A/D da Beaglebone Black conforme explicado no post anterior, e irá subir essa e outras informações do dispositivo para o thingspeak.com.

Figura 2 - Beaglebone Black e o sensor de temperatura LM35.

 

Criando o seu canal no ThingSpeak.com

  • Acesse o site thingspeak.com;
  • No canto superior esquerdo clique em cadastro, preencha com suas informações e crie sua conta;
  • Entre com seu login no site, e clique na aba "Canais -> Meus canais";
  • No painel "Meus Canais" clique em "New Channel".
  • Coloque o nome que você quiser ao seu canal e aos campos de dados que você irá trabalhar, e clique em "Save Channel".
Figura 3 - Criando canal no ThingSpeak.com.

 

  • Em seguida clique na aba "Chaves", e preste atenção na "Chave de Escrita", você vai precisar dela para fazer upload dos dados coletados mais adiante;
  • Por último clique na aba "Private View", onde cada campo que você nomeou já tem o seu próprio gráfico construído, e está aguardando dados para serem desenhados.

O circuito

O circuito para ligar o sensor LM35 na Beaglebone Black é simples, e pode ser observado no esquema abaixo.

Figura 4 - Montagem da Beaglebone Black com o sensor de temperatura LM35.

 

O script

Agora vamos desenvolver um código para a Beaglebone Black realizar a leitura do sensor de temperatura e envia-la para o thinsgspeak.com.

O código está no GitHub. Para clonar o projeto, habilitar o conversor A/D e rodar o script basta utilizar os comandos seguintes: 

 

As explicações estão todas nos comentários do script, assim acho que fica mais fácil de visualizar o funcionamento do programa.

 

 

Resultado na Beaglebone Black:

 

Figura 5 - Resultado na Beaglebone Black.

 

 

Resultado no ThingSpeak:

Figura 6 - Resultado no ThingSpeak.

 

Referências

[1] https://thingspeak.com/

[2] https://github.com/iobridge/ThingSpeak

[3] http://rubyonrails.org/

[4] https://thingspeak.com/channels/public

[5] https://www.embarcados.com.br/beaglebone-black-gravando-uma-nova-imagem/

[6] https://www.embarcados.com.br/beaglebone-black-internet-pela-usb/

[7] https://github.com/igorTavares/bbb_thingspeak_temperature

[8] http://www.ti.com/lit/ds/symlink/lm35.pdf

[9] https://www.embarcados.com.br/beaglebone-black-conversor-ad-sensor-ultrassonico

NEWSLETTER

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

Obrigado! Sua inscrição foi um sucesso.

Ops, algo deu errado. Por favor tente novamente.

Licença Creative Commons
Beaglebone Black - IoT com ThingSpeak por Igor Borges Tavares. Esta obra está licenciado com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.

10
Deixe um comentário

avatar
 
4 Comment threads
6 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
4 Comment authors
Leonardo LPaulo PaixaoIgor Borges Tavaresneuber jose sousa Recent comment authors
  Notificações  
recentes antigos mais votados
Notificar
Leonardo L
Visitante
Leonardo L

Voce teria como colocar esse scritp para ler o Sensor de Temperatura DTH22?
OBrigado

Igor Borges Tavares
Visitante
Igor Borges

Fala Leonardo! É possível sim!

E o serviço fica bem fácil com essa bibloteca open-source aqui:

https://github.com/adafruit/Adafruit_Python_DHT

Bem tranquilo!

Abraços!

Paulo Paixao
Visitante
pcpx

Ola Igor,

Sou novo em Linux.
Segui os passos e ocorreu erro (Permission denied) quando tentei habiliitar ao conversor A/D. Como posso contornar esse problema?

[email protected]:~/bbb_thingspeak_temperature$ echo BB-ADC > /sys/devices/bone_capemgr.*/slots
bash: /sys/devices/bone_capemgr.9/slots: Permission denied

Igor Borges Tavares
Visitante
Igor Borges

Você tem que executar como root. Tente rodar o comando "sudo su" antes!
Valeu!

Paulo Paixao
Visitante
pcpx

Blz Igor.

Deu certo usando o comando "Sudo su", mas ocorreu outro erro. Estou usando Debian GNU/Linux 7 BeagleBoard.org Debian Image 2015-02-01. Como posso sair dessa

[email protected]:/# echo BB-ADC > /sys/devices/bone_capemgr.*/slots

bash: echo: write error: File exists

Igor Borges Tavares
Visitante
Igor Borges

Esse "write error" provavelmente está acontecendo porque não deve ser a primeira vez que você está executando o comando, e o ADC já deve estar habilitado!

Rode o comando "cat /sys/devices/bone_capemgr.*/slots" e veja se o ADC já está habilitado.
Demonstrei seu funcionamento no artigo "http://www.embarcados.com.br/beaglebone-black-conversor-ad-sensor-ultrassonico/"

neuber jose sousa
Visitante
neuber jose sousa

seria algo como a sua opção 2. Sou developer. Tenho uma bbb e quero usa o android (celular) como client pra receber dados das "coisas". Com base no IoT

entende?

Igor Borges Tavares
Visitante
Igor Borges

Entendi cara, legal demais, realmente seria bem bacana um app para visualizar, e quem sabe até processar os dados!

Não conheço nenhum que faz isso hoje interagindo com o ThingSpeak, só o CloudSensor, mas ele faz o contrário, ele transforma o celular em uma das "coisas".

Não sou desenvolvedor Android, mas acho que deve ser tranquilo. Você só precisaria enviar um HTTP GET para o seu canal no ThingSpeak.com, ele vai retornar o feed inteiro dos dados que ele já recebeu, e dai você trabalha com eles como quiser.

Esse link explica legal o procedimento:
https://thingspeak.com/docs/channels#get_feed

neuber jose sousa
Visitante
neuber jose sousa

Como usar isso no android app ?

Igor Borges Tavares
Visitante
Igor Borges

Brother, não entendi sua pergunta... Você quer usar algum dispositivo Android para enviar dados para a nuvem ou que um app para visualizar o que seus dispositivos estão "upando"?