Você está na página 1de 36

06/07/2020 Ead.

br

INTERNET
DAS COISAS
Esp. Felippe Fernandes Silva

INICIAR

https://unp.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 1/36
06/07/2020 Ead.br

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.

https://unp.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 2/36
06/07/2020 Ead.br

Prototipando com
Microcontroladores

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 arquivo vazio, porém, ao
veri car a sua pasta de instalação, é possível veri car que existem vários exemplos já

https://unp.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 3/36
06/07/2020 Ead.br

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 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:

https://unp.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 4/36
06/07/2020 Ead.br

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()

         digitalWrite(13, HIGH);

         delay(500);

         digitalWrite(13, LOW);

         delay(500);

https://unp.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 5/36
06/07/2020 Ead.br

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.

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.

https://unp.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 6/36
06/07/2020 Ead.br

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ão serializados 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;

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:

https://unp.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 7/36
06/07/2020 Ead.br

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"    

    pinMode(led2, OUTPUT);

    digitalWrite(led2, LOW);    

    //Intanciando os botoes

    pinMode(botao1, INPUT); //Definindo botao 1, como


entrada "INPUT"

    digitalWrite(botao1, HIGH);    

https://unp.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 8/36
06/07/2020 Ead.br

    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*/

   for(int i = 0; i < 2; i++)

     {

        atual[i] = 0;

     }

    digitalWrite(led1, LOW);

    digitalWrite(led2, LOW);          

https://unp.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 9/36
06/07/2020 Ead.br

       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... */

       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

https://unp.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 10/36
06/07/2020 Ead.br

       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);

    }

    if(digitalRead(botaoSoma) == LOW){        

      soma(); // Chama a função soma

      resultado(); // Chama a função resultado para exibi-


la em tela

      delay(500);

    }

https://unp.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 11/36
06/07/2020 Ead.br

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){

     res[i] = 1;

     vaiUm = 0;

     continue;

   }

   if((reg[i] == 0) && (atual[i] == 1) && vaiUm == 1){

     res[i] = 0;

     vaiUm = 1;

https://unp.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 12/36
06/07/2020 Ead.br

     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){

     res[i] = 0;

     continue;

   }

   if((reg[i] == 0) && (atual[i] == 1) && vaiUm == 0){

     res[i] = 1;

     continue;

   }

https://unp.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 13/36
06/07/2020 Ead.br

   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:

void resultado(){

digitalWrite(led1, res[3]);

  valor1 = res[1];

  atual[1] = res[1];

digitalWrite(led2, res[0]);

  valor2 = res[0];

  atual[0] = res[0];

https://unp.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 14/36
06/07/2020 Ead.br

Com isso temos aqui a nossa primeira prototipação e implementação de


microcontrolador.

https://unp.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 15/36
06/07/2020 Ead.br

atividade
Atividade
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.

https://unp.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 16/36
06/07/2020 Ead.br

Internet das Coisas e Big


Data

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 armazenadas é o zettabyte,

https://unp.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 17/36
06/07/2020 Ead.br

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.

https://unp.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 18/36
06/07/2020 Ead.br

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 McAffe 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 McAffe trata não apenas da entrada, mas

https://unp.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 19/36
06/07/2020 Ead.br

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 ser
realizados 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).

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

https://unp.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 20/36
06/07/2020 Ead.br

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).

https://unp.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 21/36
06/07/2020 Ead.br

atividade
Atividade
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.

https://unp.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 22/36
06/07/2020 Ead.br

Internet das Coisas,


Inteligência arti cial  e
Aprendizagem de
Máquina

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 contexto, existem três formas de construir

https://unp.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 23/36
06/07/2020 Ead.br

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
https://unp.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 24/36
06/07/2020 Ead.br

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?

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
detectadas e 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.

https://unp.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 25/36
06/07/2020 Ead.br

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://unp.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 26/36
06/07/2020 Ead.br

atividade
Atividade
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.

https://unp.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 27/36
06/07/2020 Ead.br

Internet das Coisas e


segurança

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 volume de dados trafegado na rede.
Ataques de segurança em um ambiente como esse podem trazer sérios problemas

https://unp.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 28/36
06/07/2020 Ead.br

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 cinema, ao supermercado ou sair para almoçar sem nem mesmo levar a carteira
(Egídio e Ukei, 2015).

https://unp.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 29/36
06/07/2020 Ead.br

https://unp.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 30/36
06/07/2020 Ead.br

atividade
Atividade
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.

https://unp.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 31/36
06/07/2020 Ead.br

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?

https://unp.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 32/36
06/07/2020 Ead.br

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.

TRAILER

https://unp.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 33/36
06/07/2020 Ead.br

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

https://unp.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 34/36
06/07/2020 Ead.br

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.  

TAURION, Cezar. Big data. Rio de Janeiro: Brasport, 2013.

https://unp.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 35/36
06/07/2020 Ead.br

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

https://unp.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 36/36

Você também pode gostar