Anda di halaman 1dari 12

Desenvolva um sensor de temperatura pronto para

nuvem com o Arduino Uno e o IBM IoT Foundation,


Parte 1: Desenvolva o circuito e configure o ambiente
Kyle Brown
Distinguished Engineer, CTO for Cloud and Emerging
Technologies
IBM

05/Dez/2014

Este tutorial (o primeiro em uma srie de quatro partes) lhe apresenta ao microcontrolador
Arduino, discute como o autor o usou para resolver um problema de controle domstico,
apresenta alguns complementos de hardware para o Arduino e mostra como conect-los e
mostra tambm como carregar programas para testar o hardware.
Visualizar mais contedo nesta srie
Inscreva-se no IBM Bluemix
Esta plataforma em nuvem fornece muitos servios grtis, tempos de execuo e
infraestrutura para ajudar a desenvolver e implementar rapidamente o seu prximo aplicativo
mvel ou da web.

Muitos de vocs devem morar em uma casa saturada de tecnologia como eu. No centro dessa
web de dispositivos conectados est meu roteador de WiFi domstico, conectado Internet por
meio de um modem a cabo. Portanto, quando, de repente, voc ouve lamentaes de toda a casa
porque laptops, tablets, consoles de jogos, DVRs e todos os demais dispositivos conectados
Internet falharam pelo fato de o roteador WiFi ter parado de funcionar, sabe que algo est errado.
No passado, tentei vrias abordagens para melhorar essa situao: substitui o roteador por um
modelo novo, atualizei o firmware, substitui o modem a cabo e fiz a empresa de cabo verificar
o sinal nas linhas coaxiais tudo em vo. O consenso na comunidade virtual entre aqueles
com problemas semelhantes que o roteador ou o modem (ou ambos) deve estar ficando muito
quente. Isso pareceu improvvel para mim, pois no parecia quente no gabinete de fiao onde
eu instalei esses equipamentos, mas minha avaliao das temperaturas no era uma amostragem
cientfica. O que eu precisava era uma maneira de descobrir a temperatura do gabinete de fiao
no momento ou imediatamente antes de as falhas ocorrerem, para que eu pudesse ver se havia
uma correlao. E essa necessidade me levou ao meu experimento.
Copyright IBM Corporation 2014. Todos os direitos reservados.
Desenvolva um sensor de temperatura pronto para nuvem com
o Arduino Uno e o IBM IoT Foundation, Parte 1: Desenvolva o
circuito e configure o ambiente

Marcas Registradas
Pgina 1 de 12

developerWorks

ibm.com/developerWorks/br/

Como muitos outros engenheiros, fui fascinado por vrios anos pelos recursos da plataforma de
eletroeletrnicos de software livre Arduino . O Arduino um microcontrolador de placa nica que
foi apresentado em 2005 (e batizado por seus criadores em homenagem a um bar na cidade de
Ivrea no norte da Itlia). O Arduino programado usando uma linguagem (chamada Processing)
baseada na linguagem Java . A comunidade do Arduino enorme e na web existem centenas
de exemplos do uso da placa para realizar medies a partir de vrios sensores e controlar todos
os tipos atuadores. Dessa forma, quando pensei sobre meu problema, minha ateno se voltou
para uma placa Arduino Uno abandonada ao lado da minha mesa, juntamente com um escudo
Ethernet Arduino na minha gaveta e o novssimo sensor de temperatura que havia chegado na
semana anterior e estava esperando por um projeto. E conforme eu pensava sobre o IBM Internet
of Things (IoT) Foundation e os recursos para o desenvolvimento de IoT que fazem parte do
IBM Bluemix , o conceito do meu projeto comeou a tomar forma. A Figura 1 mostra o projeto
todo que eu queria desenvolver.

Figura 1. Ilustrao do design conceitual do projeto

No design, a placa Arduino, conectada a um sensor de temperatura, envia informaes sobre a


temperatura (Fahrenheit e Celsius) e a umidade em um intervalo regular para o IoT Foundation
por meio do protocolo MTTQ e representado graficamente, usando recursos no Bluemix. O
IoT Foundation permite que esses dados sejam plotados em um grfico em tempo real. Voc
concluir todo esse projeto ao longo dessa srie de quatro partes.

