Buscar

Cap 4 - Projetos práticos e internet das coisas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 19 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 19 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 19 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

MICROCONTROLADORESMICROCONTROLADORES
E IOTE IOT
UNIDADE 4 – PROJETOSUNIDADE 4 – PROJETOS
PRÁTICOS E INTERNET DASPRÁTICOS E INTERNET DAS
COISASCOISAS
Autora: Eliny dos Santos GomesAutora: Eliny dos Santos Gomes
Revisor: Lucas Gonçalves CorreiaRevisor: Lucas Gonçalves Correia
INICIAR
Introdução
Caro(a) aluno(a),
Nesta unidade serão apresentados os arrays e strings usados em Arduino e os códigos para
implementá-los. Voltaremos ao estudo das entradas e saídas do Arduino, porém com um
enfoque diferente, pois serão conhecidas as funções capazes de configurar estas entradas e o
formato em que devem ser implementadas. Assim, iremos conhecer os conceitos de Internet das
Coisas e sua implementação com Arduino. A IoT está revolucionando o nosso mercado e muitas
inovações ainda virão. Ela nos elevará a outro patamar de automação, pensando não só nas
indústrias, mas nas residências, cidades etc. Temos um mundo a desbravar.
Bons estudos!

Autora:
Eliny dos Santos Gomes
Revisor:
Lucas Gonçalves Correia
MICROCONTROLADORES E IOT
UNIDADE 4 – PROJETOS PRÁTICOS E 
INTERNET DAS COISAS
INTRODUÇÃO 01
4.1 ARRAYS E STRINGS 02
4.2 ENTRADA E SAÍDAS DO ARDUINO 07
4.3 PROGRAMAÇÃO DO ARDUINO PARA INTERNET DAS COISAS 11
4.4 ELABORAÇÃO DE PROJETOS COM DISPLAY 15
SÍNTESE 19
REFERÊNCIAS BIBLIOGRÁFICAS 19
UNIDADE 4 – PROJETOS PRÁTICOS E INTERNET DAS COISAS 1
4.1 Arrays e strings
Os arrays são conjuntos de variáveis do mesmo tipo, que podem ter de uma a várias dimensões.
As mais usadas em programas simples são unidimensionais e bidimensionais. Os arrays
indicam posições de memória para armazenamento de dados e facilitam quando temos um
grande número de dados do mesmo tipo. Já os strings são arrays do tipo caracteres, terminadas
por um caractere nulo. 
» Arrays
Como já definimos, os arrays indicam posições de memória e na linguagem C, usada em
Arduino. O índice sempre inicia com “0”. Sendo assim, quando temos quatro posições de
memória, os índices são “0”, “1”, “2” e “3”.
Um array unidimensional é um conjunto de variáveis do mesmo tipo e o formato de declaração é:
tipo nome [tamanho];
Tipo: define o tipo de variáveis de cada elemento do array.
Nome: define o nome da variável quando for chamada dentro do código.
Tamanho: indica o número de elementos do array.
Exemplo:
Char Cores [4]; 
O exemplo indica que a variável Cores tem quatro posições de memória para armazenamento
de variáveis do tipo caracteres. Neste caso, o array está somente armazenando as posições de
memória para posteriormente ser inicializado, porém poderia ser inicializado na declaração
conforme o exemplo a seguir:
Char Cores [4] = {branco, preto, amarelo, azul};
Nas linhas do código, a variável cores pode ser chamada, porém é necessário que se indique
qual exatamente é a posição dentro dela que se quer usar. Para isto é identificado o índice. 
No exemplo acima quando a variável for chamada:
UNIDADE 4 – PROJETOS PRÁTICOS E INTERNET DAS COISAS 2
Cores [0] – indica a posição em que há o Branco;
Cores [1] – indica a posição em que há o Preto;Cores [2] – indica a posição em que há o
amarelo;
Cores [3] – indica a posição em que há o Azul;
Um array bidimensional é uma matriz de variáveis do mesmo tipo e o formato de declaração
desta matriz é:
tipo nome [linha, coluna];
Tipo: define o tipo de variáveis de cada elemento do array.
Nome: define o nome da variável quando for chamada dentro do código.
Linha: indica o número de linhas do array.
Coluna: indica o número de colunas do array.
Exemplo:
num Notas [3,3]; 
Indica que a variável Notas tem nove posições de memória para armazenamento de variáveis do
tipo números. Neste caso, o array está somente armazenando as posições de memória para
posteriormente ser inicializado, porém poderia ser inicializado na declaração conforme exemplo
a seguir:
num Notas [3,3]= {(5,6,8),(7,9,3),(2,1,4)}
No exemplo anterior, quando a variável for chamada, será identificada pelo seu índice. Verifique
nos exemplos:
Notas [0,2] – indica a posição de linha 0 e coluna 2. N nesta posição de memória foi
armazenado o número “6”;
Notas [2,0] – indica a posição de linha 2 e coluna 0. Nesta posição de memória foi
armazenado o número “2”;
UNIDADE 4 – PROJETOS PRÁTICOS E INTERNET DAS COISAS 3
Notas [1,1] – indica a posição de linha 1 e coluna 1. Nesta posição de memória foi
armazenado o número “9”;
» Strings
Uma string é definida como um conjunto de caracteres terminado por um nulo. 
Um nulo é especificado por ‘\0’ e normalmente é zero.
Para declarar um conjunto que guarda uma string de oito caracteres, é necessário alocar nove
posições, por exemplo:
Char str [9];
Tipo nome [tamanho];
Na linguagem C, não há o tipo de dado string, mas ela permite o uso de constantes do tipo
string. Uma constante string é uma frase entre aspas. Por exemplo:
“Bom Dia”
Não é necessário adicionar o nulo no final das constantes string manualmente, pois o compilador
já faz automaticamente e a linguagem C tem uma gama de funções de manipulação de strings,
por exemplo:
strcpy(s1,s2) – copia s2 em s1. 
strcat(s1,s2) – concatena s2 ao final de s1. 
Strlen(s1) – retorna o tamanho de s1.
4.1.1 Projetos práticos
UNIDADE 4 – PROJETOS PRÁTICOS E INTERNET DAS COISAS 4
No projeto 3 do livro 30 projetos com Arduino, Monk (2014) apresenta um projeto tradutor de
código Morse, que é um bom exemplo de uso de arrays, pois a simbologia do código Morse tem
o início fixo e depois, no decorrer do código, conforme a letra inserida na entrada e a na porta
de saída, onde está conectado o LED que piscará conforme o código Morse.
Para este circuito só é necessário um LED em uma entrada, por exemplo pino 10, com seu
respectivo resistor para queda de tensão.
O software é um código em que os arrays já são inicializados com a simbologia Morse, pois ela é
fixa.
Este exemplo é um código de domínio público.
*/
int ledPin = 10; // pino no qual será conectado o LED
// matriz contendo o código Morse para cada letra do alfabeto
char* letters[] = {".-", "-...", "-.-.", "-..", ".", "..-.", "--.", "....", "..", // A-I
".---", "-.-", ".-..", "--", "-.", "---", ".--.", "--.-", ".-.", // J-R
"...", "-", "..-", "...-", ".--", "-..-", "-.--", "--.." // S-Z
};
// matriz contendo o código Morse para cada número
char* numbers[] = {"-----", ".----", "..---", "...--", "....-", ".....", "-....","--...", 
"---..", "----."};
int dotDelay = 200; // delay para os "dits"
// inicialização do Arduino
void setup()
{ 
pinMode(ledPin, OUTPUT); // define pino do LED como saída 
Serial.begin(9600); // inicializa a comunicação serial
}
// loop principal do programa
void loop()
{ 
char ch; // define variável 
if (Serial.available()) // existe alguma informação a ser lida da serial? 
 { 
ch = Serial.read(); // lê uma letra única 
UNIDADE 4 – PROJETOS PRÁTICOS E INTERNET DAS COISAS 5
 if (ch >= 'a' && ch <= 'z') // se a letra estiver entre a e z 
{ 
 flashSequence(letters[ch - 'a']); // chama a função "flashSequence"
 // tendo como parâmetro o número da
 // letra na matriz
 // subtrair 'a' da letra é um ponto
 // de referência 'a' - 'a' = 0...
 // primeiro membro da matriz;
 // 'b' - 'a' = 1...
 // segundo membro da matriz
 // e assim por diante
 } 
 else if (ch >= 'A' && ch <= 'Z') // se a letra está entre A e Z
 { flashSequence(letters[ch - 'A']); // como dito anteriormente, agora para as
maiúsculas
 } 
else if (ch >= '0' && ch <= '9') // se está entre 0 e 9
 { 
 flashSequence(numbers[ch - '0']); // como dito anteriormente, agora para os números
 } 
 else if (ch == ' ') // se vazio, espaço
 { 
delay(dotDelay * 4); // gap entre aspalavras
 }
 }
}
// pisca a sequência letras
void flashSequence(char* sequence)
{ 
int i = 0;
 while (sequence[i] != NULL) // enquanto não acabar a sequência de letras
 { 
 flashDotOrDash(sequence[i]); // envia para ser piscado o dit ou dah
 i++; // mais um da sequência - incremento
 } 
delay(dotDelay * 3); // espaço entre letras
UNIDADE 4 – PROJETOS PRÁTICOS E INTERNET DAS COISAS 6
}
// pisca a sequência de dits e dahs
void flashDotOrDash(char dotOrDash)
{ 
digitalWrite(ledPin, HIGH); // acende LED
 if (dotOrDash == '.') // se dit?
 {
 delay(dotDelay); // tempo de um dit
 }
 else // então é um dah
 {
 delay(dotDelay * 3); // tempo de um dah
 }
 digitalWrite(ledPin, LOW); // apaga o LED
 delay(dotDelay); // gap entre piscadas
}
// Fim do programa
4.2 Entrada e saídas do Arduino
As portas digitais do Arduino são definidas como entradas ou saídas pela sua programação, e as
portas analógicas são definidas como entradas. No caso das digitais, quando for necessário o
acionamento de um LED, a porta deve ser configurada como saída, e para ler um conteúdo de
uma chave ou uma tecla deve ser configurada como entrada.
» Entradas e saídas digitais
As portas digitais ficam padronizadas para programação como entradas e, assim, têm a
característica de alta impedância. O sistema Arduino já tem resistores de pull-up internos e são
habilitados internamente, resolvendo alguns problemas de ruídos e outros. Quando uma porta é
programada para saída digital, encontra-se em baixa impedância.
O sistema Arduino tem entre as suas funcionalidades as funções que configuram e acessam os
pinos digitais de entrada e saída, tornando sua utilização mais fácil. 
As funções são:
Void pinMode ();
Sua função é programar uma porta de entrada ou saída digital. Normalmente no código está
localizada dentro da função setup().
SINTAXE: pinMode(pino, modo);
Pino: o pino que será configurado. Em Arduino UNO de 0 a 13.
Modo: Qual o modo em que será configurado o pino (INPUT, INPUT_PULLUP, OUTPUT).
INPUT: Entrada digital;
INPUT_PULLUP: Entrada digital com resistor de pull-up (No VCC) interno habilitado;
OUTPUT: Saída digital
int digitalRead();
SINTAXE: digitalRead(pino);
Pino: o pino que será lido (HIGH ou LOW)
void digitalWrite();
Esta função coloca um nível lógico alto (HIGH, 5V) ou baixo (LOW, 0V) no pino configurado
como saída digital.
SINTAXE: digitalWrite(pino, valor)
Pino: o pino que será lido.
Valor: pode ser HIGH -5V ou LOW - 0V.
» Saídas analógicas 
No caso das entradas analógicas do Arduino, podem assumir apenas dois estados: alto (HIGH)
ou baixo (LOW). Assim é possível avaliar apenas dois estados. 
Internamente o microcontrolador do Arduino trabalha com entrada digital, por isso ele já possui
internamente um conversor analógico digital. O valor analógico é quantificado pela quantidade
de bits da sua resolução. A resolução de um conversor é dada pela seguinte fórmula:
UNIDADE 4 – PROJETOS PRÁTICOS E INTERNET DAS COISAS 7
As funções são:
Void pinMode ();
Sua função é programar uma porta de entrada ou saída digital. Normalmente no código está
localizada dentro da função setup().
SINTAXE: pinMode(pino, modo);
Pino: o pino que será configurado. Em Arduino UNO de 0 a 13.
Modo: Qual o modo em que será configurado o pino (INPUT, INPUT_PULLUP, OUTPUT).
INPUT: Entrada digital;
INPUT_PULLUP: Entrada digital com resistor de pull-up (No VCC) interno habilitado;
OUTPUT: Saída digital
int digitalRead();
SINTAXE: digitalRead(pino);
Pino: o pino que será lido (HIGH ou LOW)
void digitalWrite();
Esta função coloca um nível lógico alto (HIGH, 5V) ou baixo (LOW, 0V) no pino configurado
como saída digital.
SINTAXE: digitalWrite(pino, valor)
Pino: o pino que será lido.
Valor: pode ser HIGH -5V ou LOW - 0V.
» Saídas analógicas 
No caso das entradas analógicas do Arduino, podem assumir apenas dois estados: alto (HIGH)
ou baixo (LOW). Assim é possível avaliar apenas dois estados. 
Internamente o microcontrolador do Arduino trabalha com entrada digital, por isso ele já possui
internamente um conversor analógico digital. O valor analógico é quantificado pela quantidade
de bits da sua resolução. A resolução de um conversor é dada pela seguinte fórmula:
UNIDADE 4 – PROJETOS PRÁTICOS E INTERNET DAS COISAS 8
» Conversor A/D Arduino
Esse conversor do Arduino UNO que usa o microcontrolador ATmega328 possui 10 bits de
resolução. A tensão de entrada é variável (0 V a VCC). A referência interna é de 1,1 V.
Exemplo 1 – para tensão de entrada em VCC – 5 V
10 bits – 2¹⁰ = 1024
Resolução = 5/1024 = 4,88 mV
Exemplo 2 - para tensão de entrada em 1,1 V (referência interna).
10 bits – 2¹⁰ = 1024
Resolução = 1,1 /1024 = 1,07 mV
O sistema Arduino, similarmente às portas digitais, usa as funções que configuram e acessam os
pinos analógicos de entrada, facilitando também seu uso. As funções são:
analogReference(tipo)
Sua função é configurar a referência de tensão para conversão analógica/digital, sendo este o
máximo para entrada analógica.
Tipo:
DEFAULT tensão de 5 V ou 3,3, conforme a alimentação da placa.
INTERNAL referência interna 1,1 V (ATMEGA168 e ATMEGA328) e 2,56V (ATMEGA8).
INTERNAL 1V1 referência interna 1,1 V somente para Arduino MEGA.
INTERNAL 2V56 referência interna 5,6 V somente para Arduino MEGA.
EXTERNAL referência externa aplicada no pin AREF (0 e 5 V)
Int analogRead(tipo)
Função lê o valor presente em um pino de entrada analógica. Como no Arduino, o conversor
possui 10 bits, então os valores são de 0 a 1023.
4.2.1 Projetos práticos
Uma aplicação de entrada analógica e uma saída digital é simplesmente um potenciômetro na
entrada analógica e um led na saída digital. A intensidade do led vai ficando mais intensa
conforme vamos aumentando os valores no potenciômetro.
UNIDADE 4 – PROJETOS PRÁTICOS E INTERNET DAS COISAS 9
Figura 1 – Entrada analógica e saída serial Fonte: Elaborada pela autora, 2020.
int sensorValue = 0;
int outputValue = 0;
void setup()
{
 pinMode(A0, INPUT);
 pinMode(9, OUTPUT);
 Serial.begin(9600);
}
void loop()
{
 // Ler o valor analógico:
 sensorValue = analogRead(A0);
 // mapeá-lo para o alcance da saída analógica:
 outputValue = map(sensorValue, 0, 1023, 0, 255);
 // alterar o valor na saída analógica:
 analogWrite(9, outputValue);
 // imprima os resultados no monitor: 
 Serial.print("sensor = ");
 Serial.print(sensorValue); 
UNIDADE 4 – PROJETOS PRÁTICOS E INTERNET DAS COISAS 10
Serial.print("\t output = ");
 Serial.println(outputValue);
 // aguarde 2 milliseconds antes do próximo loop for do
 // Conversor analógico digital para resolver a
 // última leitura: 
delay(2); // Wait for 2 millisecond(s)
}
Avaliando o monitor conforme o potenciômetro se move, o valor muda na saída, assim como a
intensidade do led. O monitor nos mostra as saídas apontadas na Figura 2. 
Figura 2 – Captura de tela com resultado visualizado no monitor da simulação..
Esta é apenas uma simples aplicação usando entradas e saídas. Muitas aplicações podem ser
exploradas nos livros de referência e, com o uso, seu entendimento vai se solidificando e quando
outros projetos se apresentarem as soluções ficarão mais fáceis.
4.3 Programação do Arduino para Internet das Coisas
O Arduino foi inventado há mais de quinze anos para ser utilizado por estudantes de robótica e
para pequenos projetos por ser barato, funcional e simples. Os outros microcontroladores tinham
um custo alto e não era fácil a programação. Além disso, o Arduino é um software livre, o que
ajuda muito para que seja melhorado, pois muitos programadores acabam criando atualizações
e inovações em uma base comum.
Muitos projetos e inovações do dia a dia podem ser feitos no Arduino, mesmo sendo mais
simples em comparação com outros microcontroladores, principalmente se levarmos em conta o
custo, que torna um projeto bem mais barato e possível de ser executado para automações,
desde as mais simples até as mais complexas.
Um detalhe importante de se levar em conta na escolha do tipode placa de Arduino é a
quantidade de entrada e saída que serão necessárias para execução do projeto, além das
UNIDADE 4 – PROJETOS PRÁTICOS E INTERNET DAS COISAS 11
shields, que são placas com outras funcionalidades e tornam o Arduino muito versáteis pois são
capazes de expandir suas capacidades.
VOCÊ QUER VER?
Afinal, o que é a Internet das Coisas (IoT)? Neste vídeo, intitulado Internet das coisas
sem mistério, a palestrante Renata Rampim fala sobre um mundo “inteligente” e
permeado pela IoT.
Internet das coisas sem mistérios. | Renata RaInternet das coisas sem mistérios. | Renata Ra……
» Projetos em Arduino para Internet das Coisas
O conceito de Internet das Coisas surge a partir da revolução tecnológica. Faz referência a todas
as “coisas” que podem ser interligadas à grande rede de computadores, ou seja, objetos que
podemos ligar à internet, e que passam a ser integrados e controlados. Originalmente o IoT vem
do termo em inglês Internet of Things. 
O acesso à internet é normalmente pensado para equipamentos como computadores e telefones
shields, que são placas com outras funcionalidades e tornam o Arduino muito versáteis pois são
capazes de expandir suas capacidades.
VOCÊ QUER VER?
Afinal, o que é a Internet das Coisas (IoT)? Neste vídeo, intitulado Internet das coisas
sem mistério, a palestrante Renata Rampim fala sobre um mundo “inteligente” e
permeado pela IoT.
Internet das coisas sem mistérios. | Renata RaInternet das coisas sem mistérios. | Renata Ra……
» Projetos em Arduino para Internet das Coisas
O conceito de Internet das Coisas surge a partir da revolução tecnológica. Faz referência a todas
as “coisas” que podem ser interligadas à grande rede de computadores, ou seja, objetos que
podemos ligar à internet, e que passam a ser integrados e controlados. Originalmente o IoT vem
do termo em inglês Internet of Things. 
O acesso à internet é normalmente pensado para equipamentos como computadores e telefones
Disponível em: <https://youtu.be/BfedvthepRs>.
celulares, mas já há uma grande quantidade de coisas que têm acesso à internet e nem
percebemos. Os eletrodomésticos, por exemplo, já começam a apresentar um sistema, de pouca
importância para o usuário, mas de enorme relevância para o fabricante, que rastreia o
equipamento, podendo controlar falhas e necessidade de trocas de peças para, assim,
possibilitar um planejamento de reposição de peças ou novos equipamentos. Para a indústria
automobilística esse controle se amplia em muitas possibilidades.
O agronegócio tem usufruído de IoT para mapear plantações e equipamentos, de modo que hoje
é possível que uma colheita possa ser feita sem que o operador da máquina esteja dentro dela.
Além disso, é possível avaliar o solo e determinar se uma irrigação é necessária. 
Há ainda os vestíveis, que são tecnologias acopladas ao vestuário, como relógios, sapatos,
óculos e roupas, que podem avaliar a nossa temperatura corporal, enviar dados de tempo e
distância etc. É possível pensar até mesmo em chips dentro do nosso corpo, que possibilitem o
armazenamento de informações. 
Já existem muitos equipamentos IoT no mercado e quanto mais as indústrias descobrem o quão
útil podem ser, mais investem em novas ideias. É uma mudança sem volta e não sabemos
aonde podemos chegar. Será uma tecnologia para todos, mesmo que ainda seja para poucos
em virtude dos altos custos devido à pequena produção.
Muitas pesquisas foram feitas ao longo dos anos e muito do que vemos hoje levou anos para se
concretizar. Mark Weiser é conhecido por criar, no final dos anos de 1980, o conceito de
computação ubíqua. A computação ubíqua seria o oposto da realidade virtual, em que as
pessoas “entram” no mundo virtual, pois ela se integra de tal modo na realidade dos indivíduos,
que eles nem notam sua presença. Ela pode ser comparada com a energia elétrica, que está em
tudo na nossa vida e só nos damos conta quando ela falta. A frase de Weiser “As tecnologias
mais importantes são aquelas que desaparecem, elas se integram a vida do dia a dia ao nosso
cotidiano até que sejam indistinguíveis dele” (WEISER, [s.d.], p. 1) faz cada vez mais sentido,
quando já se tem a tecnologia para implementar. 
Os projetos para Internet das Coisas podem usar qualquer tipo de microcontrolador, conforme
sua necessidade, mas deve-se avaliar todas as características de cada microcontrolador. 
Na academia se costuma usar o Arduino pela sua facilidade na montagem, possibilitando que o
estudante monte os mais variados tipos de projeto. Porém é possível usar o Arduino em
qualquer tipo de projeto, desde que as características sejam compatíveis. Em projetos
UNIDADE 4 – PROJETOS PRÁTICOS E INTERNET DAS COISAS 12
celulares, mas já há uma grande quantidade de coisas que têm acesso à internet e nem
percebemos. Os eletrodomésticos, por exemplo, já começam a apresentar um sistema, de pouca
importância para o usuário, mas de enorme relevância para o fabricante, que rastreia o
equipamento, podendo controlar falhas e necessidade de trocas de peças para, assim,
possibilitar um planejamento de reposição de peças ou novos equipamentos. Para a indústria
automobilística esse controle se amplia em muitas possibilidades.
O agronegócio tem usufruído de IoT para mapear plantações e equipamentos, de modo que hoje
é possível que uma colheita possa ser feita sem que o operador da máquina esteja dentro dela.
Além disso, é possível avaliar o solo e determinar se uma irrigação é necessária. 
Há ainda os vestíveis, que são tecnologias acopladas ao vestuário, como relógios, sapatos,
óculos e roupas, que podem avaliar a nossa temperatura corporal, enviar dados de tempo e
distância etc. É possível pensar até mesmo em chips dentro do nosso corpo, que possibilitem o
armazenamento de informações. 
Já existem muitos equipamentos IoT no mercado e quanto mais as indústrias descobrem o quão
útil podem ser, mais investem em novas ideias. É uma mudança sem volta e não sabemos
aonde podemos chegar. Será uma tecnologia para todos, mesmo que ainda seja para poucos
em virtude dos altos custos devido à pequena produção.
Muitas pesquisas foram feitas ao longo dos anos e muito do que vemos hoje levou anos para se
concretizar. Mark Weiser é conhecido por criar, no final dos anos de 1980, o conceito de
computação ubíqua. A computação ubíqua seria o oposto da realidade virtual, em que as
pessoas “entram” no mundo virtual, pois ela se integra de tal modo na realidade dos indivíduos,
que eles nem notam sua presença. Ela pode ser comparada com a energia elétrica, que está em
tudo na nossa vida e só nos damos conta quando ela falta. A frase de Weiser “As tecnologias
mais importantes são aquelas que desaparecem, elas se integram a vida do dia a dia ao nosso
cotidiano até que sejam indistinguíveis dele” (WEISER, [s.d.], p. 1) faz cada vez mais sentido,
quando já se tem a tecnologia para implementar. 
Os projetos para Internet das Coisas podem usar qualquer tipo de microcontrolador, conforme
sua necessidade, mas deve-se avaliar todas as características de cada microcontrolador. 
Na academia se costuma usar o Arduino pela sua facilidade na montagem, possibilitando que o
estudante monte os mais variados tipos de projeto. Porém é possível usar o Arduino em
qualquer tipo de projeto, desde que as características sejam compatíveis. Em projetos
residenciais pequenos, por exemplo, ele é bastante recomendado, pois muitas vezes evita um
custo muito alto sem necessidade.
VOCÊ QUER VER?
A IoT já está na nossa vida. O economista Marco Annunziata faz uma análise de como
esta tecnologia está transformando o mundo industrial.Bem-vindo à era da Internet
industrial já tem sete anos e ainda se via a IoT, mais centrada na área industrial. Este
contexto, no entanto, mudou e podemos observar que muitos equipamentos da
atualidade são interligados à internet. Ainda assim, temos um longo caminho a percorrer.
Veja a palestra de Marco Annuziata em:
Marco Annunziata: Welcome to the age of the industrial internetMarco Annunziata: Welcome to the age of the industrialinternet
4.3.1 Projetos práticos
Uma boa maneira de entender onde há aplicação de IoT é mostrar algumas aplicações práticas,
então vamos entender algumas delas.
residenciais pequenos, por exemplo, ele é bastante recomendado, pois muitas vezes evita um
custo muito alto sem necessidade.
VOCÊ QUER VER?
A IoT já está na nossa vida. O economista Marco Annunziata faz uma análise de como
esta tecnologia está transformando o mundo industrial.Bem-vindo à era da Internet
industrial já tem sete anos e ainda se via a IoT, mais centrada na área industrial. Este
contexto, no entanto, mudou e podemos observar que muitos equipamentos da
atualidade são interligados à internet. Ainda assim, temos um longo caminho a percorrer.
Veja a palestra de Marco Annuziata em:
Marco Annunziata: Welcome to the age of the industrial internetMarco Annunziata: Welcome to the age of the industrial internet
4.3.1 Projetos práticos
Uma boa maneira de entender onde há aplicação de IoT é mostrar algumas aplicações práticas,
então vamos entender algumas delas.
residenciais pequenos, por exemplo, ele é bastante recomendado, pois muitas vezes evita um
custo muito alto sem necessidade.
VOCÊ QUER VER?
A IoT já está na nossa vida. O economista Marco Annunziata faz uma análise de como
esta tecnologia está transformando o mundo industrial.Bem-vindo à era da Internet
industrial já tem sete anos e ainda se via a IoT, mais centrada na área industrial. Este
contexto, no entanto, mudou e podemos observar que muitos equipamentos da
atualidade são interligados à internet. Ainda assim, temos um longo caminho a percorrer.
Veja a palestra de Marco Annuziata em:
Marco Annunziata: Welcome to the age of the industrial internetMarco Annunziata: Welcome to the age of the industrial internet
4.3.1 Projetos práticos
Uma boa maneira de entender onde há aplicação de IoT é mostrar algumas aplicações práticas,
então vamos entender algumas delas.
<https://youtu.be/QBDShp6U7tU>.
UNIDADE 4 – PROJETOS PRÁTICOS E INTERNET DAS COISAS 13
» Fechaduras inteligentes 
As fechaduras inteligentes, ou smart locks, como são conhecidas, podem ser usadas em
qualquer ambiente e são interligadas à internet via wi-fi ou bluetooth, o que permite que sejam
controladas a distância ou até a partir de reconhecimento biométrico, íris ou facial. Ainda têm
algumas funcionalidades extras, como, por exemplo, serem capaz de enviar imagens via
smartphone. Já é comercializada por várias marcas. 
» Controles de temperatura
Controlar a temperatura parece ser simples, porém com termostatos inteligentes, sua vida
poderá ficar muito mais fácil, pois este sensor aprende suas rotinas e vai executando conforme é
o normal na sua família. E podem ser controlados ou analisados a distância. Estes controles
podem ser implementados e usados em conjunto com qualquer outra automação.
» Geladeiras inteligentes
Usam o sistema RfiD (Radio-Frequency Identification), método de identificação automática
utilizado em sinais de rádio, lendo e armazenando dados remotamente por meio de dispositivos
denominados etiquetas RfiD. Incorporadas à vida das famílias, estes equipamentos podem
controlar os alimentos que acondicionam, avaliando sua validade. Podem avisar, via
smartphone, quando algo está errado em um alimento ou componente dela. Podem ainda gerar
lista de compras, facilitando a vida da família. Além disso, ela oferece uma grande vantagem
para o fornecedor que pode saber onde seu equipamento está instalado e avaliar a necessidade
de troca de peças ou até de oferecer um novo equipamento para a família.
» Serviços de saúde inteligente
Na saúde já existem muitas pesquisas trazendo grandes novidades, mas muito se tem a
descobrir. Hoje já se podem ver em hospitais algumas automações que são feitas com a ideia de
IoT. Por exemplo medida de glicose, automação de medição de sinais de pacientes, informação
de dados do paciente aos médicos interessados via celular, etc.
» Automações em agricultura
Podemos dizer que a agricultura foi, sem dúvida, a primeira área econômica que aproveitou a
tecnologia da IoT, pois é uma área em que a perda por intempéries é muito grande, assim, um
controle com automação podendo ter a previsão antecipada, foi um grande avanço. A internet
trouxe outro avanço, que é o controle e a ação mais rápido, fazendo com que as perdas
pudessem ser administradas. No momento que temos os sensores que podem avaliar os dados
e ter inteligência, pois podem aprender com o uso, é possível ter as previsões de ação para cada
caso.
UNIDADE 4 – PROJETOS PRÁTICOS E INTERNET DAS COISAS 14
» Cidades inteligentes
Nas cidades inteligentes, é possível ter um controle de tudo, desde iluminação no horário correto
e com intensidade coerente; o controle de trânsito com maior facilidade, permitindo a alteração
de rotas caso haja algum problema ou acidente e até mesmo o controle da qualidade da água.
As possibilidades são muitas, aprimorando a capacidade de planejamento, pois a internet faz
com que o conteúdo chegue rápido no local de decisão. Além disso, armazenam-se os dados
para as decisões futuras. Controle dos transportes públicos é outra função das cidades
inteligentes, em que se pode, a partir do smartphone, saber a localização do ônibus, por
exemplo.
» Iluminação residencial
É possível ter um amplo controle sobre a iluminação e, com isso, diminuir os custos com
energia. A internet consegue agilizar as respostas dos sensores para que se possa controlar
toda a iluminação, inclusive com vários tipos e tons, por comando de voz.
Os exemplos citados são apenas uma pequena amostra do que podemos fazer. A imaginação é
sua e o limite quem faz é você. A vida de todos será afetada com esta nova tecnologia e
estamos apenas no início desta explosão. Ainda vamos ver muitas coisas neste novo mundo. No
entanto, temos que ter uma preocupação, que é a segurança dos dados. Muito ainda vai ser
estudado ou já está em fase de pesquisas, pois todo este movimento sem um controle pode
afetar diretamente os dados das empresas ou informação de residências. Será muito importante
avaliar os riscos de cada ponto fraco da sua rede e melhorar toda a questão de nuvem, para que
não haja ataques aos dados.
VOCÊ QUER LER?
Há uma série de materiais sobre Arduino que podem ser consultados, mas o livro
Arduino Básico, além de conter explicações indicativas apresenta muitos projetos que
podem ser usados para aprendizado, pois podem fazer parte de outros.
4.4 Elaboração de projetos com display
UNIDADE 4 – PROJETOS PRÁTICOS E INTERNET DAS COISAS 15
A inserção de um display no projeto o eleva a outro nível, pois faz com que a interface fique mais
visível e amigável, tornando o projeto mais interativo.
Os módulos de display de LCD (Liquid Crystal Display – Display de Cristal Líquido) são
interfaces visuais muito úteis. São encontradas em muitos equipamentos eletrônicos e
eletrodomésticos, entre muitos outros. Estes dispositivos possuem interfaces elétricas
padronizadas com recursos gráficos. É um componente antigo e, ao mesmo tempo, atual, pois
suas características continuam úteis, mas aprimoraram as cores, tamanhos e os valores são
bem atrativos. Hoje se pode encontrar os displays em LED ( Diodo Emissor de Luz) e OLED
(organic light-emitting diode) é um diodo emissor de Luz em que a camada de emissão
eletroluminescente é um filme orgânico que emite luz em resposta a uma corrente elétrica.
Os displays são especificados pela sua capacidade gráfica, ou seja, pelo número de caracteres
por linhas e o número de linhas exibidas. 
» Utilização de displays
O uso de displays se torna fácil pois todas a suas funcionalidades já estão codificadas na
biblioteca LiquidCrystal.h. Sempre que for usar o componente no seu projeto, é necessário
incluir esta biblioteca com o comando #include no início do seu código.
4.4.1 Programação de displays
Figura 3 – Arduino e display: montagem. Fonte: Elaborado pela autora, 2020.
Quando executar o código, ele o configura e envia a informação, que neste caso é fixa: “hello,
world!”. 
UNIDADE 4 – PROJETOSPRÁTICOS E INTERNET DAS COISAS 16
// incluir a biblioteca no código
#include <LiquidCrystal.h>
// inicializar a biblioteca com os números dos pinos a interface.
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); 
void setup() {
 // iniciar o LCD com os números de colunas e linhas 
 lcd.begin(16, 2);
 // escrever a mensagem no LCD.
 lcd.print("hello, world!");
}
void loop() {
 // envia o cursor para a posição coluna 0 e linha 1
// Nota: linha 1 é a segunda linha pois começa do zero.
 lcd.setCursor(0, 1);
 // escreva o número de segundos desde o início.
 lcd.print(millis() / 1000);
}
Para muitos projetos em Arduino, podemos utilizar o display, que é peça importante nos projetos
de Internet das coisas. Esse componente também pode ser usado quando se tem a necessidade
de externar dados ou valores.
» Shields para Arduino
Uma maneira de expandir as funções de um Arduino são utilizar as shields, usando dispositivos
de hardware. Efetivamente, shields são placas de hardware que podem ser inseridas ou ligadas
na placa principal e podem ser inseridas ou empilhadas umas sobre as outras. Cada uma tem
uma função específica que, quando conectada, leva esta função ao Arduino.
Para usar uma shield, basta conectá-lo sobre a placa do Arduino – os encaixes são perfeitos – e
efetuar as outras conexões elétricas pertinentes e necessárias com outros componentes,
importar suas bibliotecas e escrever o programa.
As shields normalmente necessitam de bibliotecas específicas para funcionar e devem ser
instalados no IDE do Arduino. Pode ser que algumas shields já façam parte das bibliotecas
padrão do Arduino. Vamos conhecer algumas delas.
Exemplos de shields 
UNIDADE 4 – PROJETOS PRÁTICOS E INTERNET DAS COISAS 17
// incluir a biblioteca no código
#include <LiquidCrystal.h>
// inicializar a biblioteca com os números dos pinos a interface.
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); 
void setup() {
 // iniciar o LCD com os números de colunas e linhas 
 lcd.begin(16, 2);
 // escrever a mensagem no LCD.
 lcd.print("hello, world!");
}
void loop() {
 // envia o cursor para a posição coluna 0 e linha 1
// Nota: linha 1 é a segunda linha pois começa do zero.
 lcd.setCursor(0, 1);
 // escreva o número de segundos desde o início.
 lcd.print(millis() / 1000);
}
Para muitos projetos em Arduino, podemos utilizar o display, que é peça importante nos projetos
de Internet das coisas. Esse componente também pode ser usado quando se tem a necessidade
de externar dados ou valores.
» Shields para Arduino
Uma maneira de expandir as funções de um Arduino são utilizar as shields, usando dispositivos
de hardware. Efetivamente, shields são placas de hardware que podem ser inseridas ou ligadas
na placa principal e podem ser inseridas ou empilhadas umas sobre as outras. Cada uma tem
uma função específica que, quando conectada, leva esta função ao Arduino.
Para usar uma shield, basta conectá-lo sobre a placa do Arduino – os encaixes são perfeitos – e
efetuar as outras conexões elétricas pertinentes e necessárias com outros componentes,
importar suas bibliotecas e escrever o programa.
As shields normalmente necessitam de bibliotecas específicas para funcionar e devem ser
instalados no IDE do Arduino. Pode ser que algumas shields já façam parte das bibliotecas
padrão do Arduino. Vamos conhecer algumas delas.
Exemplos de shields 
UNIDADE 4 – PROJETOS PRÁTICOS E INTERNET DAS COISAS 18
Tem a função de controle de motores DC, de passo ou servo 
motores;
SHIELDS DE 
MOTOR
Tem a função de conectar o Arduino com uma rede local ou 
à internet, assim possibilita comandos remotos ou informar 
status da placa ou dos sensores a ela conectados. Ela é 
muito útil principalmente para acesso remoto;
SHIELD 
ETHERNET
Tem a função de permitir a comunicação via rede wireless com 
o Arduino, assim permite operar equipamentos remotamente e 
também permite acesso à rede local e à internet;
SHIELD 
WIFI
Um shield USB permite implementar uma controladora USB, 
para que seja possível conectar o Arduino a outros dispositivos 
via porta USB, e a smartphones com Android, tendo a facilidade 
de adicionar funções de controle via celular para outros 
dispositivos, como pendrives, câmeras digitais e muito mais;
USB HOST 
SHIELD
Fornece uma área para soldagem de componentes, e alguns 
elementos já conectados, como LEDs, resistores ou conectores;
PROTO 
SHIELD
Tem a facilidade de equipar o Arduino com a capacidade de 
armazenar grandes volumes de dados em cartões SD, sendo 
muito útil nas aplicações que necessitam de registros (log) de 
dados em dispositivos de armazenamento de massa;
SHIELD 
microSD/SD
Esse shield libera o trabalho com arquivos de música em 
formato MP3 no Arduino;
SHIELD 
MP3
É usado para conectar uma tela de LCD TFT (cristal líquido) 
ao Arduino e assim possibilitar a visualização de informações 
por meio desse tipo de visor, desde informações textuais até 
gráficos e imagens.
SHIELD 
LCD TFT
Síntese
Os conceitos de array e string foram apresentados e foi possível indicar uma aplicação prática
dos conceitos. A Internet das Coisas se estabelece cada vez mais em nosso cotidiano e nossas
vidas serão com certeza alteradas, como, por exemplo, funções que serão encerradas em
empresas. Assim, podemos dizer que é um assunto ainda dolorido para muitos, pois há um
medo destas inovações. Depois de uma grande mudança vem uma época de criações e
utilização de muitos recursos. Aprendemos os conceitos, mas agora é a hora das aplicações. 
Estude mais e entenda tudo o que pode ser ampliado, fazendo projetos que podem ser iniciados
em sua própria casa. Você teve a oportunidade de conhecer um campo muito amplo, aproveite-
o!
Referências bibliográficas
» Clique nas abas para saber mais sobre o assunto
Shields 
de Motor
Shield 
Ethernet
Shield 
WiFi
USB 
Host Shield
Um shield USB permite implementar uma controladora USB, para que seja possível conecta
o Arduino a outros dispositivos via porta USB, e a smartphones com Android, tendo a
acilidade de adicionar funções de controle via celular para outros dispositivos, como
pendrives, câmeras digitais e muito mais;
Proto 
Shield
Shield 
microSD/SD
Shield 
MP3
Shield 
LCD TFT
Tem a facilidade de equipar o Arduino com a capacidade de armazenar grandes volumes de
ados em cartões SD, sendo muito útil nas aplicações que necessitam de registros (log) de
ados em dispositivos de armazenamento de massa;
Síntese
Os conceitos de array e string foram apresentados e foi possível indicar uma aplicação prática
dos conceitos. A Internet das Coisas se estabelece cada vez mais em nosso cotidiano e nossas
vidas serão com certeza alteradas, como, por exemplo, funções que serão encerradas em
empresas. Assim, podemos dizer que é um assunto ainda dolorido para muitos, pois há um
medo destas inovações. Depois de uma grande mudança vem uma época de criações e
utilização de muitos recursos. Aprendemos os conceitos, mas agora é a hora das aplicações. 
Estude mais e entenda tudo o que pode ser ampliado, fazendo projetos que podem ser iniciados
em sua própria casa. Você teve a oportunidade de conhecer um campo muito amplo, aproveite-
o!
Referências bibliográficas
» Clique nas abas para saber mais sobre o assunto
Shields 
de Motor
Shield 
Ethernet
Shield 
WiFi
USB 
Host Shield
Um shield USB permite implementar uma controladora USB, para que seja possível conecta
o Arduino a outros dispositivos via porta USB, e a smartphones com Android, tendo a
acilidade de adicionar funções de controle via celular para outros dispositivos, como
pendrives, câmeras digitais e muito mais;
Proto 
Shield
Shield 
microSD/SD
Shield 
MP3
Shield 
LCD TFT
Tem a facilidade de equipar o Arduino com a capacidade de armazenar grandes volumes de
ados em cartões SD, sendo muito útil nas aplicações que necessitam de registros (log) de
ados em dispositivos de armazenamento de massa;
GIMENEZ, S. P. Microcontroladores 8051: conceitos, operações, fluxogramas e programação.
1.ed. São Paulo: Erica, 2015.
GIMENEZ, S. P. Microcontroladores 8051:teoria e prática. 1.ed. São Paulo: Erica, 2010.
GIMENEZ, S. P. Microcontroladores 8051: teoria do hardware e do software. São Paulo:
Pearson, 2005.
MCROBERTS, M. Arduino Básico. 2.ed. São Paulo: Novatec, 2015.
MONK, S. Programação com Arduino: começando com sketches. 2.ed. Porto Alegre:
Bookman, 2017.
MONK, S. Programação com Arduino II: passos avançados com sketches. 1.ed. Porto Alegre:
Bookman, 2015.
MONK, S. 30 Projetos com Arduino. 2.ed. Porto Alegre: Bookman, 2014.
STALLINGS, W. Arquitetura e Organização de Computadores. 8.ed. São Paulo: Pearson,
2010.
WEISER, M. The Computer for the 21st Century. Disponível em:
<https://www.ics.uci.edu/~corps/phaseii/Weiser-Computer21stCentury-SciAm.pdf>. Acesso em:
18 ago. 2020. 
UNIDADE 4 – PROJETOS PRÁTICOS E INTERNET DAS COISAS 19

Continue navegando