Buscar

APOSTILA - INTERNET DAS COISAS IOT - UNIDADE 4 (ANHEMBI MORUMBI UAM) CURTA SE LHE AJUDOU! :D

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

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

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

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

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

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

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Internet das Coisas
Prototipação e Fundamentos da Big data e IoT
INTERNET
DAS COISAS
Esp. Felippe Fernandes Silva
INICIAR
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 verificará sua proximidade com a linguagem C. Em seguida, no capítulo 2, será verificado 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 artificial no uso da IoT. Por fim, no último capítulo verificaremos através de alguns estudos, sobre Internet das Coisas e sua segurança, analisando a proteção de dispositivos e informações.
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 eficaz, 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 finalizar 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 verificar a sua pasta de instalação, é possível verificar 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 verificar 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 simplifica 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 define 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 definiremos 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);
}
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 definir 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. 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 define 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 fim, finalizando 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 fim 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]; // Valordo 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);    
    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);          
       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 verificar 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, confirmando 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
       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);
    }
}
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. Justificando, para que o código não se torne repetitivo, escolheu-se esse valor e para que a lógica não ficasse 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;
     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;
   }
   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 fim, devemos então mostrar os resultados para o usuário que realizou as operações. O trecho de código fica 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];
}
Com isso temos aqui a nossa primeira prototipação e implementação de microcontrolador.
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 afirmar que com a sua prototipação é possível desenvolver que tipo de atividades:
Parte superior do formulário
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 afirmativa a está incorreta pois é possível desenvolver além de uma calculadora, outras alternativas citadas. A afirmativa b está incorreta pois é possível desenvolver além de um alarme de incêndio, outras alternativas citadas. A afirmativa c está incorreta pois é possível desenvolver além de um alarme de carro, outras alternativas citadas. A afirmativa d está incorreta pois é possível desenvolver além de um elevador, outras alternativas citadas. A afirmativa e está correta pois é possível desenvolver todos os itens citados acima.Verificar Resposta
Parte inferior do formulário
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, ficou 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 fins 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, 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 hospedagemfree 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) afirma 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.
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ífico, é 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 financeiros, 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 ficam 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 também do fluxo 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 influenciam 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 fluxo 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 definir 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) afirma 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 fim,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).
atividade
Atividade
Com base nos estudos, quais das alternativas abaixo contém as três principais características da Big Data?
Parte superior do formulário
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 afirmativa b está incorreta pois Hadoop e MapReduce são frameworks que facilitam a extração da Big Data. A afirmativa c está incorretapor Hadoop e MapReduce são frameworks e Arduino é a placa para desenvolvimento. A afirmativa d está incorreta pois Shield e Led são componentes de um microcontrolador. A afirmativa e está incorreta pois nenhuma das características citadas correspondem a microcontroladores em si.Verificar Resposta
Parte inferior do formulário
Internet das Coisas, Inteligência artificial  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 finalmente 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 artificial. Teixeira (2014) explica que a inteligência artificial é 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 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 significativo 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 identificar 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 filtragem 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 finalizar 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 verificar 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.
reflita
Reflita
Você já pensou no poder que a inteligência artificial 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 filmes, 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 refletir 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 artificial e aprendizagem de máquina bem sucedidos. Taurion (2013), diz que o uso potencial no controle de doenças é verificado na inteligência artificial, 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 identificam-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 identificar indícios de propagação de gripe antes dos números oficiais refletirem a situação.
saiba mais
Saiba mais
Você sabia que o escritor Issac Asimov criou para a literatura de ficção científica três leis da robótica que se aplicam a inteligência artificial 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 conflito com a primeira lei e; 3 - Um robô deve proteger sua própria existência, desde que não entre em conflito com as leis anteriores.
ACESSAR
atividade
Atividade
Sobre aprendizagem de máquina e de acordo com o que foi estudado sobre o tema, é correto afirmar que:
Parte superior do formulário
a) Quanto menos dados tiver, melhor será o resultado.
b) Não existem estudos que comprovem sua eficá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 afirmativa a está incorreta pois, quanto mais dados, melhor o funcionamento e a aprendizagem. A afirmativa b está incorreta pois há vários estudos que comprovam sua eficácia, inclusive utilizada em empresas. A afirmativa c está correta pois nem sempre encontra a melhor solução. A afirmativa d está incorreta pois, pode não encontrar a melhor solução. A afirmativa e está incorreta pois, existem empresas que já aplicam aprendizagem de máquina em suas vendas.Verificar Resposta
Parte inferior do formulário
Internet das Coisas e segurança
Com esse crescimento da tecnologia, é praticamente impossível verificar 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 fluxo 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 ambientecomo 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 fluxos 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 justificativa 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 influenciados 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 desafios 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 eficientes para a correlação de dados heterogêneos (Batista e Kaminski, 2017).
É necessário também verificar 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 certificado. 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).
atividade
Atividade
Como o mundo está conectado, fica 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:
Parte superior do formulário
a) Phishing.
b) Rollback.
c) Ataque DDOS.
d) Ransomware.
e) Cavalo de Troia.
Feedback: A alternativa correta é a letra B, A afirmativa a está incorreta pois, é um ataque social no qual o hacker se passa por um site confiável para roubar informações. A afirmativa b está correta pois, rollback é uma técnica de recuperação de dados e não vazamento. A afirmativa 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 ficar fora do ar. A afirmativa d está incorreta pois, é uma técnica que bloqueia determinados arquivos do computador tornando-os criptografados. A alternativa e está incorreta pois, o Cavalo de Troia busca incapacitar o computador de funcionar corretamente.Verificar Resposta
Parte inferior do formulário
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 ficção científica. Esse livro é indicado em várias fontes de conhecimento para que seja criada uma visão abrangente e ampla de inteligência artificial, estimulando o pensamento futurístico de onde as máquinas podem chegar. Essa reflexã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?
FILME
Eu, robô
Ano: 2004
‍Comentário: O filme indicado se chama “Eu, robô” e conta com o renomado ator Will Smith. Esse filme se passa em 2035 e pode-se verificar 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 filme é 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 filme foi indicado em 2005 para o Oscar de Melhores Efeitos Visuais.
Para conhecer mais sobre o filme, acesse o trailer disponível.
TRAILER
conclusão
Conclusão
Concluímos então o conteúdo de Internet das Coisas. Nessa unidade verificamos 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 Artificial. 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 significado 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 significado de aprendizagem de máquina e inteligência artificial;
· Uma visão geral de ambientes inteligentes;
· Por fim, a segurança dos dispositivos e dos dados da IoT.
referências
Referências Bibliográficas
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. Scientific 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 finding complementary literatures: a stimulus to scientific discovery. Artificial Intelligence, Amsterdam, v.91, n.2, p.183-203, Apr. 1997.  
TAURION, Cezar. Big data. Rio de Janeiro: Brasport, 2013.
TEIXEIRA, João F. Inteligência artificial. 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
© 2019 - LAUREATE - Todos direitos reservados

Continue navegando