Conforme eu pensava sobre o IBM Internet of Things


Foundation e os recursos para o desenvolvimento de IoT
que fazem parte do IBM Bluemix, o conceito d meu projeto
comeou a tomar forma.

Introduo a um Arduino
Se voc deseja acompanhar e desenvolver o mesmo sensor que eu, primeiro necessrio ter
uma das muitas placas Arduino ou clones do Arduino existentes. (Mas tenha cuidado embora
muitas placas, como a Intel Galileo, afirmem ser "compatveis com Arduino", h diferenas
suficientes nas bibliotecas e tolerncias dos eletroeletrnicos internos para, por vezes, tornar o
uso de uma placa "compatvel" complicado.) Eu gosto do Arduino Uno R3, que a reviso mais
nova do Arduino "clssico" baseada no chipset ATMega128. possvel encontrar facilmente essa
placa em lojas fsicas, como a Radio Shack, e na Amazon e outras varejistas online por menos de
US$ 30. A Figura 2 uma foto da parte superior da Uno R3.

Desenvolva um sensor de temperatura pronto para nuvem com


o Arduino Uno e o IBM IoT Foundation, Parte 1: Desenvolva o
circuito e configure o ambiente

Pgina 2 de 12

ibm.com/developerWorks/br/

developerWorks

Figura 2. Arduino Uno

Quando receber sua placa, visite primeiro o website do Arduino, que o lar da comunidade do
Arduino e contm uma profuso de informaes e documentaes das placas, seus recursos e
o software que foi escrito para aproveit-las. Para esse rpido tour, comearei na parte superior
da placa e irei gui-lo pela borda externa para revisar as partes mais importantes da placa da
perspectiva desse tutorial.
Na parte superior h uma linha de furos para pinos que podem ser usados para ler valores de
ou controlar dispositivos digitais. Passando para a parte inferior, h uma linha que metade
ocupada por pinos para leitura ou gravao de valores analgicos, enquanto os pinos restantes
nessa linha fornecem diferentes tipos de conexes de aterramento e energia. Na parte inferior
esquerda da placa, est uma tomada para uma fonte de alimentao de 5 V. Voc usar essa
tomada se desejar energizar seu projeto quando ele no estiver conectado ao computador. A
prxima tomada acima dessa no lado esquerdo da placa um conector para um cabo USB. Esse
conector usado para a comunicao com o computador a partir do qual voc programa a placa
e para energizar a placa quando o cabo est conectado. Por fim, na parte superior esquerda
da placa est o boto de reconfigurao apenas o item para quando seu software estiver se
comportando de forma inadequada.
Um dos pontos fortes da comunidade do Arduino o fato de que no apenas a placa bsica
teve suas especificaes liberadas na comunidade de software livre, resultando em muitas
verses dela, mas tambm foram desenvolvidos muitos escudos diferentes para ela. O desse
projeto a verso R3 do escudo Ethernet, que fornece acesso a uma conexo Ethernet a 10
ou 100 MB atravs de um conector RJ45 padro. Ele tambm est disponvel em muitos dos
mesmos varejistas que o Arduino Uno, por aproximadamente US$ 30. A Figura 3 mostra o escudo
Ethernet.

Desenvolva um sensor de temperatura pronto para nuvem com


o Arduino Uno e o IBM IoT Foundation, Parte 1: Desenvolva o
circuito e configure o ambiente

Pgina 3 de 12

developerWorks

ibm.com/developerWorks/br/

Figura 3. Escudo Ethernet do Arduino

O que interessante sobre essas placas que uma se conecta a outra de forma que um
projeto pode ter um Arduino na parte inferior, um escudo Ethernet ou WiFi no meio e talvez um
escudo de motor (para controle por rob) ou um escudo de extenso adicional para sensores
especiais na parte superior. possvel ter uma ideia de como as placas ficam quando empilhadas
pela foto na Figura 4.

Figura 4. Arduino Uno e escudo Ethernet conectados

Aps empilhar as placas, voc pode pensar que est pronto para avanar, mas espere: primeiro
necessrio fazer o download e instalar o Arduino IDE, que est disponvel no link de download
no website do Arduino e compatvel com Mac, Windowse Linux. Se desejar, possvel testar
Desenvolva um sensor de temperatura pronto para nuvem com
o Arduino Uno e o IBM IoT Foundation, Parte 1: Desenvolva o
circuito e configure o ambiente

