Baixe o app para aproveitar ainda mais
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
Compartilhar