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

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.

Beaglebone Black » Beaglebone Black - IoT com ThingSpeak
Comentários:
Notificações
Notificar
guest
10 Comentários
recentes
antigos mais votados
Inline Feedbacks
View all comments
Leonardo L
Leonardo L
03/10/2015 13:05

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

Igor Borges Tavares
Igor Borges
Reply to  Leonardo L
04/10/2015 10:44

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
pcpx
15/03/2015 11:45

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
Igor Borges
Reply to  pcpx
15/03/2015 12:28

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

Paulo Paixao
pcpx
Reply to  Igor Borges
15/03/2015 19:52

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
Igor Borges
Reply to  pcpx
16/03/2015 08:16

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://embarcados.com.br/beaglebone-black-conversor-ad-sensor-ultrassonico/"

Neuber Jose de Sousa Sousa
neuber jose sousa
14/02/2015 12:47

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
Igor Borges
Reply to  neuber jose sousa
14/02/2015 20:03

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 de Sousa Sousa
neuber jose sousa
12/02/2015 08:50

Como usar isso no android app ?

Igor Borges Tavares
Igor Borges
Reply to  neuber jose sousa
14/02/2015 10:25

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"?

Talvez você goste:

Séries

Menu

WEBINAR
 
Debugging
em Linux embarcado

 

Data: 30/09 às 19:30h - Apoio: Mouser Elecctronics
 
INSCREVA-SE AGORA »



 
close-link