Pgina 4 de 12

ibm.com/developerWorks/br/

developerWorks

uma das verses beta mais novas, mas para esse tutorial usarei a verso liberada atual do IDE,
que a Arduino 1.0.5.
Faa o download do IDE (que normalmente vem em um arquivo ZIP ou TAR, dependendo do
OS do computador) e siga as instrues para instalar o IDE e os drivers USB no computador.
Nesse ponto, possvel conectar o cabo USB para energizar a placa (e muitas vezes concluir a
instalao do driver), conectar o cabo Ethernet, abrir o IDE e comear a testar os exemplos de
biblioteca fornecidos com o IDE mas isso est ficando um pouco frente do exemplo.

Desenvolvendo o circuito
Para o propsito desse projeto, h algumas outras peas de hardware a serem adquiridas. A
primeira uma "placa de ensaio" de criao de prottipos padro. Se voc engenheiro eltrico
ou tem a eletrnica com o hobby, certamente est familiarizado com elas. Se no for, ser
necessrio comprar uma como a mostrada na Figura 5.

Figura 5. Placa de ensaio de criao de prottipos

Os mesmos varejistas que eu mencionei anteriormente tm essas placas por aproximadamente


US$ 5 sozinhas ou talvez por US$ 10 a 15 quando inclusas com um conjunto de fios de conexo
(que outro conjunto de hardware necessrio). Para os no iniciados: a placa de ensaio funciona
da seguinte forma, as linhas numeradas em cada lado so eletricamente conectadas, portanto,
os pinos de "a" a "e" na linha 1 esto todos conectados em conjunto em ambos os lados. Se
voc inserir o fio condutor de um componente eltrico, como um resistor, no pino e na linha 1,
Desenvolva um sensor de temperatura pronto para nuvem com
o Arduino Uno e o IBM IoT Foundation, Parte 1: Desenvolva o
circuito e configure o ambiente

Pgina 5 de 12

developerWorks

ibm.com/developerWorks/br/

possvel conectar um fio no pino d na linha 1, que poderia se conectar a outro componente
em outra linha. Usando a placa de ensaio, possvel criar rapidamente prottipos de circuitos
eltricos temporariamente uma maneira rpida e fcil de testar conexes entre diferentes
componentes.
Ento o que voc ir conectar? Bem, o Arduino e o escudo Ethernet tm a capacidade de ler
medidas digitais (1s ou 0s) de qualquer um dos pinos digitais na parte superior. possvel, ento,
escrever programas em Processing para enviar essas leituras (ou a interpretao delas) para
outros computadores. A informao especfica desejada uma leitura de temperatura e para
isso, necessrio um sensor de temperatura.
H diversos sensores de temperatura compatveis com Arduino disponveis, mas o que eu usei
no meu projeto o sensor de temperatura e umidade Virtuabotix DHT11. Ele est disponvel no
website da Virtuabotix ou na Amazon por menos de US$ 10. Essa pequena maravilha de quatro
pinos mostrada na Figura 6.

Figura 6. Sensor de temperatura e umidade DHT11

Quando voc receber o sensor DHT11, ele dever vir com um conjunto de documentao de
pinagem mostrando o que todos os pinos no sensor fazem. Se no, possvel encontrar essas
informaes no website da Virtuabotix.
Enquanto estiver visitando o website da Virtuabotix, faa o download das bibliotecas do Arduino
(que vm empacotadas como um arquivo zip) para o Virtuabotix DHT11. Elas esto disponveis
no link de download nessa mesma pgina. Extraia-as no subdiretrio Libraries da estrutura de
diretrio do Arduino IDE. Quando reiniciar o Arduino IDE, voc ver que as amostras do DHT11
esto disponveis para uso, da mesma forma que as amostras integradas para o escudo Ethernet
e outros dispositivos.

Desenvolva um sensor de temperatura pronto para nuvem com


o Arduino Uno e o IBM IoT Foundation, Parte 1: Desenvolva o
circuito e configure o ambiente

Pgina 6 de 12

