0% acharam este documento útil (0 voto)
16 visualizações28 páginas

IoT - Internet Das Coisas

O documento aborda a prototipação com microcontroladores, utilizando a construção de uma calculadora binária como exemplo prático. Ele explora a programação em Arduino, suas funções e a relação entre Internet das Coisas e Big Data, além de discutir ambientes inteligentes e segurança na IoT. O texto também detalha a lógica de operação da calculadora, incluindo a implementação de código e o funcionamento dos componentes eletrônicos envolvidos.

Enviado por

Deise Pinheiro
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
16 visualizações28 páginas

IoT - Internet Das Coisas

O documento aborda a prototipação com microcontroladores, utilizando a construção de uma calculadora binária como exemplo prático. Ele explora a programação em Arduino, suas funções e a relação entre Internet das Coisas e Big Data, além de discutir ambientes inteligentes e segurança na IoT. O texto também detalha a lógica de operação da calculadora, incluindo a implementação de código e o funcionamento dos componentes eletrônicos envolvidos.

Enviado por

Deise Pinheiro
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 28

INTERNET

DAS COISAS
E sp. Felippe Fernandes Silva

I NI CI AR
i ntro duç ã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]; // 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);

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.


ati v i dade
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:

a) Calculadora
b) Alarmes de incêndio
c) Alarmes de carro
d) Elevadores
e) Todas as alternativas anteriores.
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 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) 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).
ati v i dade
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.
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.

ref
Reflitalita
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.

A C ESSA R
ati v i dade
Atividade
Sobre aprendizagem de máquina e de acordo com o que foi estudado sobre o tema, é correto afirmar que:

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.
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 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
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).
ati v i dade
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:

a) Phishing.
b) Rollback.
c) Ataque DDOS.
d) Ransomware.
e) Cavalo de Troia.
i n di c a çõ e s
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.

TRAI L ER
co n cl u s ã 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.

r e f e r ê n ci a s
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

Você também pode gostar

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy