Você está na página 1de 27

06/07/2020 Ead.

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

Programação para Dispositivos


IoT - Parte 1

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.

Primeiramente, para que se possa programar um dispositivo, precisamos ter algum


microcontrolador. Esse componente é o responsável por realizar todas as tomadas de decisão e
todas as ações que um dispositivo vai efetuar. De acordo com Monk (2018b), o Arduino é uma
plataforma de microcontrolador que permite que você conecte circuitos eletrônicos aos seus
terminais, de modo que ele possa controlar dispositivos, como ligar ou desligar uma lâmpada ou até
mesmo medir coisas como luz e temperatura.

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

Figura 3.1 - Arduino


Fonte: golubovy / 123RF.

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:

Figura 3.2 - Raspberry


Fonte: Sergii Pal / 123RF.

O terceiro microcontrolador do qual falaremos é encontrado no livro de Monk (2018a), o qual


explica que, no Photon, existem dois botões (Setup e Reset), que permitem entrar com novos pontos
de acesso Wi-Fi, bem como reinicializar o seu dispositivo. Quando os dois botões são pressionados
juntos, eles realizam a reinicialização completa de fábrica. Entre esses dois botões, há um LED RG
chamado de LED de status, usado para indicar o que o Photon está fazendo. Como outros

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 é aquele que tem maior destaque no quesito microcontroladores, devido:

ao seu baixo custo;


ao fácil acesso à compra;
ao desenvolvimento integrado, facilitando, assim, a programação.

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:

Figura 3.3 - Arduino, Shield e suas conexões


Fonte: jclgarcia / 123RF.

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

Para auxiliar no desenvolvimento desse programa, utilizaremos um software chamado Mosquitto.


Macedo (2017) explica que o Mosquitto é um broker MQTT open source, compatível com as versões
3.1 e 3.1.1 do protocolo, sendo adequado para mensagens de IoT, com sensores de baixa potência
ou dispositivos móveis, tais como smartphones, computadores embutidos ou microcontroladores
Arduino.

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:

1. #de ne WLAN_SSID “XXXXXXXX”: Nome da sua rede Wi-Fi;


2. #de ne WLAN_PASS “XXXXXXXX”: senha da sua rede Wi-Fi;
3. #de ne LM35 A: Porta analógica do sensor de temperatura conectado;
4. ArrayToIp server = { 5, 2, 168, 192 }: Endereço IP do servidor MQTT  invertido. Por
exemplo: se o IP for 192.168.2.5, deverá car { 5, 2, 168, 192};
5. mqttclient.publish(“temperatura”,”Device01 – Conectado”): o primeiro parâmetro do
publish é o tópico, e o segundo é a mensagem a ser enviada;
6. temperatura = ( oat(analogRead(LM35))*5/(1023))/0.01; : conversão da temperatura
para graus Celsius;
7. void callback (char* topic, byte* payload, unsigned int length) { } : Callback para receber
as mensagens enviadas.

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:

Conecte sua placa na porta USB do seu computador;


De na a placa que você está utilizando por meio do Menu Ferramentas ⇒ Placa ⇒
SUAPLACA;
Selecione a porta USB a qual seu Arduino está conectado;
Clique no botão Carregar;
Abra o Serial Monitor e acompanhe o seu device conectando-se à rede.

Por m, informe o comando mosquitto_sub -h 192.168.2.5 -t temperatura para visualizar as


temperaturas enviadas pelo sensor. Com isso, já temos o nosso dispositivo informando a
temperatura atual do ambiente que está sendo monitorado (MACEDO, 2017).

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

Programação para Dispositivos


IoT - Parte 2

Agora que temos um conhecimento prévio de como programar em um microcontrolador para


dispositivo IoT, vamos apontar alguns conceitos básicos de programação. Esses conceitos devem ser
aplicados conforme o software que você utiliza.

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:

1. Create: Responsável por criar e adicionar novos dados, valores ou informações em um


banco de dados.
2. Read: Responsável por ler e veri car informações que estejam contidas dentro de um
sistema de gerenciamento de banco de dados.

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

3. Update: Responsável por atualizar e modi car/alterar uma informação contida em


determinada tabela em um banco de dados.
4. Delete: Responsável por apagar e excluir registros existentes em uma tabela em um
banco de dados.

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:

INSERT INTO TEMPERATURA(PRIMEIRA_AMOSTRA, SEGUNDA_AMOSTRA) VALUES(33, 30)

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

primeira amostra segunda amostra

33 30

Tabela 3.1 - Tabela de Temperatura e seus valores


Fonte: Elaborada pelo autor.

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

Ao coletar os dados, acabamos inserindo uma informação erroneamente na primeira amostra. O


valor correto seria 35. Como consertar? De acordo com os princípios CRUD, o update é o
equivalente ao item com o próprio nome, o Update. Para atualizar ou modi car um dado,
utilizaremos o comando:

UPDATE TEMPERATURA SET PRIMEIRA_AMOSTRA = 35 WHERE PRIMEIRA_AMOSTRA = 33

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

primeira amostra segunda amostra

35 30

Tabela 3.2 - Tabela de Temperatura após Update


Fonte: Elaborada pelo autor.

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:

DELETE FROM TEMPERATURA WHERE SEGUNDA_AMOSTRA = 30

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

primeira amostra segunda amostra

35  

Tabela 3.3 - Tabela de Temperatura após Delete


Fonte: Elaborada pelo autor.

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:

