Buscar

Microcontroladores 4

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.
22/04/2024, 10:09 Unidade 4 - Microcontroladores e IOT
https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&c… 1/22
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:
Bons estudos!
22/04/2024, 10:09 Unidade 4 - Microcontroladores e IOT
https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&c… 2/22
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:
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)}
22/04/2024, 10:09 Unidade 4 - Microcontroladores e IOT
https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&c… 3/22
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”;
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:
22/04/2024, 10:09 Unidade 4 - Microcontroladores e IOT
https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&c… 4/22
“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
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
22/04/2024, 10:09 Unidade 4 - Microcontroladores e IOT
https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&c… 5/22
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
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
{
22/04/2024, 10:09 Unidade 4 - Microcontroladores e IOT
https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&c… 6/22
flashSequence(numbers[ch - '0']); // como dito anteriormente, agora para os
números
}
else if (ch == ' ') // se vazio, espaço
{
delay(dotDelay * 4); // gap entre as palavras}
}
}
// 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
}
// 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
{
22/04/2024, 10:09 Unidade 4 - Microcontroladores e IOT
https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&c… 7/22
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,
22/04/2024, 10:09 Unidade 4 - Microcontroladores e IOT
https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&c… 8/22
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:
» 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.
22/04/2024, 10:09 Unidade 4 - Microcontroladores e IOT
https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&c… 9/22
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.
22/04/2024, 10:09 Unidade 4 - Microcontroladores e IOT
https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&… 10/22
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);
22/04/2024, 10:09 Unidade 4 - Microcontroladores e IOT
https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&… 11/22
// imprima os resultados no monitor:
Serial.print("sensor = ");
Serial.print(sensorValue);
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
22/04/2024, 10:09 Unidade 4 - Microcontroladores e IOT
https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&… 12/22
automações, desde as mais simples até as mais complexas.
Um detalhe importante de se levar em conta na escolha do tipo de placa de Arduino é a
quantidade de entrada e saída que serão necessárias para execução do projeto, além
das 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.
» Projetos em Arduino para Internet das Coisas
O conceitode 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.
22/04/2024, 10:09 Unidade 4 - Microcontroladores e IOT
https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&… 13/22
Originalmente o IoT vem do termo em inglês Internet of Things.
O acesso à internet é normalmente pensado para equipamentos como computadores e
telefones 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
22/04/2024, 10:09 Unidade 4 - Microcontroladores e IOT
https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&… 14/22
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:
22/04/2024, 10:09 Unidade 4 - Microcontroladores e IOT
https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&… 15/22
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.
» 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.
22/04/2024, 10:09 Unidade 4 - Microcontroladores e IOT
https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&… 16/22
» 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.
» 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
22/04/2024, 10:09 Unidade 4 - Microcontroladores e IOT
https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&… 17/22
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 respostasdos 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
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,
22/04/2024, 10:09 Unidade 4 - Microcontroladores e IOT
https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&… 18/22
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!”.
// 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);
22/04/2024, 10:09 Unidade 4 - Microcontroladores e IOT
https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&… 19/22
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
» Clique nas abas para saber mais sobre o assunto
22/04/2024, 10:09 Unidade 4 - Microcontroladores e IOT
https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&… 20/22
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
Shields
de Motor
Shield
Ethernet
Shield
WiFi
USB
Host Shield
Proto
Shield
Shield
microSD/SD
Shield
MP3
Shield
LCD TFT
22/04/2024, 10:09 Unidade 4 - Microcontroladores e IOT
https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&… 21/22
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.
22/04/2024, 10:09 Unidade 4 - Microcontroladores e IOT
https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&… 22/22
https://www.ics.uci.edu/~corps/phaseii/Weiser-Computer21stCentury-SciAm.pdf

Continue navegando