Buscar

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

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

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

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

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

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

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

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Internet das Coisas
Programação para Dispositivos IoT
INTERNET
DAS COISAS
Esp. Felippe Fernandes da Silva
INICIAR
introdução
Introdução
Nesta unidade, apresentaremos a programação da IoT, verificando 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 verificar a cláusula Where e como ela é aplicada e manipulada para a obtenção de melhores resultados e filtragens de informações. Por fim, verificaremos um exemplo dessas práticas, todas aplicadas para a resolução de um exercício real.
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 significa 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:
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 figura 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 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 fim, 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.
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 fins (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 configuraçã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, codificar 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/wifi_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:
#define WLAN_SSID “XXXXXXXX”
Nome da sua rede Wi-Fi;
#define WLAN_PASS “XXXXXXXX”
Senha da sua rede Wi-Fi;
#define LM35 A
Porta analógica do sensor de temperatura conectado;
ArrayToIp server = { 5, 2, 168, 192 }
Endereço IP do servidor MQTT  invertido. Por exemplo: se o IP for 192.168.2.5, deverá ficar { 5, 2, 168, 192};
mqttclient.publish(“temperatura”,”Device01 – Conectado”)
O primeiro parâmetro do publish é o tópico, e o segundo é a mensagem a ser enviada;
temperatura = (float(analogRead(LM35))*5/(1023))/0.01;
Conversão da temperatura para graus Celsius
void callback (char* topic, byte* payload, unsigned int length) { }
Callback para receber as mensagens enviadas.
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;
· Defina 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 fim, 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
atividade
Atividade
Quais dos componentes citados a seguir não é um componente para a programação de Iot?
Parte superior do formulário
a) Protoboard.
b) Arduino.
c) Raspberry.
d) Cartão Perfurado.
e) BeagleBone.
Feedback: Aalternativa correta é a letra A, pois o componente Protoboard pode auxiliar a lógica para um Arduino.Verificar Resposta
Parte inferior do formulário
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 ficam 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:
Create
Create
Responsável por criar e adicionar novos dados, valores ou informações em um banco de dados.
Read
Read
Responsável por ler e verificar informações que estejam contidas dentro de um sistema de gerenciamento de banco de dados.
Update
Update
Responsável por atualizar e modificar/alterar uma informação contida em determinada tabela em um banco de dados.
Delete
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, ficaria dessa maneira:
	TEMPERATURA
	primeira amostra
	segunda amostra
	33
	30
Tabela 3.1 - Tabela de Temperatura e seus valores
Fonte: Elaborada pelo autor.
Update
O comando update é o responsável por modificar 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 modificar 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 ficaria 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
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 ficaria 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 verificar o valor contido em determinada coluna ou campo e, por meio dela, comparar os resultados que foram colhidos, verificando 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 ficará 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.
atividade
Atividade
Sobre o princípio CRUD, analise os comandos das afirmativas 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 afirmativas apresentadas anteriormente, assinale, a seguir, a alternativa correta:
Parte superior do formulário
a) Apenas as afirmativas II e III estão corretas.
b) Apenas as afirmativas I, II, III e IV estão corretas.
c) Apenas as afirmativas I, III e IV estão corretas.
d) Apenas as afirmativas III e IV estão corretas.
e) Apenas as afirmativas II e V estão corretas.
Feedback: A alternativa correta é a letra B, a afirmativa I está incorreta pois, o Create cria a tabela e não foi mencionado no tópico. A afirmativa II está correta, pois Insert é o que inclui dados na tabela e faz parte do CRUD. A afirmativa III está correta, pois Delete é o que exclui dados na tabela e faz parte do CRUD. A afirmativa IV está correta, pois Update é o que atualiza dados na tabela e faz parte do CRUD. A afirmativa V está correta, pois Select é o que busca dados na tabela e faz parte do CRUD.Verificar Resposta
Parte inferior do formulário
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 utilidadede 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ífico, 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 fim, 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.
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, confirmar 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, verificaremos 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, ficará 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 anterior. A lógica da expressão continua igual.
Agora, verificaremos o comando Between. Esse comando serve para quando precisarmos de valores que estejam “entre” determinados valores. Podemos verificar 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 verificados juntamente com o valor da coluna. Esse comando serve para especificar 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 ficaria 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íficos, precisamos unir algumas informações para que seja possível filtrar 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, significando 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. Também, é possível unir essas duas cláusulas para que exista um melhor filtro dessa busca.
Por fim, essas foram algumas das cláusulas com as quais podemos melhorar a nossa filtragem 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 eficaz.
atividade
Atividade
Assinale, a seguir, a alternativa que apresenta um comando que não pode ser usado na cláusula Where:
Parte superior do formulário
a) AND.
b) OR.
c) UPDATE.
d) BETWEEN.
e) IN.
Feedback: A alternativa correta é a letra C, pois UPDATE pode ser utilizado mutuamente com o Where, mas é um princípio CRUD.Verificar Resposta
Parte inferior do formulário
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 entresi 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 finalizando no sábado. O domingo é utilizado para verificar 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 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 ficará da seguinte forma:
	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 verificado 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 ficariam 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 ficaria 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.
Verificamos, 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.
reflita
Reflita
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 fluxo de seu sistema? Como é a ambientação para testes e como funciona quando precisam corrigir algum erro encontrado em produção do cliente?
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.
Parte superior do formulário
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.
Feedback: A alternativa correta é a letra E, não retornará nada.Verificar Resposta
Parte inferior do formulário
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 verificou-se que é um livro completo e que tem como vertente principal a aprendizagem de Photon.
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
conclusão
Conclusão
Concluímos então a unidade de Programação para Dispositivos IoT. Nela, pudemos verificar 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áficas
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
© 2019 - LAUREATE - Todos direitos reservados

Outros materiais