SELECT PRIMEIRA_AMOSTRA FROM TEMPERATURA

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:

I) Create table COLETA.

II) Insert into COLETA (numero1, numero2) values(1,2).

III) Delete from COLETA.

IV) Update COLETA set numero1 = 3.

V) Select * from COLETA.

A partir das a rmativas apresentadas anteriormente, assinale, a seguir, a alternativa correta:

a) Apenas as a rmativas II e III estão corretas.


b) Apenas as a rmativas I, II, III e IV estão corretas.
c) Apenas as a rmativas I, III e IV estão corretas.
d) Apenas as a rmativas III e IV estão corretas.
e) Apenas as a rmativas II e V estão corretas.

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

Programação para Dispositivos


IoT - Parte 3

No tópico anterior, entendemos como funcionam as quatro operações principais em um banco de


dados, as quais podem ser aplicadas a dispositivos IoT, por meio de sua captação de informações e
das variantes da utilidade de cada dispositivo. Neste tópico, entenderemos como funciona a
cláusula Where e algumas de suas aplicações práticas, envolvendo lógica e banco de dados.

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:

SELECT PRIMEIRA_AMOSTRA FROM TEMPERATURA WHERE PRIMEIRA_AMOSTRA = 35

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:

SELECT PRIMEIRA_AMOSTRA FROM TEMPERATURA WHERE PRIMEIRA_AMOSTRA <> 35

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:

SELECT SEGUNDA_AMOSTRA FROM TEMPERATURA WHERE SEGUNDA_AMOSTRA <= 100

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:

SELECT SEGUNDA_AMOSTRA FROM TEMPERATURA WHERE SEGUNDA_AMOSTRA > 100

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

anterior. A lógica da expressão continua igual.

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:

SELECT SEGUNDA_AMOSTRA FROM TEMPERATURA WHERE SEGUNDA_AMOSTRA BETWEEN 10


AND 100

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:

SELECT PRIMEIRA_AMOSTRA FROM TEMPERATURA WHERE PRIMEIRA_AMOSTRA IN (30, 33,


35)

A linha de comando apresentada permitirá selecionar todos os valores da primeira amostra na


tabela “Temperatura”, em que o valor corresponderá a 30, 33 e 35.

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:

SELECT PRIMEIRA_AMOSTRA FROM TEMPERATURA WHERE PRIMEIRA_AMOSTRA = 30 AND


SEGUNDA_AMOSTRA = 35

SELECT PRIMEIRA_AMOSTRA FROM TEMPERATURA WHERE PRIMEIRA_AMOSTRA = 30 OR


SEGUNDA_AMOSTRA = 35

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

seguinte tabela até o momento:

COLETA

DIA_DA_SEMANA TEMPERATURA_MANHA TEMPERATURA_TARDE TEMPERATURA_NOITE

segunda     17

terça 22 31 20

quarta 17 15 13

quinta 18 22 22

sexta 23 30 25

sábado 23 30 25

Tabela 3.4 - Tabela de Coleta de Dados


Fonte: Elaborada pelo autor.

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:

INSERT INTO COLETA (TEMPERATURA_MANHA, TEMPERATURA_TARDE) VALUES (25,20)


WHERE DIA_DA_SEMANA = ‘SEGUNDA’

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

DIA_DA_SEMANA TEMPERATURA_MANHA TEMPERATURA_TARDE TEMPERATURA_NOITE

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

Tabela 3.5 - Tabela de Coleta de Dados após Insert


Fonte: Elaborada pelo autor.

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:

SELECT TEMPERATURA_NOITE FROM COLETA WHERE TEMPERATURA_NOITE <= 20

Foram encontrados apenas os valores da temperatura de segunda-feira, terça-feira e quarta-feira.


Para corrigir esses dados, é necessário realizar um update nos campos. Os updates cariam da
seguinte forma:

UPDATE COLETA SET TEMPERATURA_NOITE = 16 WHERE TEMPERATURA_NOITE = 17

UPDATE COLETA SET TEMPERATURA_NOITE = 19 WHERE TEMPERATURA_NOITE = 20

UPDATE COLETA SET TEMPERATURA_NOITE = 12 WHERE TEMPERATURA_NOITE = 13

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

Tabela - Tabela para a atividade


Fonte: Elaborada pelo autor.

a) Select * from Exercicio where valor2 = 15.


b) Select * from Exercicio where valor1 between 1 and 50.
c) Select * from Exercicio where valor1 <= 20.
d) Select * from Exercicio where valor2 > 20.
e) Select * from Exercicio where valor1 = valor2.

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

A Internet das Coisas: uma introdução com o


Photon
Simon Monk

Editora: Bookman

ISBN: 8582604785

Comentário: Recomenda-se muito este livro para aprender uma


novidade no mercado e que foi pouco abordada aqui. A obra é uma das
referências utilizadas para a produção desse material, mas veri cou-se
que é um livro completo e que tem como vertente principal a
aprendizagem de Photon.

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

VÍDEO

Projeto Internet of Things // Parte 01


Ano: 2015

Comentário: O vídeo encontra-se no YouTube e ensina a fazer um


projeto desde o ínicio para o desenvolvimento da IoT. O vídeo é bem
didático e possui mais de 30 mil views!

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

MACEDO, M. Programação para IoT. iMasters, 06 abr. 2017. Disponível em:


<https://imasters.com.br/desenvolvimento/programacao-para-iot>. Acesso em: 29 abr. 2019.

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

Você também pode gostar