Baixe o app para aproveitar ainda mais
Prévia do material em texto
03/10/2020 Ead.br https://uniritter.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_INTCOI_19/unidade_4/ebook/index.html#section_1 1/36 INTERNET INTERNET DAS COISASDAS COISAS Esp. Fel ippe Fernandes Si lva IN IC IAR 03/10/2020 Ead.br https://uniritter.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_INTCOI_19/unidade_4/ebook/index.html#section_1 2/36 introdução Introdução Nesta unidade você será apresentado a prototipação com microcontroladores, auxiliado pela construção e desenvolvimento de uma calculadora binária que realizará a soma de dois números binários. Apresentaremos o software responsável pela programação e desenvolvimento em Arduino e em seguida, aprenderá algumas funções e palavras reservadas dessa linguagem e veri�cará sua proximidade com a linguagem C. Em seguida, no capítulo 2, será veri�cado a relação entre Internet das Coisas e Big Data. Entenderemos como esses dados são gerados e como é realizada a coleta, armazenamento e processamento de informações entre Big Data e IoT. No capítulo seguinte, passaremos uma visão geral sobre ambientes inteligentes, relacionando aprendizagem de máquina e inteligência arti�cial no uso da IoT. Por �m, no último capítulo veri�caremos através de alguns estudos, sobre Internet das Coisas e sua segurança, analisando a proteção de dispositivos e informações. 03/10/2020 Ead.br https://uniritter.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_INTCOI_19/unidade_4/ebook/index.html#section_1 3/36 Neste tópico faremos um simulador de uma calculadora binária de dois dígitos. Para isso utilizaremos alguns conceitos de arduíno e de programação, mostrando que é possível realizar a prototipação de um microcontrolador e alguns de seus componentes. Para que o entendimento seja mais e�caz, explicaremos primeiramente o arduíno. O Arduíno é uma plataforma de microcontrolador que atraiu a imaginação dos entusiastas de eletrônica, pois a sua facilidade de uso e a sua natureza aberta fazem dele uma ótima opção para qualquer um que deseja construir um projeto eletrônico. Basicamente, permite que você conecte circuitos eletrônicos aos seus terminais de modo que ele possa controlar dispositivos (MONK, 2018). Sabendo que o Arduíno é a parte física do nosso desenvolvimento, necessitamos então entender o software que é utilizado juntamente com ele. Esse software pode ser encontrado no site <www.arduino.cc> e instalado em seu computador. Após �nalizar a instalação do programa já é possível abrir o software e iniciar a implementação. Ao abrir o programa encontra-se um Prototipando comPrototipando com MicrocontroladoresMicrocontroladores http://www.arduino.cc/ 03/10/2020 Ead.br https://uniritter.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_INTCOI_19/unidade_4/ebook/index.html#section_1 4/36 arquivo vazio, porém, ao veri�car a sua pasta de instalação, é possível veri�car que existem vários exemplos já desenvolvidos dentro de uma pasta, com diversos arquivos que podem ser úteis para o entendimento do programa e seu funcionamento. De acordo com Monk (2018), o aplicativo do Arduino é composto por sketches, que nada mais são do que documentos em um editor de texto. Você pode abrí-los e copiar parte de um programa para o outro. Dessa forma, você terá opções como abrir, salvar e salvar como no menu File. Como você acabou de criar um skecth, o mesmo estará vazio e necessita de uma implementação. Na programação para Arduino, destaca-se que a linguagem utilizada é o C. Da mesma forma que a programação simples, para se programar em Arduino é necessário realizar uma série de instruções que serão lidas pelo software. Um exemplo para isso é o acender e o apagar das luzes de um led que se encontra na posição 13 do Arduino. Para isso é necessário escrever o seguinte código: digitalWrite(13, HIGH); delay(500); digitalWrite(13, LOW); O código acima faz a leitura do led posicionado na entrada 13 e o comando HIGH, indica que o led será aceso. A segunda linha de código propõe um delay de 500 milisegundos. Esse delay é o tempo de espera em que o Arduino leva para realizar a instrução seguinte. Na terceira linha de código podemos veri�car e deduzir que o comando LOW vai apagar o led. Portanto, esse código vai acender e apagar um led após 500 milisegundos. Vale ressaltar que, como não há um looping, isso ocorrerá apenas uma vez e não é um pisca-pisca. Como qualquer linguagem de programação, o software do Arduino possui algumas peculiaridades particulares. Entre algumas palavras e maneiras de programar, existem as funções setup e loop. Essas palavras são funções que são chamadas sendo iniciadas por um void. Todas essas palavras são 03/10/2020 Ead.br https://uniritter.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_INTCOI_19/unidade_4/ebook/index.html#section_1 5/36 chamadas na forma de função, sendo que, o agrupamento de um bloco de instruções que se faz referente à determinada função, é delimitada por abre e fecha colchetes. Dessa forma, temos o início do código abaixo que simpli�ca as funções faladas: void setup() { digitalWrite(13, HIGH); } void loop() { } Ainda sobre algumas palavras reservadas ou funções embutidas temos a função pinMode. Monk (2018), descreve que essa função de�ne o modo de funcionamento de um pino, seja ele como entrada ou seja ele como saída. Portanto, para o processo de acender um led, primeiro de�niremos que o pino 13 deverá ser uma saída e em seguida, fazer com que sua saída acenda o led novamente. Para fazer esse pisca-pisca, Monk(2018) utilizou o seguinte código: void setup() { pinMode(13, OUTPUT); } void loop() { 03/10/2020 Ead.br https://uniritter.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_INTCOI_19/unidade_4/ebook/index.html#section_1 6/36 digitalWrite(13, HIGH); delay(500); digitalWrite(13, LOW); delay(500); } Como toda ferramenta de desenvolvimento de software, possuímos uma etapa para declaração de variáveis. Essa etapa ocorre antes da função de chamada do setup. A forma como uma variável é declarada é bem parecida com as demais linguagens, como por exemplo, para de�nir que o led está no pino 13, temos que declará-lo como inteiro (int) e fazê-lo receber o valor 13. Como no exemplo abaixo: int led1 = 13; Para qualquer item que seja programado em Arduino, é necessário fornecer a taxa de comunicação de bits entre a placa serial. Para isso existe uma função chamada Serial.begin(9600); Essa função é a responsável por passar a taxa de comunicação de bits por segundo. Essa taxa, por um padrão de início de prototipação é mantida em 9600. Agora que sabemos o básico para a prototipação em microcontroladores, desenvolveremos uma calculadora binária de 2 dígitos. Para isso, é necessário saber que o valor mínimo desta calculadora é zero e o valor máximo é três. Essa atividade consiste em montar uma calculadora binária simples com 2 dígitos e fará somas que não ultrapassem o valor 3, visto que é o maior valor binário com esse número de dígitos (11). O funcionamento desta calculadora é simples, possuindo 2 leds e 2 botões para controlar os estados das operações, no qual o LED ligado representa o valor 1, e o LED desligado representa o valor 0. A atividade será desenvolvida também com botões para o manuseio de operações. 03/10/2020 Ead.br https://uniritter.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_INTCOI_19/unidade_4/ebook/index.html#section_1 7/36 Para o desenvolvimento dessa atividade utilizaremos alguns materiais complementares ao Arduino em si. Eles são: Um Arduino; Dois LEDS; Quatro botões tácteis; Para iniciar esse programa, precisamos realizar as declarações das variáveis. Como é um exemplo didático, essa calculadora funcionará apenas para número entre 0 e 3. Por se tratar de uma calculadora binária, os leds serão declarados com o tipo de dado byte. Podemos ver isso no exemplo a seguir: byte led1 = 9; byte led2 = 10; Isso de�ne que os leds estãoserializados nas entradas 9 e 10. Essa inicialização ocorrerá também para os botões (que são vinculados a cada led). Ao pressionar um desses botões o led se acenderá. Também serão atribuídos mais três botões, um deles é responsável por indicar o valor de uma soma e o outro responsável por armazenar o valor fornecido. Temos então o seguinte: byte botao1 = 2; byte botao2 = 3; byte botaoReg = 6; // Botão Registrador byte botaoSoma = 7; // Botão Soma Como todo programa a ser desenvolvido, é necessário iniciar os valores a serem enviados para esses botões. Esses valores são inicializados com o valor zero, da seguinte forma: byte valor1 = 0; 03/10/2020 Ead.br https://uniritter.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_INTCOI_19/unidade_4/ebook/index.html#section_1 8/36 byte valor2 = 0; Por �m, �nalizando as declarações, é necessário criar vetores para que seja possível armazenar os valores. Nesse caso, temos um vetor de dois elementos que vai nos informar o valor atual de nossa operação e à quais leds eles correspondem; um vetor para o registro dos dados e por �m um vetor que vai retornar o resultado das operações. Como a seguir: char atual[2]; // Valor atual da operação, correspondente com os leds char reg[2]; // Valor do Registrador char res[2]; // Valor do resultado das operações Após as declarações das variáveis acima, podemos iniciar a parte lógica de nossa calculadora de soma. Primeiramente, como foi dito anteriormente, é necessário chamar uma função setup e utilizar a função Serial.begin(9600) que já foi explicada anteriormente. Feito isso, precisamos instanciar os nossos dois leds, informando que são dados de saída e que iniciarão apagados. O mesmo será feito para os quatro botões(Botão led 1, botão led 2, botão soma e botão de registro). O código dessa parte é representado da seguinte forma: void setup() { Serial.begin(9600); delay(500); //Instanciando dois leds pinMode(led1, OUTPUT); //Definindo led 1, como saida "OUTPUT" digitalWrite(led1, LOW); // Iniciando como desligado "LOW" 03/10/2020 Ead.br https://uniritter.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_INTCOI_19/unidade_4/ebook/index.html#section_1 9/36 pinMode(led2, OUTPUT); digitalWrite(led2, LOW); //Intanciando os botoes pinMode(botao1, INPUT); //Definindo botao 1, como entrada "INPUT" digitalWrite(botao1, HIGH); pinMode(botao2, INPUT); digitalWrite(botao2, HIGH); pinMode(botaoReg, INPUT); digitalWrite(botaoReg, HIGH); pinMode(botaoSoma, INPUT); digitalWrite(botaoSoma, HIGH); Ainda dentro da função setup que é nossa função principal, teremos uma função chamada zera(). Essa função é responsável por zerar todos os valores do dos vetores de led. Sua chamada é bem simples, realizada após a última linha de código acima, por meio do seguinte comando: zera(); Como dito acima, a função zera() é a responsável por zerar todos os valores dos leds e dos vetores atuais, apagando seus leds como se estivessem iniciando o programa novamente. A implementação dessa função é realizada da seguinte forma: void zera() /*Funçao zera o vetor atual, apaga os leds e os valores de cada led*/ { 03/10/2020 Ead.br https://uniritter.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_INTCOI_19/unidade_4/ebook/index.html#section_1 10/36 for(int i = 0; i < 2; i++) { atual[i] = 0; } digitalWrite(led1, LOW); digitalWrite(led2, LOW); valor1 = 0; valor2 = 0; } Agora entraremos no loop dessa implementação e prototipação. Dentro desse looping conheceremos o comando digitalRead. Esse comando é responsável por veri�car o valor de um botão quando o mesmo for pressionado. Como o status inicial dos leds são zero, a função deve alterar esse valor para que seja recebido o valor um. Ao receber esse valor o led deverá acender, con�rmando assim sua alteração. Sua implementação obedece a seguinte forma: void loop() { if(digitalRead(botao1) == LOW){ //Se o botão 1 foi pressionado valor1 = !valor1; /* Inverte o valor quando pressionado, inicia em 0, pressionado torna-se 1, pressionado novamente torna-se 0... */ 03/10/2020 Ead.br https://uniritter.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_INTCOI_19/unidade_4/ebook/index.html#section_1 11/36 atual[1] = valor1; // vetor atual na última posição recebe o valor digitalWrite(led1, valor1); // led acende conforme o valor delay(300); } if(digitalRead(botao2) == LOW){ //Se o botão 2 foi pressionado valor2 = !valor2; atual[0] = valor2; digitalWrite(led2, valor2); delay(300); } Deve-se aplicar o mesmo para os botões que armazenam os valores, como o botão que registra um valor informado e o botão soma. Dessa forma, completando a função de loop, temos o seguinte trecho de código: if(digitalRead(botaoReg) == LOW){ //Vetor Registrador recebe o vetor atual for(int i = 0; i < 2; i++){ reg[i] = atual[i]; } zera(); delay(500); 03/10/2020 Ead.br https://uniritter.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_INTCOI_19/unidade_4/ebook/index.html#section_1 12/36 } if(digitalRead(botaoSoma) == LOW){ soma(); // Chama a função soma resultado(); // Chama a função resultado para exibi- la em tela delay(500); } } Teremos agora o trecho mais importante de nosso programa, onde toda a lógica da calculadora pode ser encontrada. A função soma nada mais será do que a soma de dois valores que resultem no máximo o valor 3. Justi�cando, para que o código não se torne repetitivo, escolheu-se esse valor e para que a lógica não �casse tão complexa. Para a parte lógica dessa soma temos o clássico “vai um”. Isso se aplica quando a soma de dois valores são maiores que a capacidade de armazenamento aumentando em uma unidade a soma total de dois valores. Quando tratamos de números binários deveremos lembrar que a soma de 1+1 é 10. Tratando essa parte lógica então, temos o seguinte código para a função soma: void soma(){ byte vaiUm = 0; /*Vai Um, resto da soma binaria, 1+1 = 0 e vaiUm = 1, 1+1+1 = 1 e vaiUm = 1 */ for(int i = 3; i >= 0; i--){ if((reg[i] == 0) && (atual[i] == 0) && vaiUm == 1){ 03/10/2020 Ead.br https://uniritter.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_INTCOI_19/unidade_4/ebook/index.html#section_1 13/36 res[i] = 1; vaiUm = 0; continue; } if((reg[i] == 0) && (atual[i] == 1) && vaiUm == 1){ res[i] = 0; vaiUm = 1; continue; } if((reg[i] == 1) && (atual[i] == 0) && vaiUm == 1){ res[i] = 0; vaiUm = 1; continue; } if((reg[i] == 1) && (atual[i] == 1) && vaiUm == 1){ res[i] = 1; vaiUm = 1; continue; } if((reg[i] == 0) && (atual[i] == 0) && vaiUm == 0){ 03/10/2020 Ead.br https://uniritter.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_INTCOI_19/unidade_4/ebook/index.html#section_1 14/36 res[i] = 0; continue; } if((reg[i] == 0) && (atual[i] == 1) && vaiUm == 0){ res[i] = 1; continue; } if((reg[i] == 1) && (atual[i] == 0) && vaiUm == 0){ res[i] = 1; continue; } if((reg[i] == 1) && (atual[i] == 1) && vaiUm == 0){ res[i] = 0; vaiUm = 1; continue; } } } Para esse caso utilizamos vários conceitos básicos de programação, como as estruturas condicionais if e for. Por �m, devemos então mostrar os resultados para o usuário que realizou as operações. O trecho de código �ca da seguinte forma: 03/10/2020 Ead.br https://uniritter.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_INTCOI_19/unidade_4/ebook/index.html#section_1 15/36 void resultado(){ digitalWrite(led1, res[3]); valor1 = res[1]; atual[1] = res[1]; digitalWrite(led2, res[0]); valor2= res[0]; atual[0] = res[0]; } Com isso temos aqui a nossa primeira prototipação e implementação de microcontrolador. 03/10/2020 Ead.br https://uniritter.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_INTCOI_19/unidade_4/ebook/index.html#section_1 16/36 atividadeAtividade Microcontroladores são pequenos circuitos integrados que possuem um processador, memória e periféricos de entrada e saída. Com essa informação, podemos a�rmar que com a sua prototipação é possível desenvolver que tipo de atividades: a) Calculadora b) Alarmes de incêndio c) Alarmes de carro d) Elevadores e) Todas as alternativas anteriores. Feedback: A alternativa correta é a letra E. A a�rmativa a está incorreta pois é possível desenvolver além de uma calculadora, outras alternativas citadas. A a�rmativa b está incorreta pois é possível desenvolver além de um alarme de incêndio, outras alternativas citadas. A a�rmativa c está incorreta pois é possível desenvolver além de um alarme de carro, outras alternativas citadas. A a�rmativa d está incorreta pois é possível desenvolver além de um elevador, outras alternativas citadas. A a�rmativa e está correta pois é possível desenvolver todos os itens citados acima. 03/10/2020 Ead.br https://uniritter.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_INTCOI_19/unidade_4/ebook/index.html#section_1 17/36 Neste tópico entenderemos melhor o que é Big Data e como podemos relacioná-la com a Internet das Coisas, tratando as suas fontes de geração e quais seus tipos de dados e falando sobre a visão geral de uma coleta, armazenamento e processamento de dados. Fontes de gerações e tipos de dados Com o constante crescimento da tecnologia, �cou mais comum ao ser humano armazenar e guardar várias memórias de momentos de sua vida, seja ela por vídeos ou por fotos. Além disso, a tecnologia pode ser utilizada para �ns de conhecimentos e aprendizagem ou até mesmo entretenimento. Muitos dados são armazenados nas memórias computacionais e essa grande quantidade de informações é chamada hoje de Big Data. Na computação utilizamos unidades de medida para controlar o tamanho de volumes de informações. Essas escalas variam desde o bit (menor unidade possível) até o yottabyte (maior unidade utilizável). Dentro dessa escala, a escala de dados que é utilizado para medir a quantidade de informações Internet das Coisas e BigInternet das Coisas e Big DataData 03/10/2020 Ead.br https://uniritter.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_INTCOI_19/unidade_4/ebook/index.html#section_1 18/36 armazenadas é o zettabyte, que é a unidade anterior ao citado yottabyte.. Chamam isto de Big Data (Tole, 2013). Ele explica que o volume aumenta a cada ano pelas seguintes razões: O armazenamento de dados hoje é barato (discos rígidos e DVDs) ou mesmo de graça (serviços de hospedagem free na Web); As pessoas estão mais familiarizadas com a tecnologia e consequentemente geram e armazenam mais informações (crianças de 2 anos já sabem usar celulares e computadores e a 3a idade está menos tecnofóbica); Guardar e-mails antigos em sua caixa de entrada. Isso acumula muita informação que nem sempre é útil ao usuário. Uma expansão das redes sociais, onde é possível publicar informações relacionadas à você mesmo. Analisando dessa forma vemos a importância que a IoT tem com a Big Data. Taurion (2013) a�rma que os imensos amontoados de dados provêm das mais diversas fontes, pois, além dos dados gerados pelos sistemas transacionais das empresas, temos a imensidão de dados gerados pelos objetos na Internet das Coisas, como sensores e câmeras, e os gerados nas mídias sociais via PCs, smartphones e tablets. Integram o chamado Big Data o conteúdo de 640 milhões de sites, dados de seis bilhões de celulares e os três bilhões de comentários feitos diariamente no Facebook. Variedade porque estamos tratando tanto de dados textuais estruturados quanto não estruturados como fotos, vídeos, e-mails e tuítes. E velocidade, porque muitas vezes precisamos responder aos eventos quase que em tempo real. Ou seja, estamos falando de criação e tratamento de dados em volumes massivos. Podemos concluir então que Big Data e IoT estão relacionados diretamente entre si e com o crescimento da quantidade de volume de dados e tecnologia, essa quantidade de informações tende a crescer. Dessa forma, a capacidade massiva de armazenamento de dados deve acompanhar esse crescimento e obviamente, crescer comitantemente. 03/10/2020 Ead.br https://uniritter.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_INTCOI_19/unidade_4/ebook/index.html#section_1 19/36 Visão geral sobre coleta, armazenamento e processamento de dados Para que a Big Data tenha os seus dados coletados e armazenados, é necessário a utilização de algumas técnicas. Entretanto, é necessário entender que existem três pilares para a extração das informações. De acordo com McA�e e Brynjolfsson (2012), a Big Data não é referente apenas ao armazenamento de dados, ela é diretamente ligada a velocidade e a origem dos dados. Quando se possui uma relação muito grande de informações, obviamente a velocidade do processamento desses dados é bem maior. Como por exemplo, para realizar a busca de um dado especí�co, é necessário consultar toda a base de informações até encontrar o termo desejado. Além da velocidade também temos a variedade dos dados. Com o crescimento da tecnologia e da quantidade de informações disponíveis, existem várias formas de obter informações, como por exemplo redes sociais e pastas compartilhadas via rede. Portanto, essas três características fundamentais estão relacionadas a Big Data: volume, variedade e velocidade. Essas características são descritas em: Volume: a Web interativa, a conexão de um número cada vez maior de dispositivos na rede e o uso mais intenso de redes sociais têm provocado um aumento exponencial na quantidade de dados que são gerados diariamente. Todas essas informações, além de outros tipos de dados como o comportamento de consumidores, os dados �nanceiros, os relatórios médicos, as conversas realizadas em aplicativos de troca de mensagens, são armazenados em bases de dados, que gera um volume extremamente denso de dados (MCAFFE e BRYNJOLFSSON, 2012); Velocidade: em suma, os dados gerados �cam disponíveis em servidores em tempo real. Tal característica permite que o processamento e as análises dos dados ocorram, simultaneamente, a criação dos mesmos, possibilitando a tomadas de decisões instantâneas. Dessa maneira, a velocidade à qual se refere McA�e 03/10/2020 Ead.br https://uniritter.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_INTCOI_19/unidade_4/ebook/index.html#section_1 20/36 trata não apenas da entrada, mas também do �uxo dos dados, em que é necessário ter velocidade para acompanhar a geração e a demanda das requisições realizadas (MCAFFE e BRYNJOLFSSON, 2012); Variedade: o modo em que os dados estão disponíveis na Web apresenta uma diversidade crescente, onde usuários podem inserir textos, músicas, hipertextos, vídeos, conteúdos interativos, entre outros (MCAFFE e BRYNJOLFSSON, 2012). De acordo com Coneglian et al. (2017), diversas questões são capazes de gerar problemas durante o processo de análise de dados. Esses problemas podem causar exclusão e discriminação por não considerarem fatores que in�uenciam diretamente nos resultados, que como consequência poderá, inevitavelmente, afetar determinados grupos de indivíduos, em virtude das tomadas de decisões baseadas nas análises dos dados. Para se coletar dados referentes a Big Data, é necessário realizar uma análise e um estudo que nos informará a quantidade do �uxo de dados que é produzida por uma pessoa e suas respectivas informações. Frank et al (2013), realiza um estudo comportamental de pessoas na rede social Twitter, por exemplo, que conclui que os estadunidenses são mais felizes quando estão longe de suas casas. Por outro lado Goldstein e Winkelmayer (2015), relata que estudos de Big Data devem serrealizados utilizando os dados de sistemas de saúde. Apontando como exemplo, caso de Taiwan, onde há um sistema universal de saúde, que abrange a 99% da população. E assim, ser possível de�nir políticas públicas e comportamentos de doenças. Para complementar a análise realizada, existem alguns aplicativos que auxiliam a coleta desses dados. Como por exemplo um projeto que trata de um aplicativo que coleta informações de buracos de ruas da cidade de Boston, EUA por meio do uso de acelerômetro e GPS, tecnologias presentes apenas em smartphone. Os dados que são coletados são enviados ao governo municipal, para que possa ser realizado, futuramente, o conserto das ruas que apresentam buracos (Street Bump, 2015). 03/10/2020 Ead.br https://uniritter.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_INTCOI_19/unidade_4/ebook/index.html#section_1 21/36 Sobre o armazenamento de dados, Taurion (2013) a�rma que o volume chama atenção, mas é uma variável bem subjetiva, pois os limites de armazenamento e tratamento de dados aumentam com a rápida evolução tecnológica. Grandes corporações armazenam múltiplos petabytes e mesmo pequenas e médias empresas trabalham com dezenas de terabytes de dados. Com esse volume absurdo de dados, as informações que encontramos armazenadas em vários lugares do mundo (incluindo empresas, páginas pessoais e etc) tendem a aumentar exponencialmente. Por �m,o processamento dos dados pode ser auxiliado pelas tecnologias que sustentam Big Data e essas informações analisadas sob duas óticas: as envolvidas com analytics, tendo Hadoop e MapReduce como nomes principais e as tecnologias de infraestrutura, que armazenam e processam os petabytes de dados. Neste aspecto, destacam-se os bancos de dados NoSQL (not only SQL). Essas tecnologias são utilizadas pois Big Data é a simples constatação prática de que o imenso volume de dados gerados a cada dia excede a capacidade das tecnologias atuais de os tratarem adequadamente (TAURION, 2013). O Apache Hadoop é um framework MapReduce que facilita o desenvolvimento de aplicações para o processamento de grande volume de dados de forma distribuída, paralela, e com tolerância a falhas. A ideia principal para o desenvolvimento de um processamento do tipo (Job) MapReduce envolve o particionamento dos dados em partes independentes. Estas partes são processadas por uma função de mapeamento de forma totalmente paralela em cada nó do cluster de computadores. Este framework ordena as saídas das funções de mapeamento e que servem de entrada para as funções de redução. Na maioria dos casos, as entradas e saídas desse processo são armazenadas no sistema de arquivos HDFS. O Apache Hadoop também pode organizar a ordem de execução dos processos, e monitoramento e re-execução em caso de falhas nas tarefas (VIEIRA ET AL., 2012, p. 16-17). 03/10/2020 Ead.br https://uniritter.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_INTCOI_19/unidade_4/ebook/index.html#section_1 22/36 atividadeAtividade Com base nos estudos, quais das alternativas abaixo contém as três principais características da Big Data? a) Volume, Variedade e Velocidade. b) Volume, Hadoop e MapReduce. c) Hadoop, Arduino e MapReduce. d) Shield, Led e Velocidade. e) Hardware, Software e Apache. Feedback: A alternativa correta é a letra A, A a�rmativa b está incorreta pois Hadoop e MapReduce são frameworks que facilitam a extração da Big Data. A a�rmativa c está incorreta por Hadoop e MapReduce são frameworks e Arduino é a placa para desenvolvimento. A a�rmativa d está incorreta pois Shield e Led são componentes de um microcontrolador. A a�rmativa e está incorreta pois nenhuma das características citadas correspondem a microcontroladores em si. 03/10/2020 Ead.br https://uniritter.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_INTCOI_19/unidade_4/ebook/index.html#section_1 23/36 Desde que os computadores foram inventados, sempre nos perguntamos se eles poderiam ser feitos para aprender. Se pudéssemos compreender como programá-los para aprender e melhorar automaticamente com experiência, o impacto seria dramático (LOPEZ, 2010). Um conceito simples de aprendizado de máquina pode ser explicado quando um ambiente fornece alguma informação ao elemento de aprendizagem. Esse elemento de aprendizagem utiliza esta informação para melhorar em um base de conhecimentos e �nalmente este processo vai melhorando seu desempenho perfeitamente até encontrar uma solução melhor do que a proposta (Haykin, 2001). Basicamente, há uma relação entre ambiente, elemento de aprendizado, base de conhecimentos e performance. Por outro lado, além da aprendizagem de máquina é necessário explicar também a inteligência arti�cial. Teixeira (2014) explica que a inteligência arti�cial é uma tecnologia que se encontra entre a ciência e a arte. Seu objetivo é construir máquinas que, ao resolver problemas, consigam também pensar. Um bom exemplo disso é a máquina de jogar xadrez. Nesse Internet das Coisas,Internet das Coisas, Inteligência arti�cial eInteligência arti�cial e Aprendizagem deAprendizagem de MáquinaMáquina 03/10/2020 Ead.br https://uniritter.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_INTCOI_19/unidade_4/ebook/index.html#section_1 24/36 contexto, existem três formas de construir um dispositivo que jogue xadrez: fazer com que o ser humano imite uma máquina; construir uma máquina que imite um ser humano ou conseguir que uma máquina ultrapasse a mente humana. Uma “learning machine” aprende com dados e quanto mais dados ele tiver, mais o algoritmo aprende. Cria-se, portanto, um círculo virtuoso. Big Data é um passo signi�cativo em busca da computação cognitiva. O exemplo do Watson da IBM é emblemático dessa tendência (Taurion, 2013). De acordo com Taurion (2013), com Big Data as fontes de informação se ampliam consideravelmente. Com essas informações fornecidas, podemos alcançar o próprio usuário que compartilhou seus dados. Esses dados podem ser obtidos, desde a exposição dos dados via rede social, até cliques e visitas a determinadas páginas da web. É possível coletar dados e informações armazenadas pelo próprio navegador utilizado e por meio dele identi�car preferências de compra e hábitos comuns do usuário. Como por exemplo a Amazon. Ela, com seu leitor eletrônico Kindle, consegue obter informações sobre os hábitos de cada usuário. Ao ligá-lo ele envia para Amazon, entre outras informações, o livro que está sendo lido, quantas páginas foram lidas, o tempo consumido nesta leitura e os parágrafos sublinhados. De um modo geral, podemos entender que nossos dispositivos IoT conseguem captar um grande volume de dados e, por meio dessa coleta de dados, é possível realizar uma �ltragem e começar a utilizar as informações coletadas a nosso favor. Como por exemplo, quando você busca uma passagem aérea em uma companhia de vôo. Ao �nalizar essa simples busca, seu navegador entende que você está a procura de passagens e, dessa forma, começará a indicar propagandas com descontos e promoções de passagem. Da mesma forma, como citado acima, a Amazon utiliza de seu Kindle para entender as preferências de leitura de seus usuários e, a partir disso, relacionar tipo de leitura parecidos. Isso pode ser vinculado com o e-mail do usuário e ao revelar uma promoção, indicar gêneros parecidos para melhorar sua venda. Podemos veri�car também que, isso auxilia no processo de vendas de uma empresa, portanto, é um ramo crescente na tecnologia da informação e inclusive no marketing digital. flit 03/10/2020 Ead.br https://uniritter.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_INTCOI_19/unidade_4/ebook/index.html#section_1 25/36 Analisando ambientes inteligentes, temos alguns casos de Inteligência arti�cial e aprendizagem de máquina bem sucedidos. Taurion (2013), diz que o uso potencial no controle de doenças é veri�cado na inteligência arti�cial, aumentando a vigilância sobre possíveis surtos como, por exemplo, descobrindo em que áreas elas foram detectadase de forma preditiva alertar e preparar os hospitais e centros de emergência regionais para uma possível epidemia. Pesquisas demonstram que isso é factível já havendo casos bem interessantes de uso de Big Data neste contexto, onde identi�cam-se tendências em um oceano de dados padrões de conexões e interdependências que não conseguíamos observar quando usando amostragens bem 47 menores . Um deles é o Flu Trends do Google. Baseado na imensa quantidade de dados que obtém a cada minuto no seu buscador e que estão relacionados com as necessidades das pessoas, o Google desenvolveu um projeto onde, extrapolando-se a tendência de buscas, conseguiu-se identi�car indícios de propagação de gripe antes dos números o�ciais re�etirem a situação. reflita Re�ita Você já pensou no poder que a inteligência arti�cial e a aprendizagem de máquina chegaram? As pesquisas realizadas para essa área da tecnologia estão crescentes e, muitas vezes faz o que antes era visto apenas em �lmes, tornar-se real. Alguns robôs já são capazes de simular sentimentos com base na tonalidade de voz ou descobrir o seu humor por meio das características físicas (principalmente faciais) de um ser humano. Convido-lhe a re�etir sobre o seguinte tema: Um dia, os robôs imitarão os humanos em uma sociedade? 03/10/2020 Ead.br https://uniritter.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_INTCOI_19/unidade_4/ebook/index.html#section_1 26/36 saiba mais Saiba mais Você sabia que o escritor Issac Asimov criou para a literatura de �cção cientí�ca três leis da robótica que se aplicam a inteligência arti�cial e, essa criação foi tão genial que ela se aplica ao mundo real? Essas três leis são: 1 - Um robô não pode ferir um humano ou permitir que um humano sofra algum mal; 2 - os robôs devem obedecer às ordens dos humanos, exceto nos casos em que tais ordens entrem em con�ito com a primeira lei e; 3 - Um robô deve proteger sua própria existência, desde que não entre em con�ito com as leis anteriores. ACESSAR https://super.abril.com.br/cultura/as-tres-leis-da-robotica/ 03/10/2020 Ead.br https://uniritter.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_INTCOI_19/unidade_4/ebook/index.html#section_1 27/36 atividadeAtividade Sobre aprendizagem de máquina e de acordo com o que foi estudado sobre o tema, é correto a�rmar que: a) Quanto menos dados tiver, melhor será o resultado. b) Não existem estudos que comprovem sua e�cácia. c) Algumas vezes pode não encontrar a melhor solução. d) Sempre encontrará a melhor solução. e) O desenvolvimento dessa aprendizagem está distante da realidade. Feedback: A alternativa correta é a letra C. A a�rmativa a está incorreta pois, quanto mais dados, melhor o funcionamento e a aprendizagem. A a�rmativa b está incorreta pois há vários estudos que comprovam sua e�cácia, inclusive utilizada em empresas. A a�rmativa c está correta pois nem sempre encontra a melhor solução. A a�rmativa d está incorreta pois, pode não encontrar a melhor solução. A a�rmativa e está incorreta pois, existem empresas que já aplicam aprendizagem de máquina em suas vendas. 03/10/2020 Ead.br https://uniritter.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_INTCOI_19/unidade_4/ebook/index.html#section_1 28/36 Com esse crescimento da tecnologia, é praticamente impossível veri�car o quanto estamos expostos com nossos dados e nossa vida pessoal. Como por exemplo a postagem de fotos de uma determinada viagem, que pode nos mostrar que não estamos no nosso país de origem. Ou até mesmo ao conectar-se à um grupo de conversas e expor nosso dispositivo IoT, juntamente com fotos e informações pessoais, fazendo com que qualquer pessoa que esteja nesse respectivo grupo tenha acesso a nossas informações e vida particular. Nesse contexto, analisamos que a proteção para esses dispositivos e para esses dados é fundamental. Proteção de dispositivos e dados Para Batista e Kaminski (2017), O �uxo de informação em uma cidade inteligente com dispositivos pertencentes à IoT consiste na coleta de dados pelos sensores, processamento desses dados em ambientes distribuídos e envio de decisões para atuadores. A expectativa por uma grande quantidade de sensores em uma cidade inteligente traz como consequência um alto Internet das Coisas eInternet das Coisas e segurançasegurança 03/10/2020 Ead.br https://uniritter.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_INTCOI_19/unidade_4/ebook/index.html#section_1 29/36 volume de dados trafegado na rede. Ataques de segurança em um ambiente como esse podem trazer sérios problemas para a população, já que agora o ambiente computacional não se restringe a uma empresa de TI ou ao computador pessoal de um usuário, mas, sim, à cidade como um todo. Muitas das soluções que vêm sendo desenvolvidas para melhorar o desempenho dos atuais sistemas de segurança para cenários como a IoT baseiam-se em sistemas de processamento por �uxos para grandes massas de dados. Além do monitoramento de dados das camadas de rede e de transporte na IoT, existem propostas que buscam antecipar ataques por meio de dados não estruturados como aqueles divulgados por seres humanos em redes sociais online . Nesse caso, o monitoramento é feito diretamente na camada de aplicação. A justi�cativa para utilizar redes sociais online em sistemas de segurança vem principalmente do fato de que, nesses ambientes, usuários tendem a propagar mensagens consideradas relevantes, além de serem in�uenciados por outros usuários com muitos seguidores (Batista e Kaminski, 2017). Apesar do avanço que vem sendo realizado em segurança da informação para IoT, diversos desa�os de pesquisa ainda precisam ser resolvidos, como a redução de falsos positivos gerados pelos sistemas de alerta, a busca pelos melhores algoritmos de aprendizado de máquina para detecção de novos ataques e o desenvolvimento de técnicas mais e�cientes para a correlação de dados heterogêneos (Batista e Kaminski, 2017). É necessário também veri�car o lado do desenvolvedor. Nesse contexto, espera-se que os programadores assegurem que ataques a sistemas IoT sejam interceptados, dados trocados sejam autenticados, os acessos sejam controlados e a privacidade seja garantida. Para isso, sistemas customizados de seguranças precisam ser desenvolvidos e ter o funcionamento certi�cado. Um caso em especial que merece destaque e a segurança de sistemas IoT conectados a dispositivos móveis. Esse tipo de aplicação é alvo de muito interesse uma vez que, como já citado, os aparelhos smartphones estão se popularizando cada vez mais. Visto que sistemas de pagamento on-line em geral (compras e serviços) estão cada vez mais comuns, a sua integração com sistemas IoT logo ganhará espaço no mercado, quando poderemos ir ao 03/10/2020 Ead.br https://uniritter.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_INTCOI_19/unidade_4/ebook/index.html#section_1 30/36 cinema, ao supermercado ou sair para almoçar sem nem mesmo levar a carteira (Egídio e Ukei, 2015). 03/10/2020 Ead.br https://uniritter.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_INTCOI_19/unidade_4/ebook/index.html#section_1 31/36 atividadeAtividade Como o mundo está conectado, �ca difícil dizer que não ocorrerá uma exposição de dados pela rede. São técnicas utilizadas para obter informações de um usuário na web, exceto: a) Phishing. b) Rollback. c) Ataque DDOS. d) Ransomware. e) Cavalo de Troia. Feedback: A alternativa correta é a letra B, A a�rmativa a está incorreta pois, é um ataque social no qual o hacker se passa por um site con�ável para roubar informações. A a�rmativa b está correta pois, rollback é uma técnica de recuperação de dados e não vazamento. A a�rmativa c está incorreta pois, é um ataque que sobrecarrega a página e seu processamento fazendo com que os dados sejam expostos após o site �car fora do ar. A a�rmativa d está incorreta pois, é uma técnica que bloqueia determinados arquivos do computador tornando-os criptografados. A alternativa e está incorretapois, o Cavalo de Troia busca incapacitar o computador de funcionar corretamente. 03/10/2020 Ead.br https://uniritter.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_INTCOI_19/unidade_4/ebook/index.html#section_1 32/36 indicações Material Complementar LIVRO Fundação Isaac Asimov Editora: Editora Aleph; Edição: 1ª ISBN: 8576570661 Comentário: Recomenda-se esse livro em uma visão da literatura da �cção cientí�ca. Esse livro é indicado em várias fontes de conhecimento para que seja criada uma visão abrangente e ampla de inteligência arti�cial, estimulando o pensamento futurístico de onde as máquinas podem chegar. Essa re�exão exposta no livro, faz com que máquinas e humanos vivam em uma única sociedade, perguntando-se, até quando as máquinas seguirão obedientes aos humanos? 03/10/2020 Ead.br https://uniritter.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_INTCOI_19/unidade_4/ebook/index.html#section_1 33/36 FILME Eu, robô Ano: 2004 Comentário: O �lme indicado se chama “Eu, robô” e conta com o renomado ator Will Smith. Esse �lme se passa em 2035 e pode-se veri�car que robôs e humanos vivem em uma sociedade onde robôs são subordinados as ordens humanas. Uma das leis da robótica descrita pelo �lme é que os robôs são impedidos de fazer mal à um humano. Eis que essa lei é quebrada por um robô e a investigação começa a ocorrer. O �lme foi indicado em 2005 para o Oscar de Melhores Efeitos Visuais. Para conhecer mais sobre o �lme, acesse o trailer disponível. T R A I L E R 03/10/2020 Ead.br https://uniritter.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_INTCOI_19/unidade_4/ebook/index.html#section_1 34/36 conclusão Conclusão Concluímos então o conteúdo de Internet das Coisas. Nessa unidade veri�camos algumas práticas de programação e analisamos o potencial da Big Data e sua utilização na aprendizagem de máquina e na Inteligência Arti�cial. Neste capítulo você teve a oportunidade de: Aprender a desenvolver um protótipo com microcontroladores; Estimular o raciocínio do desenvolvimento de programação para Dispositivos móveis; O signi�cado de Big Data e sua importância nos dias atuais; Que tipo de fontes são usadas para a geração de dados na Big Data; Obtivemos uma visão geral sobre coleta, armazenamento e processamento de dados; Aprendemos o signi�cado de aprendizagem de máquina e inteligência arti�cial; Uma visão geral de ambientes inteligentes; Por �m, a segurança dos dispositivos e dos dados da IoT. referências Referências Bibliográ�cas 03/10/2020 Ead.br https://uniritter.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_INTCOI_19/unidade_4/ebook/index.html#section_1 35/36 BATISTA, Daniel; KAMINSKI, Carlos Alberto. Segurança. Computação, p. 21. CONEGLIAN, Caio Saraiva; SEGUNDO, José Eduardo Santarem; SANT'ANA, Ricardo César Gonçalves. Big Data: fatores potencialmente discriminatórios em análise de dados. Em Questão, v. 23, n. 1, p. 62-86, 2017. EGIDIO, Lucas; UKEI, T. Internet das Coisas (IoT): Uma análise de aplicabilidade. In: 1º WSEE-Workshop de Sistemas Embarcados da ES670. 2015. FRANK, Morgan R. et al. Happiness and the patterns of life: A study of geolocated tweets. Scienti�c reports, London, v. 3, Set. 2013. GOLDSTEIN, Benjamin A.; WINKELMAYER, Wolfgang C. Comparative health services research across populations: the unused opportunities in big data. Kidney International, Bruxelas, v. 87, n. 6, p. 1094-1096, Jun. 2015. HAYKIN, Simon. Redes Neurais: Princípios e prática. Porto Alegre RS:Bookman, 2001. LOPEZ, Alvaro Gustavo Talavera. Controle Preditivo com Aprendizado por Reforço para Produção de Óleo em Poços Inteligentes. 2010. Tese de Doutorado. PUC-Rio. MACAFFE E Brynjolfsson: MCAFEE, Andrew; BRYNJOLFSSON, Erik. Big Data: the management revolution. Harvard Business Review, Brighton, v. 90, n. 10, p. 61-67, oct. 2012. Monk, Simon. Programação com Arduino: Começando com Sketches. Bookman. 2018. STREET BUMP. About street bump. Boston, 2015. Disponível em: <http://www.streetbump.org/about>. Acesso em: 24 abr. 2019. SWANSON, Don R.; SMALHEISER, N. R. An interactive system for �nding complementary literatures: a stimulus to scienti�c discovery. Arti�cial Intelligence, Amsterdam, v.91, n.2, p.183-203, Apr. 1997. http://www.streetbump.org/about 03/10/2020 Ead.br https://uniritter.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_INTCOI_19/unidade_4/ebook/index.html#section_1 36/36 TAURION, Cezar. Big data. Rio de Janeiro: Brasport, 2013. TEIXEIRA, João F. Inteligência arti�cial. Pia Sociedade de São Paulo-Editora Paulus, 2014. TOLE, A. A. Big Data Challenges. Database Systems Journal, v. IV, n. 3, 2013, p.31-40. VIEIRA, Marcos Rodrigues et al. Bancos de Dados NoSQL: conceitos, ferramentas, linguagens e estudos de casos no contexto de Big Data. Simpósio Brasileiro de Bancos de Dados, 2012. IMPRIMIR
Compartilhar