ibm.com/developerWorks/br/

developerWorks

Agora que voc tem todas as partes fsicas, est na hora de conectar seu projeto. O diagrama de
conexo na Figura 7 mostra todas as conexes que precisam ser feitas.

Figura 7. Diagrama de conexo do projeto

Vamos revisar a conexo dessas peas. O Arduino colocado na parte inferior, enquanto o
escudo Ethernet colocado sobre ele (veja a Figura 4 para um exemplo de como isso funciona).
Eu apenas conectei o DHT11 em uma coluna de pinos no usada na placa de ensaio. Observe
que a frente do DHT11 com a grade de waffle no o lado com a etiqueta est voltado para
a frente. O pino terra no DHT11 (que o na extrema direita com a grade de waffle voltada para
a frente) conectado por meio do fio preto ao pino GND no Arduino. O pino VDD no DHT11 (o
mais a esquerda) conectado por meio do fio vermelho ao pino da fonte de alimentao de 5
V no Arduino. Por fim, o pino DTA (o segundo da esquerda) conectado ao pino Digital 3 no
Arduino. Lembre-se do nmero desse pino pino 3 porque ele se torna importante ao escrever
o software que referencia o DHT11.
Sua configurao final deve ter uma aparncia semelhante Figura 8.

Desenvolva um sensor de temperatura pronto para nuvem com


o Arduino Uno e o IBM IoT Foundation, Parte 1: Desenvolva o
circuito e configure o ambiente

Pgina 7 de 12

developerWorks

ibm.com/developerWorks/br/

Figura 8. Conexes concludas para o prottipo

Neste momento, uma boa ideia testar individualmente os componentes. Talvez voc deseje
comear testando a instalao adequada dos drivers USB no seu computador para ver se ele est
se comunicando com sucesso com o Arduino. Abra o Arduino IDE e clique em File > Examples >
01.Basics > Blink, como mostrado na Figura 9.

Figura 9. Opo de menu Blink

O terminal Blink (sketch) (os programas no Arduino so chamados de sketches) um simples


que permite testar a comunicao com o Arduino. Tudo o que ele faz induzir um dos LEDs
integrados na placa Arduino a piscar com um perodo de um segundo. Se voc instalou os drivers
de dispositivo USB corretamente, deve ser capaz de selecionar seu tipo de placa clicando em
Tools > Board (por exemplo, se estiver usando um Uno, clique nele) e sua porta serial no menu
SerialPort (consulte as ferramentas do seu OS, como o Windows Device Manager, para encontrar
o nome ou nmero da porta serial sendo usada). Se qualquer uma dessas selees estiver
indisponvel, consulte a ajuda no website do Arduino. Aps selecionar sua placa e porta serial,
possvel fazer o upload do sketch para a placa clicando no boto Upload (a seta apontando para
Desenvolva um sensor de temperatura pronto para nuvem com
o Arduino Uno e o IBM IoT Foundation, Parte 1: Desenvolva o
circuito e configure o ambiente

Pgina 8 de 12

ibm.com/developerWorks/br/

developerWorks

a direita, segundo boto a partir da esquerda na barra de ferramentas), como mostrado na Figura
10.

Figura 10. Sketch Blink com o boto de upload

Se a mensagem Done uploading for exibida e voc observar que o LED comea a piscar, a
comunicao com o Arduino est sendo feita com sucesso. Caso contrrio, novamente, consulte
o website do Arduino para obter ajuda. Assim que comprovar que possvel se conectar ao
Arduino, voc deve testar um ou mais exemplos do escudo Ethernet, clicando em Examples >
Ethernet > Web Server.
Um truque para deixar exemplo de servidor da Web funcional que ele usa dois parmetros que
provavelmente precisam ser alterados. Prximo parte superior do sketch de exemplo, voc ver
as seguintes linhas de cdigo:
// Enter a MAC address and IP address for your controller below.
// The IP address will be dependent on your local network:
byte mac[] = {
0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192,168,1,177);

