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.

ThingSpeak 1
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.

P 20150203 213337 1 1
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”.
canais1
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.

fritzing
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:

commands
Figura 5 – Resultado na Beaglebone Black.

Resultado no ThingSpeak:

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

[wpseo_breadcrumb]
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
Privacy Settings saved!
Configurações de Privacidade

Entenda quais dados e informações usamos para ter melhor entrega de conteúdo personalizado para você.

These cookies are necessary for the website to function and cannot be switched off in our systems.

Para usar este site, usamos os seguintes cookies tecnicamente exigidos

  • wordpress_test_cookie
  • wordpress_logged_in_
  • wordpress_sec

Decline all Services
Accept all Services