Explorar E-books
Categorias
Explorar Audiolivros
Categorias
Explorar Revistas
Categorias
Explorar Documentos
Categorias
br
INTERNET
DAS COISAS
Esp. Felippe Fernandes da Silva
INICIAR
introdução
Introdução
https://unp.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 1/27
06/07/2020 Ead.br
Nesta unidade, apresentaremos a programação da IoT, veri cando alguns princípios utilizados,
componentes e um exemplo prático. No primeiro tópico, falaremos sobre os componentes de
hardware utilizados para o desenvolvimento de um dispositivo IoT. Passaremos, em seguida, para os
princípios CRUD, que incluem a inclusão, a remoção, a alteração e a busca de uma informação em
uma tabela de determinado banco de dados relacional. Aprenderemos, também, a veri car a
cláusula Where e como ela é aplicada e manipulada para a obtenção de melhores resultados e
ltragens de informações. Por m, veri caremos um exemplo dessas práticas, todas aplicadas para a
resolução de um exercício real.
https://unp.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 2/27
06/07/2020 Ead.br
Como vimos até agora, os dispositivos IoT possuem como componentes alguns sensores e algumas
antenas que são capazes de captar o calor e a umidade, enviando sinais a outro dispositivo para que
seja estabelecida uma comunicação. Nessa comunicação, alguma ação seja tomada. Mas você já se
perguntou como essa comunicação é feita? Como os dispositivos se comunicam entre si? Nesta
unidade, entenderemos como essa comunicação é realizada.
Os Arduinos podem ser conectados em um computador por meio do Barramento Serial Universal
(USB). Isso signi ca que você pode usar o Arduino como placa de interface e controlar aqueles
mesmos dispositivos a partir de seu computador. A imagem a seguir exibe como é um Arduino:
https://unp.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 3/27
06/07/2020 Ead.br
Monk (2018b), também faz referência sobre Raspberry e BeagleBone, os quais são computadores em
uma única placa, do tamanho de um cartão de crédito, que executam o sistema operacional Linux.
Eles têm portas USB e saída de vídeo HDMI, de modo que você pode conectar teclado, mouse e
monitor e usá-los como um computador comum. O Raspberry possui um valor um pouco maior que o
de um Arduino comum. A gura a seguir mostra como é um Raspberry:
https://unp.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 4/27
06/07/2020 Ead.br
dispositivos, o Photon possui alguns pinos para conexão e portas USB para que seja possível
conectá-lo em um computador.
O Arduino também possui alguns componentes, os quais são chamados de Shields, que nada mais
são do que placas que ampliam o funcionamento de um Arduino, por meio de displays e acionadores
de motores. Por m, o Arduino possui um projeto de hardware aberto, no qual não há segredos em
relação a seu projeto e software embutido (MONK, 2018b). Um exemplo de Arduino com um Shield
pode ser visto na imagem a seguir:
Agora que entendemos um pouco sobre o que são os dispositivos IoT e seus componentes,
iniciaremos uma implementação básica. O objetivo desse desenvolvimento será criar um dispositivo
que informe a temperatura do ambiente monitorado. Para o desenvolvimento desse software,
precisaremos de:
1 Arduino Uno;
1 Shield Wi-Fi CC3000;
1 sensor de temperatura;
1 protoboard;
3 jumpers macho/macho.
https://unp.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 5/27
06/07/2020 Ead.br
Para o nosso projeto, iremos utilizar a placa Arduino e o sensor LM35 para monitorar a temperatura
do ambiente. Com os dados gerados por esse projeto, já podemos ter algumas ideias de aplicações,
como uma estação de monitoramento da sala de servidores de TI, o controle de temperatura do
escritório ou da nossa própria casa, dentre outros. Também podemos expandir essa ideia para um
ecossistema de IoT, no qual, de acordo com uma determinada leitura de temperatura, podemos,
automaticamente, acionar o ar-condicionado para climatizar o ambiente, dentre outros ns
(MACEDO, 2017).
Após a instalação e a con guração correta do software, é necessário baixar algumas bibliotecas para
realizar o desenvolvimento correto de nosso exemplo. Essas bibliotecas são a PubSubClient e a
Adafruit_CC3000. Após realizar o download dessas bibliotecas, é necessário colocá-las dentro da
pasta chamada Libraries, no aplicativo do Arduino.
Feitas essas etapas de download e inserindo as bibliotecas em seu diretório correto, devemos abrir o
editor do Arduino e, dentro dele, codi car o programa que desejamos implementar. Para isso, insira
o código que está contido no seguinte endereço web:
<https://github.com/heiderlopes/iot_imaster/blob/master/arduino/wi _mqtt>. Acesso em: 02 maio
2019. Esse código possui vários comentários sobre as etapas, a função de cada método e como tais
métodos serão utilizados em nosso programa.
Em seguida, após essa inclusão, devemos realizar algumas alterações nos parâmetros desse projeto,
conforme a necessidade do sistema. Macedo (2017) informa que as alterações dos parâmetros são:
https://unp.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 6/27
06/07/2020 Ead.br
Macedo (2017) indica que devemos enviar e publicar o código Arduino com os seguintes passos:
saiba mais
Saiba mais
Para entender um pouco mais sobre como a IoT tem
crescido no mundo, acesse o link a seguir, o qual está
atualizado e mostra que o Brasil tem trabalhado e busca
conhecimento na área de IoT.
ACESSAR
https://unp.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 7/27
06/07/2020 Ead.br
atividade
Atividade
Quais dos componentes citados a seguir não é um componente para a programação de Iot?
a) Protoboard.
b) Arduino.
c) Raspberry.
d) Cartão Perfurado.
e) BeagleBone.
https://unp.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 8/27
06/07/2020 Ead.br
Como um conceito geral, devemos entender que existem softwares responsáveis pela programação
das ações que o nosso microcontrolador irá realizar. Também, é possível obter um banco de dados
no microcontrolador. Para que sejam realizadas alterações nesse banco de dados, é necessário,
também, algum outro tipo de programa para esse gerenciamento de banco de dados (SGBD). Neste
tópico, focaremos no banco de dados.
Alguns dos princípios utilizados no banco de dados são cruciais para a manipulação de dados que
obtemos dentro do banco. Imagine, por exemplo, onde cam armazenados os dados colhidos de um
IoT quando ele está em ação, colhendo de tempos em tempos a temperatura de um determinado
tipo de ambiente. Esses dados são armazenados em um banco, o qual, no geral, já possui suas
tabelas cadastradas. Nesse momento, ocorre a inclusão desses dados nessa tabela. Dado que essas
tabelas já estejam previamente cadastradas no SGBD, veremos, então, o princípio CRUD.
O princípio CRUD é o nome comumente usado para as quatro principais operações em um sistema
de banco de dados. A sigla CRUD tem como representatividade:
https://unp.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 9/27
06/07/2020 Ead.br
Insert
O comando insert, como o próprio nome diz, é o responsável por inserir algum dado ou alguma
informação dentro de uma tabela do nosso banco de dados relacional. Considerando que já exista
uma tabela previamente criada para a colheita de dados, suponhamos que queremos inserir um
novo valor nessa tabela. Um novo dado foi colhido durante a amostragem e devemos inseri-lo
manualmente no nosso banco.
Considerando os princípios CRUD, o insert é o equivalente ao primeiro item, o Create. Por exemplo,
possuímos uma tabela chamada “Temperatura”. Para inserir dados dentro dessa tabela, iremos abrir
o nosso SGBD e digitar o seguinte comando:
Com esse comando, dizemos que estamos inserindo na tabela “Temperatura”, dentro dos campos
“primeira amostra” e “segunda amostra”, os valores 33 e 30. Os campos são ordenados em colunas
dentro da tabela, a qual, em uma forma visual, caria dessa maneira:
TEMPERATURA
33 30
Update
https://unp.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 10/27
06/07/2020 Ead.br
O comando update é o responsável por modi car ou alterar algum dado ou informação dentro de
uma tabela do nosso banco de dados relacional. Tomemos como exemplo o insert do tópico anterior.
Nesse caso, consideramos que já existe uma tabela e que, nessa tabela, foram inseridos alguns
dados (como temperatura valendo 33 e 30 para a primeira e a segunda amostras).
Com esse comando, estamos dizendo que queremos atualizar a tabela “Temperatura”, escolhendo o
campo “primeira amostra”, e mudar seu valor para 35; porém, só faremos isso onde o valor da
primeira amostra for 33. Dessa maneira, a tabela caria com a seguinte forma:
TEMPERATURA
35 30
Delete
O comando delete é o responsável por excluir e remover algum dado ou alguma informação dentro
de uma tabela do nosso banco de dados relacional. Utilizaremos novamente o exemplo anterior, no
qual já há uma tabela chamada “Temperatura” e nela queremos excluir o campo correspondente à
segunda amostra.
Nesse caso, uma amostra foi colhida; porém, queremos deletar o valor que foi atribuído a ela dentro
da tabela. De acordo com os princípios CRUD, o delete é o equivalente ao item Remove. Como
exemplo, vamos trabalhar com a tabela em que inserimos e alteramos um dado chamada
“Temperatura”. Para excluirmos informações dessa tabela, utilizaremos o seguinte comando:
https://unp.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 11/27
06/07/2020 Ead.br
Com esse comando, dizemos que queremos remover, da tabela de temperatura, o valor da segunda
amostra que possua o valor 30. Nesse caso, a tabela caria da seguinte forma (não possui valor na
segunda amostra):
TEMPERATURA
35
Select
O comando select é o responsável por realizar uma pesquisa nos dados existentes da tabela em
nosso banco de dados. Considerando uma tabela previamente preenchida, queremos veri car o
valor contido em determinada coluna ou campo e, por meio dela, comparar os resultados que foram
colhidos, veri cando se são válidos ou não.
Considerando os princípios CRUD, o select é o equivalente ao item Read, que visa consultar um
dado. Como exemplo, daremos a tabela dos tópicos anteriores, chamada “Temperatura”. Para
consultar os dados dessa tabela, é necessário realizar o seguinte comando:
Nesse comando, informamos ao nosso SGBD que queremos encontrar todos os valores
correspondentes à primeira amostra, os quais estão na tabela “Temperatura”. Nesse caso, a tabela
cará igual à tabela do tópico anterior e nos trará como resultado o valor 35 (que é o valor
pertencente à primeira amostra cadastrada na tabela).
Esses quatro conceitos são os principais que envolvem um banco de dados. Com eles, já é possível
manipular um banco e colher suas informações. Por meio da IoT, já podemos entender como é
realizada a ‘hospedagem’ de informações e onde ela é armazenada. No próximo tópico,
abordaremos, então, o comando Where.
https://unp.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 12/27
06/07/2020 Ead.br
atividade
Atividade
Sobre o princípio CRUD, analise os comandos das a rmativas a seguir:
https://unp.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 13/27
06/07/2020 Ead.br
Where
Quando apresentamos os princípios do CRUDs, não imaginávamos como poderíamos restringir
algumas consultas ou manipulação de dados por meio de algum comando. O comando Insert, por
exemplo, pode ser utilizado para inserir o mesmo valor a toda uma coluna em especí co, ou até
mesmo um único campo para realizar essa inserção.
Como exemplo, na cláusula Where, podemos inserir uma linha na qual o valor é maior que zero. O
comando Select pode incluir a cláusula Where para pesquisar todos os campos com um determinado
valor. O mesmo se aplica ao comando Update, no qual eu posso querer alterar todos os valores de
um campo que sejam iguais para outros valores que possam ser inseridos. Por m, mas não menos
importante, temos o comando Delete. Nesse comando, deve-se tomar muito cuidado, pois, um
Where com uma cláusula malfeita pode acabar com todos os dados, e suas informações podem não
ser recuperadas.
Quando temos um banco de dados com uma tabela relativamente grande, com milhões de dados, o
comando Where é essencial para que o SGBD não se perca nessa imensa quantidade de volume.
Para isso, precisamos ser certeiros com relação à nossa busca; assim, poderemos criar uma cláusula
realmente útil e aplicá-la utilizando o comando Where.
https://unp.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 14/27
06/07/2020 Ead.br
Primeiramente, então, vamos apresentar o operador de igualdade em uma cláusula Where. Para
esse exemplo, teremos uma tabela “Temperatura”, como a do tópico anterior; porém, com alguns
dados a mais. Tomaremos como exemplo, então, a pesquisa de um campo qualquer que esteja
preenchida com um valor igual ao que se deseja procurar. O comando a seguir ilustrará melhor essa
busca:
Nesse comando, queremos pesquisar o campo “primeira amostra”, que pertence à tabela
“Temperatura” e que possua como valor da primeira amostra o número 35. Como resultado, essa
consulta nos retornará todos os campos em que a primeira amostra possui o resultado 35, podendo-
se, então, con rmar que o valor é igual ao citado na consulta.
Veremos agora o operador que representa a diferença em uma cláusula Where. Vamos seguir
considerando, ainda, a tabela apresentada no exemplo anterior e no tópico anterior (suponhando
que ela possua alguns dados a mais). Para isso, tomaremos como exemplo a pesquisa de um campo
qualquer que esteja preenchida com um valor diferente ao que se deseja procurar. O comando a
seguir informará essa consulta:
Nessa consulta, queremos selecionar o campo “primeira amostra” da tabela “Temperatura” e nela
todos os valores diferentes de 35. Nesse caso, para uma tabela com uma grande quantidade de
dados, os resultados serão mais eminentes que nesse nosso exemplo.
No próximo comando, veri caremos o operador representativo que opera quando desejamos
encontrar um valor que seja menor que um outro valor em uma cláusula. Dada a tabela anterior,
tomaremos como exemplo a pesquisa de um campo qualquer que esteja preenchida com um valor
menor que o valor que se deseja procurar. O comando a seguir informará essa consulta:
Nessa linha de comando, consultamos o campo em que o valor da segunda amostra é menor ou igual
a 100. Nesse caso, o resultado obtido incluirá todos os campos que tiverem valores menores ou
iguais a 100. Qualquer resultado acima de 100 não aparecerá nessa busca.
Seguindo a mesma linha de raciocínio, temos como operação e cláusula Where a expressão “maior
que”, a qual segue o mesmo princípio da expressão anterior e, ao ser vinculada a uma cláusula,
devemos apenas alterar a expressão para o símbolo >. Com o exemplo a seguir, cará mais claro:
O resultado dessa busca será todos os valores maiores que 100 (nos quais o próprio 100 não está
incluso, pois não tem o operando ‘=’ ), retornando resultados diferentes dos propostos no exemplo
https://unp.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 15/27
06/07/2020 Ead.br
Agora, veri caremos o comando Between. Esse comando serve para quando precisarmos de valores
que estejam “entre” determinados valores. Podemos veri car que a tradução é literária. A cláusula
Where deve ser preenchida logo em seguida, com o Between e os valores pelos quais se deseja limitar
o intervalo da busca. Esses valores correspondem a valores mínimos e máximos e retornam às
colunas que estão nesse intervalo desejado. A linha de comando é a seguinte:
Nessa consulta, desejamos buscar todos os valores da coluna “segunda amostra” que estão contidos
na tabela “Temperatura”, em que os valores da segunda amostra estão entre 10 e 100. Esse
comando pode retornar diversas linhas de informações e também vai depender do tamanho do
nosso banco de dados.
Parecido com o comando Between, temos o comando In, o qual permite criar uma lista de valores
que serão veri cados juntamente com o valor da coluna. Esse comando serve para especi car um
intervalo de valores selecionados, permitindo pular valores que estejam entre essa busca. Por
exemplo, se desejo buscar valores que se encontrem entre 30 e 35, a cláusula caria dessa forma:
Em alguns casos especí cos, precisamos unir algumas informações para que seja possível ltrar e
melhorar a expressão referente à cláusula Where que desejamos encontrar. Para isso, temos os
comandos AND e OR, os quais funcionam como sua tradução literária, signi cando E e OU. Um
melhor exemplo da utilização desses comandos pode ser visto a seguir:
No primeiro select, desejamos encontrar a primeira amostra da tabela “Temperatura”, ou seja, 30, E a
segunda amostra é 35. Essa é uma operação conjunta e retornará todos os resultados nos quais essa
cláusula é atendida.
No segundo select, desejamos encontrar praticamente a mesma busca; porém, pode-se encontrar
OU os valores em que a primeira amostra é 30 OU os valores en que a primeira amostra é 35.
https://unp.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 16/27
06/07/2020 Ead.br
Também, é possível unir essas duas cláusulas para que exista um melhor ltro dessa busca.
Por m, essas foram algumas das cláusulas com as quais podemos melhorar a nossa ltragem para a
utilização do Where. O Where serve para limitar ou encontrar assertivamente um valor ou um campo
de nossa preferência. Basta realizar uma boa expressão lógica para que esse resultado seja e caz.
https://unp.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 17/27
06/07/2020 Ead.br
atividade
Atividade
Assinale, a seguir, a alternativa que apresenta um comando que não pode ser usado na cláusula Where:
a) AND.
b) OR.
c) UPDATE.
d) BETWEEN.
e) IN.
https://unp.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 18/27
06/07/2020 Ead.br
Prototipando com
Microcontroladores
Já vimos nesta unidade como fazer para se programar em uma linguagem IoT, que tipos de
dispositivos e microcontroladores utilizaremos para que isso seja possível e como fazê-lo da melhor
forma. Vimos, também, a aplicação do CRUD, em que temos comandos utilizados no sistema de
gerenciamento de banco de dados que são as quatro principais operações: Insert, Delete, Update e
Select. Com o CRUD e a cláusula Where, já é possível realizar nossa primeira prototipação de
microcontroladores.
Where
Como o que vimos neste capítulo está vinculado a banco de dados, vamos tomar como exemplo o
seguinte objetivo: temos dispositivos IoT que possuem alguns sensores conectados entre si e que
trocam informações sobre a temperatura em uma determinada fazenda no decorrer do dia. Essa
análise é realizada durante seis dias da semana, tendo início na segunda-feira e nalizando no
sábado. O domingo é utilizado para veri car os dados colhidos nesse tempo. São realizadas três
coletas de dados por dia: uma pela manhã, outra pela tarde e a última pela noite. Os horários das
coletas são iguais para todos os dias. Vamos mostrar, então, como seria a prototipação do banco
desse problema, utilizando a cláusula Where.
Primeiramente, temos uma tabela chamada COLETA. Nela, são armazenadas as informações
recolhidas. Dentro dessa tabela, possuímos os campos DIA_DA_SEMANA, TEMPERATURA_MANHA,
TEMPERATURA_TARDE e TEMPERATURA_NOITE.
Iniciando a prototipação, é importante saber que a colheita teve início na segunda-feira à noite. Os
dados da segunda-feira de manhã e da tarde foram colhidos manualmente. Portanto, temos a
https://unp.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 19/27
06/07/2020 Ead.br
COLETA
segunda 17
terça 22 31 20
quarta 17 15 13
quinta 18 22 22
sexta 23 30 25
sábado 23 30 25
Iniciaremos, então, a prototipação da cláusula Where com a inserção das temperaturas colhidas
manualmente, que são as temperaturas da segunda-feira de manhã e da segunda-feira à tarde. Para
isso, executaremos o seguinte comando:
Nessa inserção de valores, vemos que está sendo inserida na tabela “Coleta”, nos campos
“Temperatura da manhã” e “Temperatura da tarde”, os valores 25 e 20 (respectivamente), em que o
dia da semana é equivalente à segunda-feira. Com essa inserção, a tabela cará da seguinte forma:
https://unp.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 20/27
06/07/2020 Ead.br
COLETA
segunda 25 20 17
terça 22 31 20
quarta 17 15 13
quinta 18 22 22
sexta 23 30 25
sábado 23 30 25
Após a inserção, foi veri cado que os dados colhidos durante as temperaturas da noite não estavam
correspondentes. Os dados devem ser decrementados em um grau quando forem menores ou
iguais a 20. Para isso, é necessário fazer a seguinte busca:
Dessa forma, a tabela caria com os dados atualizados com os valores 16, 19 e 13, para as
temperaturas da noite de segunda-feira, terça-feira e quarta-feira.
Veri camos, então, que é possível utilizar o CRUD e a orientação de cláusulas para que se possa
alterar e resolver problemas ligados a tabelas de informações, como na atividade desenvolvida.
Com esse conceito, já é possível realizar essas alterações e manutenções. É possível, também,
utilizar o princípio do delete (que foi o único não mostrado nesse exemplo), mas como não queremos
deletar os dados colhidos, tal princípio não foi pertinente neste tópico.
https://unp.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 21/27
06/07/2020 Ead.br
reflita
Re ita
Você já pensou em como a IoT é presente nos dias atuais? O ser humano já não é
capaz de viver sem ela. Convido você a pensar em como seria uma empresa de
desenvolvimento de software para dispositivos IoT. Como os funcionários
trabalham? Como se planejam? Como ocorre o uxo de seu sistema? Como é a
ambientação para testes e como funciona quando precisam corrigir algum erro
encontrado em produção do cliente?
https://unp.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 22/27
06/07/2020 Ead.br
atividade
Atividade
Dada a tabela a seguir, qual das consultas retornará um resultado nulo??
EXERCÍCIO
Valor1 Valor2
10 15
20 25
https://unp.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 23/27
06/07/2020 Ead.br
indicações
Material Complementar
LIVRO
Editora: Bookman
ISBN: 8582604785
https://unp.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 24/27
06/07/2020 Ead.br
VÍDEO
TRAILER
https://unp.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 25/27
06/07/2020 Ead.br
conclusão
Conclusão
Concluímos então a unidade de Programação para Dispositivos IoT. Nela, pudemos veri car
algumas práticas com relação à utilização de um banco de dados em uma IoT e os princípios
utilizados para o seu desenvolvimento. Você teve a oportunidade de aprender um pouco mais sobre:
componentes e microcontroladores utilizados para o desenvolvimento IoT; princípios CRUD para a
utilização do banco de dados em uma IoT; Insert, Delete, Update e Select em um banco; a cláusula
Where e suas restrições respectivas; e uma solução de problema e prototipação utilizando a cláusula
Where.
referências
Referências
Bibliográ cas
MONK, S. Internet das coisas: uma introdução com o Photon. Porto Alegre: Bookman, 2018a.
MONK, S. Programação com Arduino: começando com Sketches. Porto Alegre: Bookman. 2018b.
IMPRIMIR
https://unp.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 26/27
06/07/2020 Ead.br
https://unp.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller 27/27