Nos escudos Ethernet mais novos, o endereo MAC est em um adesivo fixado no escudo.
(Para placas mais antigas, ser necessrio criar um.) Mude mac[] (valores da varivel) no cdigo
para corresponder ao endereo MAC mostrado no adesivo. Da mesma forma, necessrio
alterar o endereo IP para um endereo aberto na sua rede local. Faa essas alteraes, salve
o sketch com um novo nome e faa o upload dele. Ele deve funcionar agora. Por fim, se voc
fez o download e extraiu as bibliotecas do DHT11 para o diretrio correto, deve conseguir clicar
em Examples > DHT11 > dht11_functions e carregar o sketch. Prximo parte superior desse
sketch, voc ver o seguinte cdigo:
void setup()
{
DHT11.attach(2);
Serial.begin(9600);
Serial.println("DHT11 TEST PROGRAM ");
Serial.print("LIBRARY VERSION: ");
Serial.println(DHT11LIB_VERSION);
}

Desenvolva um sensor de temperatura pronto para nuvem com


o Arduino Uno e o IBM IoT Foundation, Parte 1: Desenvolva o
circuito e configure o ambiente

Pgina 9 de 12

developerWorks

ibm.com/developerWorks/br/

Lembra que voc conectou o pino DTA do DHT11 ao pino 3 no Arduino? Isso porque o pino 2
usado pelo escudo Ethernet e est indisponvel. Ento, altere o 2 na linha DHT11.attach(2) para
3, salve o sketch com um nome diferente e faa o upload dele. Em seguida, abra o Serial Monitor
(clique em Tools > Serial Monitor) e voc deve ver a sada do programa mostrando dados de
temperatura e umidade ao rolar a tela para baixo.

Concluso e prximas etapas


Agora que voc comprovou que todas as peas esto funcionais, est pronto para avanar para
a prxima parte da srie. Na Parte 2, eu explico o protocolo de comunicao do IoT MQTT
e discuto as bibliotecas do cliente do Arduino para MQTT, assim como algumas sugestes e
tcnicas para testar seus programas MQTT de forma local. Discuto tambm os recursos do IBM
IoT Foundation, mostro como conectar um programa em execuo no Arduino no IoT Foundation
e reno todas as partes para mostrar como os dados do sensor so recebidos, formatados para o
IoT e enviados para a nuvem.

Desenvolva um sensor de temperatura pronto para nuvem com


o Arduino Uno e o IBM IoT Foundation, Parte 1: Desenvolva o
circuito e configure o ambiente

Pgina 10 de 12

ibm.com/developerWorks/br/

developerWorks

Recursos
IBM IoT Foundation: experimente o IBM IoT Foundation e inscreva-se para o programa beta.
Arduino: visite o website do Arduino.
"Bluemix and the Internet of Things" (Ryan Baxter, developerWorks, julho de 2014): descubra
como o IBM Bluemix e o IBM IoT Foundation podem trabalhar juntos.
DHT11: saiba mais sobre o sensor DHT11 no website da Virtuabotix.
Arduino IDE: Faa o download do IDE do website do Arduino.
Bibliotecas do sensor de temperatura DHT11: faa o download das bibliotecas do DHT11.

Desenvolva um sensor de temperatura pronto para nuvem com


o Arduino Uno e o IBM IoT Foundation, Parte 1: Desenvolva o
circuito e configure o ambiente

Pgina 11 de 12

developerWorks

ibm.com/developerWorks/br/

Sobre o autor
Kyle Brown
Kyle Brown Distinguished Engineer na IBM Software Services para WebSphere,
especializado em SOA e Tecnologias Emergentes. Kyle fornece servios de
consultoria, educao e mentorizao em SOA, tpicos orientados a objetos e
tecnologias J2EE para clientes da Fortune 500. Ele coautor de Enterprise Java
Programming with IBM WebSphere e as variveis do Persistence in the Enterprise.
Tambm um palestrante frequente em conferncias sobre os tpicos de SOA,
Enterprise Java, design em OO e padres de design.
Copyright IBM Corporation 2014. Todos os direitos reservados.
(www.ibm.com/legal/copytrade.shtml)
Marcas Registradas
(www.ibm.com/developerworks/br/ibm/trademarks/)

Desenvolva um sensor de temperatura pronto para nuvem com


o Arduino Uno e o IBM IoT Foundation, Parte 1: Desenvolva o
circuito e configure o ambiente

Pgina 12 de 12

Anda mungkin juga menyukai