sexta-feira, 25 de março de 2022

Sensores Digitais e Analógicos

Diferença entre sinal Analógico e Digital

Segundo Oliveira (2017), sinal analógico pode assumir infinitos valores em um intervalo de tempo, enquanto que o digital (sinal discreto), assume finitos valores em um intervalo de tempo. Os sinais digitais geralmente assumem valores booleanos, enquanto que analógicos são decimais.

Analógicos: Sensores de Temperatura, Umidade, Pressão e Luminosidade.

Digitais: Sensores de Presença, Push Button (ligado ou desligado) e Estado Lógico.


CONCEITOS AUXILIARES - ESP32

Não será abordado digitalWrite, digitalRead, analogRead entre outros termos correlatos, por conta do nível de simplicidade, pois estes termos podem ser compreendidos na prática.

Push Button (interruptor ou botão de liga/desliga)


Pull up

Com a chave aberta (push button), recebo um valor muito próximo a 5V na entrada analógica do Embarcado, e ele "enxerga" ligado. Porém "por uma lei da natureza que diz que a energia tenderá a percorrer o caminho mais fácil", se a chave fecha, o sentido da corrente muda e recebo 0V na porta analógica do Embarcado.

"Quando tenho dois caminhos para uma corrente elétrica, essa corrente vai procurar o caminho mais fácil"

"Com base no trecho acima analise com a chave aberta e fechada, onde houve menos resistência? lembrando que quando chave aberta, a resistência tende ao infinito"

Pull down

Pull down é oposto do Pull Up, onde havia 0V ficou 5V, e onde havia 5V ficou 0V, logo a lógica do que recebo na porta analógica do embarcado inverte.

Repare que na imagem abaixo, para um embarcado ler de maneira digital, o I/O pin será a entrada analógica do Embarcado.


LDR (Light Depent Resistors)

Um bom sensor que trabalha de maneira analógica e muito útil em muito projeto é o LDR (Light Depent Resistors), pois o sensor de fato montamos juntando este RESISTOR LDR (no lugar do push button) em um Pull up com um resistor de 10k, vejamos:


DATASHEET - LDR


Logo, no sketch ficará da seguinte maneira:

#define Light 4  

void setup() {  

  Serial.begin(115200);  

  delay(1000);  

}  

void loop() {  

  int val = analogRead(Light);  

  Serial.println(val);  

  delay(100);  

}


Segundo Campos (2018), o sensor LDR mede a luminosidade do ambiente, então de acordo com a luminosidade, será possível ver um valor analógico na IDE Arduino.

Este sensor é um sensor resistivo, pois este dispositivo funcionará como um resistor alternando sua resistência de acordo com a luminosidade.

Uma maneira interessante de usá-lo é colocá-lo em um Pull up com um resistor de 10kOhm como demonstrado no tutorial do sensor DIY no link abaixo:

Soil Moisture Sensor ou higrômetro DIY


CAMPOS, João. Sensor LDR Com Arduino E ESP32. 2018. Disponível em <https://www.iomaker.com.br/sensor-ldr-com-arduino-e-esp32/>. Acesso em 16 marc. 2022.

OLIVEIRA, Rodolpho. Sinal Analógico x Sinal Digital. 2017. Disponível em <https://www.embarcados.com.br/sinal-analogico-x-sinal-digital/>. Acesso em 21 marc. 2022.


domingo, 20 de março de 2022

MQTT com Desenvolvimento Web - PHP Laravel

Detalhe: Caso não saiba PHP, recomendo o curso gratuito do famoso Gustavo Guanabara ou do link abaixo:

CURSO PHP 8

Para com questão do Framework PHP, o Laravel, indico duas (dois mini cursos) playlist no Youtube:

CURSO LARAVEL - OPÇÃO 1

CURSO LARAVEL - OPRÇÃO 2


O seguinte tutorial será com o Framework PHP Laravel, vejamos:


Web.php

No grupo das rotas do arquivo das rotas, o web.php adicione uma rota a uma página MQTT para acionar publish para o Embarcado:

// Grupo de rotas que dita todo fluxo de dados do site - web.php

Route::prefix('projetolaravel')->group(function(){

    Route::get('/{id}/{var}/{salt}',[nomeController::class, 'mqtt'])->name('projetolaravel-mqtt')->middleware('auth');

});


nomeController.php

Precisamos efetuar a configuração no arquivo responsável pelo Controller, logo, em seu Controller adicione a função abaixo para efetuar um Publish (considerando que ):

    // Função que vai publicar um dado via MQTT através da página de IoT

    public function mqtt($id, $var, $salt){

        $dados = Projetolaravel::where('id',$id)->first();

        $key = $dados->key_produto;

        $var = "teste";        

        return view('projetolaravel.publish',['key'=>$key, 'var '=>$var]);

    }


publish.blade.php

O arquivo com o qual usaremos para apontar de acordo com essa roda é um .PHP que deve conter as seguintes configurações:

<?php

 require('C:/xampp/php/hua/app/Models/phpMQTT.php');

// require('/var/www/html/hua/app/Models/phpMQTT.php');

$server = 'ENDERECOAQUI';     // change if necessary

$port = 1883;                     // change if necessary

$username = 'USUARIOBROKER';                   // set your username

$password = 'SENHABROKER';                   // set your password

$client_id = 'phpMQTT-publisher'; // make sure this is unique for connecting to sever - you could use uniqid()

$mqtt = new Bluerhinos\phpMQTT($server, $port, $client_id);

if ($mqtt->connect(true, NULL, $username, $password)) {

  $mqtt->publish('fonte/acao/'.$key.'', $var, 0, false);

  $mqtt->close();

  echo "foi\n";

  // echo $key;

} else {

    echo "Time out!\n";

}

?>

Repare que na linha abaixo, caso estivermos em Linux (Unix), inverteremos qual linha utiliza comentário, pois precisamos deste phpMQTT.php para trabalhar com MQTT:

 require('C:/xampp/php/hua/app/Models/phpMQTT.php');

// require('/var/www/html/hua/app/Models/phpMQTT.php');

Não esqueça de mudar o tópico e o payload em:

publish('fonte/acao/', $var_payload, 0, false)

Não esqueça de mudar o endereço do servidor em:

$server = 'ENDERECOAQUI';

Não esqueça de mudar as credenciais em:

$username = 'USUARIOBROKER';

$password = 'SENHABROKER'; 

E não menos importante, não esqueça de abrir a porta 1883 de sua VPS.

Um ponto interessante é que este módulo MQTT para o Laravel, só utilizo para Publish e não Subscribe, esse Subscribe será em Python.


Subscribe

Com relação ao subscribe em Python, já foi feito alguns materiais a respeito, vejamos:

IoT - Internet of Things - MQTT na prática (3/3)

Com isso, basta obter um exemplo genérico de como receber estes dados, e depois fazer a conexão com banco de dados com a biblioteca MySQLdb.


Caso ainda haja dúvidas, baixe nosso material e agende uma consultoria para obter uma senha ao baixar os arquivos necessários abaixo:

Kit Oficinaiot - 01


MQTT no Sketch

Quanto ao Sketch do embarcado, este vai seguir os seguintes scripts:

MQTT Genérico - Sketch

Repare que: o conteúdo da variável valor será enviado, este sendo um bom tipo de dado para se aprender, já que na maioria das vezes utilizaremos valores iguais a este, como por exemplo, temperatura:

int valor = 7;

Tudo que for para ser recebido, será o que estiver usando mesmo Broker e mesmo tópico.

domingo, 13 de março de 2022

Comunicação I2C - parte 1/3

Neste tutorial será abordado como protocolo I2C pode servir para comunicação escravo (Slave) e mestre (Master), e isso utilizando IDE Arduino e os pinos I2C do embarcado.

I2C significa Inter Integrated Circuit, e pode trabalhar de algumas maneiras, porém vamos efetuar a comunicação do sensor de temperatura e umidade do ar, AHT10.

Fora o pino de Vcc o GND, o I2C se comunica através do SCL (Clock Signal) e SDA (Envio e recebimento de dados), e a partir daí haverá comunicação via protocolo I2C.

Na prática o GPIO 21 é padrão para SDA e GPIO 22 é padrão para SCL.

Obs: Vcc pode ser tanto 3,3V, quando 5V.


Quando essa comunicação é feita no firmware do embarcado, é colocado um endereço do Slave I2C (que pode ser descoberto no Datasheet do Slave, seja sensor, display, etc).

Para efetuar essa comunicação I2C, é usado a biblioteca "Wire.h", logo, "Wire.begin();" no Setup (repare que no código begin do Wire não foi definido a GPIO, porém, as portas padrões não precisam ser colocadas).


#include <Wire.h>

#include <AHT10.h>


int sensor_temperatura = 0;

int sensor_umidade = 0;


// Define o endereço sensor AHT10 para 0X38

AHT10 myAHT10(AHT10_ADDRESS_0X38);


void sensor_AHT10(void) {  

  Wire.beginTransmission(AHT10_ADDRESS_0X38);

    sensor_temperatura = myAHT10.readTemperature();

    Serial.print("A temperatura é ");

    Serial.println(sensor_temperatura);

    sensor_umidade = myAHT10.readHumidity();

    Serial.print("A humidade é ");

    Serial.println(sensor_umidade);

  Wire.endTransmission();

}


void setup(){

   Serial.begin(115200); //INICIALIZA A SERIAL

   Wire.begin();

}

void loop(){

  sensor_AHT10();

}


Biblioteca do AHT10


Como referência, esta sendo utilizado as informações do site randomnerdtutorials.


Um outro ponto interessante de se ter conhecimento é quanto aos endereços: após a postagem do presente material, obtive o feedbak da se seguinte pergunta: 

"AHT10 myAHT10(AHT10_ADDRESS_0X38);

O que é isso ai?"

Basicamente estou instanciando o objeto myAHT10 para usar o endereço AHT10_ADDRESS_0X38 com o software do sensor, este endereço que nomeei como AHT10_ADDRESS_0X38 é o endereço deste sensor, do AHT10, pois cada módulo adicional do Embarcado terá seu próprio endereço, exemplo: 0x27 para sensor Oled, DS3231_I2C_ADDRESS para o RTC (relógio com bateria), entre outros com os quais podem ser obtidos no datasheet do módulo, estes foram os que lembrei e que estou atualmente fazendo o uso nos projetos.


Até a próxima.

Calculando LED - circuito para Embarcado

Supondo que não tenhamos déficit de conhecimento no que tange a lei de Ohm e matemática básica (Ainda que desconheça ou não esteja familiarizado, tente prosseguir e entender a teoria na prática), podemos destrinchar essa regra da seguinte forma:

R = E / I, logo, R = Vcc - Vled / Iled

Logo:

Fonte 9V e 1A

Quero calcular 2 LEDs em série depois do resistor

3,2V e 0,02A por LED (Consulte uma tabela de LEDs)

Total de 6,4V (2 x 3,2V)

De acordo com a lei de Ohm, R = V / I

R = (9V - 6,4) / 0,02

R = (2,6) / 0,02

R = 130

Um outro exemplo seria:

Fonte 12V e 1A

Quero calcular 3 LEDs em série depois do resistor

3,2V e 0,02A por LED (Consulte uma tabela das LEDs)

Total de 6,4V (2 x 3,2V)

De acordo com a lei de Ohm, R = V / I

R = (12V - 9,6) / 0,02

R = (2,4) / 0,02

R = 120

Supondo que vá colocar 3 LEDs de cores diferentes e distribuído entre resistores:

Fonte 5V

Tenho o circuito na ordem: Resistor, LED, resistor, LED, resistor, LED

R1 = 5 - 2  / 0,02 = 150

R2 = 5 - 2,5  / 0,02 = 125 (Obtenha um resistor de 120)

R3 = 5 - 3 / 0,02 = 100


Exemplo de tabela das LEDs





Dimensionando um sistema fotovoltaico - Estudo de caso 1/3

Equipamentos

Watt

Quantidade

Total Watt

Corrente

Horas/dia

Ah/dia

CA ou CC

Perdas (%)

Ah/dia Corrigido

Lâmpada

9W

4

36W

3A

5 Horas

15

CC

10%

16,5Ah/dia

TV

50W

1

50W

4,2A

4 Horas

16,8

CA

25%

21Ah/dia


Total Ah/dia: 37,5Ah/dia


Observações:

  1. A potência em Watt é multiplicado pela quantidade;
  2. A corrente se deve ao resultado do calculo P / V = I considerando que a tensão é 12V (Padrão de bateria adotada);
  3. Multiplique a corrente pelo tempo de uso;
  4. Se for corrente CC calcule os 10%, se AC, calcule os 25%;
  5. Some as perdas com Ah/dia para obter Ah/dia corrigido;
  6. Some os valores da coluna e obtenha o total em Amperes.


Dimensionando Painel Solar

150Wp

In = 8,12A

Icc = 8,61A

8,12A x 5 Horas = 40,6Ah/dia

NP = 37,5Ah/dia / 40,6Ah/dia = 3,96 Aproximadamente 4 Placas Solares


Dimensionando Controlador de Carga

(Quantidade de Painéis ou Placas x Icc) = 4 x 8,16A = 34,4A Aproximadamente 40A


Dimensionando Bateria

Capacidade (Ah) = (Dias sem “luz” x 37,5Ah/dia) / Descarga da Bateria

(3 x 37,5Ah/dia) / 0,8 = 140,625Ah


Dimensionando Inversor

Soma de todos os equipamentos (Watt) = 195

O recomendado seria pegar um inversor de 1000W




Energia solar 3/3 - Dimensionando um sistema fotovoltaico

Antes de dimensionar, leve em conta informações que podem ser obtidas em www.cresesb.cepel.br


Após calcular o consumo em Watt, aprendido no post que trata sobre o assunto:

https://alert90.blogspot.com/2022/03/energia-solar-13-como-aneel-calcula-sua.html


Dimensionando placa solar

1.Pesquise um painel solar através da corrente (In) e multiplique este valor pelo tempo de incidência solar local.

Ex.:8,12x5hrs = 40,6Ah/dia


2.Divida o consumo por este valor e obterá o número de placas solares.

Ex.: 161/40,6 = 3,96 (4)


Dimensionando controlador de carga

Corrente do controlador = número de placas x Icc da placa

Exemplo: 4x 8,16 = 34,4A aproximadamente 40A


Dimensionando bateria

Capacidade (Ah) = (Dias sem energia elétrica x 161) / descarga da bateria

Exemplo: 3 x 161 / 0,8 = 603,7Ah


Dimensionamento do inversor

Pegue a soma da potência de todos os equipamentos AC (W), e compre um que forneça uma potência superior com a seguinte proporção.

195W = Inversor de 1000W

Quanto ao inversor, calcule primeiro a potência de surto de geladeiras, motores, etc. Adote um inversor com potência de surto muito maior que o somatório da potência de surto dos equipamentos.

Atenção: Somatório de potência x Simultaneidade.


Segurança em sistemas off-grid

Utilize chave seccionadas CC, fusíveis, disjuntor CC (dispensa fusíveis), DPS CC, disjuntores AC e DPS AC sempre entre os equipamentos (se possível).

Utilizar fusíveis entre a bateria e inversor, pois há correntes elevadas.

Corrente não deve ultrapassar a corrente de curto circuito do arranjo na condição de maior radiação (aplique fator de segurança de 1,25x).

Isole tudo que for possível para proteger o usuário (Poka-Yoke).

Utilize a técnica de aterramento dos equipamentos (previne muitos acidentes, e é barato!).

Utilize as bitolas corretas, há fórmulas e tabelas pelo qual se pode dimensionar (se possível, utilize uma perda percentual de 3% como a máxima permitida).

Fique atento as normas NBR 5419 e NBR 5410:

https://via.eng.br/nbr-5419/


https://www.mundodaeletrica.com.br/o-que-e-nbr-5410/


Para uma melhor eficiência na geração, deixe a placa solar apontada para a linha do equador, desta maneira deixe-a inclinada de acordo com a sua localização, exemplo:

Caso esteja em SP, pode inclinar 19 graus (caso esteja curioso para saber de outros estados, vale a pena uma pesquisa).


Cuidados

  1. Separar: Um sistema só para geladeira e um para o resto da casa, consequentemente, mais um Inversor;
  2. Inversor não aceita polaridade reversa;
  3. Nunca deve-se tirar a bateria sem o controlador de carga (logo, na hora de conectar, conecte a bateria primeiro, e depois o controlador de carga);
  4. Na hora de ligar os disjuntores, sempre ligue primeiro o da bateria, e depois o do painel, pois corremos o risco de queimar o controlador de carga, e o inverso para desligar.

ligando -> 1ºbateria, 2ºpaineis, 3ºInversor

desligando -> 1ºInversor, 2ºPaineis, 3ºBateria

Energia solar 2/3 - Fundamentos sobre energia fotovoltaica

 RESUMO E HISTÓRIA DA PLACA SOLAR

Antes utilizava-se Selênio ao invés de Silício, mas era muito ineficiente, depois passou-se a utilizar Silício.

Efeito fotoelétrico (descoberto por Einstein) é o fenômeno quântico de transformar luz solar e luz elétrica.

Curiosidade: Segundo Helerbrock (2022), efeito fotoelétrico é o fenômeno quântico que consiste na ejeção de elétrons de uma superfície metálica por conta do recebimento de energia dos fótons de uma radiação solar. Esse efeito fotoelétrico foi explicado por Albert Einstein em 1905.

No painel solar não contamos como Watt, mas sim Wattpico (WP) -> É o máximo que esta placa conseguiria gerar em uma dia ensolarado.

A maneira de organização das placas varia da energia que quer produzir, colocar em série para aumentar tensão e paralelo para aumentar corrente.

Os tipos de sistemas são off-grid e on-grid

Os tipos de placas são policristalina e monocristalina, poli é mais barata e quase tão eficiente quanto a mono.

A arquitetura se baseia em Placa solar > Controlador de carga (utiliza Low Voltage Disconect) > Bateria Estacionária > Inversor.

É mais trabalhoso dimensionar o consumo do que dimensionar a arquitetura de um sistema solar de fato.


MATERIAL COMPLETO

Segundo Helerbrock, Corrente elétrica é a grandeza física que mensura o quanto de carga elétrica atravessa por uma secção transversal de um condutor por segundo, e é medido em Ampere.

Há dois tipos de corrente elétrica, aqueles onde entende-se que os elétrons movem em apenas um sentido (contínua) e outro, onde entende-se que estes elétrons alternam o sentido, ou vibram, por conta da inversão da polaridade da carga (alternada).

Aqui no Brasil, os elétrons de uma corrente alternada movem-se nos dois sentidos 60 vezes por segundo (60 Hz).

Tensão elétrica é a quantidade de energia em 1 Coulomb, quando posta em um meio onde há diferença de tensões elétrica, há uma diferença de potencial (ddp).

Dessa maneira, os elétrons percorrerão sobre o condutor, e esse movimento causado pela ddp é a corrente elétrica (lembre-se que essa corrente depende da resistência elétrica do condutor, e não apenas da ddp).

Um Coulomb de carga elétrica é a quantidade de carga transportada em 1s com 1A.

Ainda segundo Helerbrock, a potência elétrica é a quantidade de energia consumida ou gerada por um dispositivo.


Na energia solar

Painéis solares: Utilizam uma lógica inversa ao exemplo do chuveiro (Pois um painel solar gera), em painéis solares a potência é chamada de Watt-Pico (WP).

WP é a potência máxima que pode-se medir em uma placa solar (tendo em mente que esta valor tende a variar no decorrer do dia)!


Ligações em Série das placas

Ligação em Paralelo das placas


Tipos de sistemas

Off-grid: Conectado a bateria (Útil quando o objetivo é o payback em alguns anos).

On-grid: Conectado a rede elétrica (Útil quando o objetivo é a segurança energética de frigoríficos, câmeras frias, autonomia no campo).


Placa solar

Há dois tipos, Policristalina (mistura com outros elementos) e Monocristalina (silício puro e mais caro), a eficiência de ambas são praticamente o mesmo, aproximadamente 20%.

A nomeclatura se baseia em célula, módulo, string e arranjo

Exemplos de dimensões, são:

  • Poli.: aproximadamente 150WP = 36 (4x9);
  • Poli.: aproximadamente 150WP = 36 (6x6);
  • Poli.: aproximadamente 250WP = 36 (6x10);
  • Poli.: aproximadamente 30WP = 36 (4x9);
  • Off-grid: Normalmente 36 ou 72 células (18 ou 36V), até 150 WP;
  • On-grid: Normalmente acima de 60 células, mais que 140WP.


Controlador de carga

Protege bateria contra sobrecarga e descarga profunda (variação de 20% e 80% para conservar vida útil).

Obs: normalmente é utilizado tecnologia LVD (Low Voltage Disconect), como o próprio nome diz.

Ao comprar, procure um PWM, pois não requer conhecimento conhecimento para programá-lo.


Bateria

As baterias utilizadas em um sistema fotovoltaico, são baterias estacionárias (então nada de pegar uma bateria automotiva!).

Normalmente estas baterias tem vida útil de 3 a 5 anos e tem-se dois tipos, baterias com eletrólito (líquido) e selada (viscoso ou 'gel') e na prática, bateria com eletrólito não podem ser viradas.

Os estágios de carregamento se baseiam em Carga (o normal de carregamento), Flutuação (estágio de manutenção) e Equalização (carga estabilizada).

Outras informações técnicas

Estado de carga das baterias é medido pela tensão (nada que uma regra de três e o datasheet não ajude para saber manualmente o estado de carga).


Inversor

Transforma corrente continua (CC) em corrente alternada (CA) e por este motivo opte por um inversor com senoidal pura (também possuí tecnologia LVD).

Obs: Geralmente haverá mais potência nas placas do que no inversor (ex: 15KWP e 14KW).

Potência nominal e Potência de surto

  • Normal: Aparelhos conectados devem beirar 50% e 7% da potência;
  • Máximo: Até 5min, limite para superaquecimento (cuidado) ;
  • De surto: Até 5seg, potência de partida deve ser menor que a potência de surto.


O LRA (Locked Rotor Amps) ou corrente de rotor travado, determina o melhor inversor a se usar, então a potência de surto dele ser maior que o LRA.

Obs: Ligue o inversor o mais próximo que conseguir da bateria

Obs: Geralmente ao pesquisar, vai encontrar informações como, forma de onde, tensão de entrada e tensão de saída, potência nominal, potência de surto e frequência (deve ser 60Hz).


HELERBROCK, Rafael. O que é efeito fotoelétrico?. 2022. Disponível em <https://brasilescola.uol.com.br/o-que-e/fisica/o-que-e-efeito-fotoeletrico.htm>. Acesso em 06 marc. 2022.

NHSSOLAR. CONHEÇA 10 VANTAGENS DE UTILIZAR ENERGIA SOLAR EM CASA. 2020. Disponível em <https://www.nhssolar.com.br/vantagens-de-utilizar-energia-solar/>. Acesso em 06 marc. 2022.

BLUESOL. 5 Motivos para Investir em Energia Solar na Sua Casa ou Empresa [+ Cálculo do Seu Payback]. indeterminado. Disponível em <https://blog.bluesol.com.br/investir-em-energia-solar/>. Acesso em 06 marc. 2022.

PLANAS, Oriol. História da energia solar. 2015. Disponível em <https://pt.solar-energia.net/que-e-energia-solar/historia>. Acesso em 06 marc. 2022.

HELERBROCK, Rafael. "Carga elétrica"; Brasil Escola. Disponível em: https://brasilescola.uol.com.br/fisica/carga-eletrica.htm. Acesso em 13 de março de 2022.

HELERBROCK, Rafael. "Corrente elétrica"; Brasil Escola. Disponível em: https://brasilescola.uol.com.br/fisica/corrente-eletrica.htm. Acesso em 13 de março de 2022.

HELERBROCK, Rafael. "Potência elétrica"; Mundo Educação. Disponível em: https://mundoeducacao.uol.com.br/fisica/potencia-eletrica.htm. Acesso em 13 de março de 2022.

Energia solar 1/3 - Como a Aneel calcula sua conta de luz?

Segundo a Silva (2021), o que é normalmente do consumidor é a soma da tarifa e impostos.

A tarifa é o serviço prestado para transmissão da energia elétrica, e os impostos são ICMS e PIS/COFINS.


Essa tarifa é multiplicada por um valor da energia consumida que é medida em KWh dos aparelhos elétricos da sua casa, ou seja, se uma geladeira consumiu x valor em Watt e uma lâmpada consumiu y em Watt, multiplicamos a somatória desse valor pelo valor da tarifa.


Não esqueça que existem as bandeiras, que de acordo com as cores, é cobrado um pouco a mais.


Neste material será exemplificado como calcular a tarifa multiplicada pela energia consumida.


Defina quais será os equipamentos utilizados e anote o consumo em Watt

Nem sempre será simples de calcular, pois podem aparecer casos específicos de como esta energia é consumida pelo aparelho, vejamos:


Equipamentos intermitentes podem variar, siga o exemplo abaixo:

Um embarcado consome xW transmitindo via lora, e yW em stand-by.

Esse embarcado passa 1hr por dia transmitindo dados.

Potência média (W) = (1hr x xW) + (23hr x yW)


ou


Em outros casos, pode aparecer equipamentos como Freezers e Geladeiras

Em equipamentos como Freezers e Geladeiras funciona da seguinte forma, observado o selo PROCEL, vemos que uma geladeira consome 40KW/Mês.

Potência aproximada (W) = ((40/1000) / 30 dias) / 8hrs

Potência aproximada (W) = 166W


Porém, a nível didático, supondo que vá dimensionar meu consumo dos equipamentos básicos, teria a seguinte tabela:


SILVA, Tamires. Saiba como é calculado o valor da conta de luz e entenda a tarifa!. 2021. Disponível em <https://financeone.com.br/como-calcular-valor-da-conta-de-luz/>. Acesso em 13 marc. 2022.

quarta-feira, 9 de março de 2022

Soil Moisture Sensor ou higrômetro DIY

O sensor de umidade do solo comercial mais conhecido para embarcados é simplesmente um divisor de tensão resistivo.



Poucos sabem, mas podemos fazer nosso próprio sensor de umidade do solo DIY, vejamos:


Fonte: O Autor

Fonte: O Autor

Com relação ao Firmware, utilizei os seguintes códigos:

int sensorPin = A0;

int sensorValue;

void setup() {

  // put your setup code here, to run once:

  Serial.begin(115200);

}


void loop() {

  sensorValue = analogRead(sensorPin);

  delay(1000);

  Serial.println(sensorValue);

}


Com base nisso, podemos construir um sensor de umidade do solo muito simples, precisamos apenas de uma pequena protoboard, fios e um resistor de 10KOhms  (Ainda sim utilizaria um conector sindal para separar os terminais, e uma sonda metálica mais rígida (como um garfo) como terminais do sensor).

Segundo Rovai (2016), a equação para o calculo da tensão se dá:

Vin = R2 / (R1 + R2) * VCC ou Vin / VCC = 10K / (R1 + 10K) * 100 [%]

Caso queira entender matematicamente:

Calculando Divisor de tensão - KhanAcademy


Seguindo o circuito deste Divisor de tensão, chegamos ao sensor DIY da foto abaixo que foi construído por Michele Meattini, não se esqueça de conectar os terminais do lado direito, portanto, 1 com GND, o 2 com 5v e o 3 em  A0.



Obs: Apenas certifique-se de que o a tensão do VCC vá ser 5V, essa tensão pode variar o valor final do resultado, cuidado.

Outra coisa importante é... não ficar com o sensor ligado o tempo todo, mesmo os sensores comerciais acumulam cargas com o tempo, ocasionando o acumulo de pequenos erros na leitura (ligue o sensor como ligaria uma LED esporadicamente).

Uma maneira de fazer isto descrito acima é alimentar o sensor como é alimentado uma Led, dessa forma, ao invés de alimentar na porta de 5V, alimente em outra porta GPIO, como por exemplo, a porta 12.

int sensorPin = A0;

int sensorValue;

void setup() {

  // put your setup code here, to run once:

  Serial.begin(115200);

  pinMode(12, OUTPUT);

}


void loop() {

  digitalWrite(12, HIGH);   // turn the LED on (HIGH is the voltage level)

  delay(1000);                       // wait for a second

  sensorValue = analogRead(sensorPin);

  Serial.println(sensorValue);

  delay(1000);

  digitalWrite(12, LOW);    // turn the LED off by making the voltage LOW  

}

ROVAI, Marcelo. ArduFarmBot: Controlando um tomateiro com a ajuda de um Arduino e Internet das coisas (IoT). 2016. Disponível em <https://mjrobot.org/2016/09/02/ardufarmbot-controlando-um-tomateiro-com-a-ajuda-de-um-arduino-e-internet-das-coisas-iot/>. Acesso em 08 marc. 2022.

domingo, 6 de março de 2022

ESP8266 & ESP32 - Blink

 Segundo Thomsen (2016), as etapas de como começar a utilização de uma placa NodeMCU, podem ocorrer da seguinte maneira:

Configurando a IDE de programação

1.Com a IDE do Arduino já aberta, vá em Arquivo > Preferências

2.No link dos gerenciadores de placa vai precisar colocar um endereço JSON.

Case esteja fazendo uso do ESP8266 use:

http://arduino.esp8266.com/stable/package_esp8266com_index.json

Case esteja fazendo uso do ESP32 use:

https://dl.espressif.com/dl/package_esp32_index.json

3.Vá em Ferramentas > Placa: "Ardui.." > Gerenciador de placas...

Com uma nova janela aberta, procure a padrão de sua placa, seja esp8266 do esp8266 Community ou ESP32 da Expressif Systems e instale (Feito a instalação, não esqueça de selecionar ela em Ferramentas > NodeMCU 1.0 (ESP-12E Module) ou ESP32 Dev Module).


Fazendo um teste com o script mais conhecido da área, o blink (equivalente ao "Olá mundo" dos programadores)

Vá em Arquivos > Exemplos > 01.Basics > Blink

Antes de qualquer coisa salve em outro lugar (Repare que o Led que esta configurado é o LED_BUILTIN, é um Led interno da placa).


Compile e carregue o firmware e veja a mágica acontecer! (pode ser necessário pressionar o botão BOOT)


Uma coisa interessante é perceber o funcionamento para poder tanto adaptar quando preciso.

Repare que a linha descrita abaixo representa o modo de saída do pino:

pinMode(LED_BUILTIN, OUTPUT);

Repare que a linha abaixo diz respeito o status do pino, no caso em especifico, ligado:

digitalWrite(LED_BUILTIN, HIGH);

Agora, desligado:

digitalWrite(LED_BUILTIN, LOW);


Acionando Relé

Da mesma maneira que configuramos um Led interno da placa, poderíamos ter configurado um acionador, como um Relé, logo, teríamos que ter a seguinte declaração antes de Setup (podendo ser qualquer outro pino GPIO):

int rele = 23;

Logo, o reto:

pinMode(rele, OUTPUT);

e referente ao status (podendo ser LOW também)

digitalWrite(rele, HIGH);

Configurado um Relé, bastaria fazermos a conexão dos fios e das placas ao que vamos automatizar ou ligar/acionar, fechando circuito à distância, e assim conseguimos manipular quando que o Embarcado vai acionar nossa lâmpada (ou qualquer outra coisa).



THOMSEN, Adilson. Como programar o NodeMCU com IDE Arduino. 2016. Disponível em <https://www.filipeflop.com/blog/programar-nodemcu-com-ide-arduino/>. Acesso em 06 marc. 2022.

TEIXEIRA, Gustavo. ESP32 PROJETO CONTROLANDO UM RELÉ. 2019. Disponível em <https://www.usinainfo.com.br/blog/esp32-projeto-controlando-um-rele/>. Acesso em 21 marc. 2022.

quarta-feira, 2 de março de 2022

Cultura Maker e o Mercado

Segundo o Cruzeiro (2019), um movimento chamado Do-It-Yourself cuminou no movimento Maker com a qual ouvimos falar.


Já no que se refere ao Do-It-Yourself (DIY ou Faça Você Mesmo), é a prática de fazer seus próprios móveis, roupas ou equipamentos eletrônicos, Câmera (2017).

Ainda segundo Câmera (2017), esta prática tem seu surgimento em meados da década de 1920 nos Estados Unidos, portanto, se popularizou nos anos 1950 com o cenário Punk Underground.

Nessa época, o conceito foi importante para a preservação do meio ambiente, já que muitos objetos que iria para o lixo viriam a ser reaproveitados.

Para se aplicar o DIY, basta que arrume métodos alternativos de algo com a qual você faz, ou compraria, seja uma mesa, uma roupa, etc.


Desta forma, o movimento Maker trás consigo a essência do DIY, além de valores hackers, como open-source e o compartilhamento de conhecimentos. Autores como Cruzeiro (2019), define Neil Gershenfeld (professor do MIT) como um dos responsáveis pela ideia do movimento maker ser uma revolução no processo de manufatura em escala global, já que o professor fundou um centro de manufatura em pequena escala, Bits and Atoms, posteriormente renomeado como FabLab.


Em suma, vale frisar a participação do co-fundador da TechShop, Mark Hatch (2014), em seu "Maker Movement Manifesto" apresentar ideias centrais em seus capitulos como, fazer (i), compartilhar (ii), dar (iii), aprender (iv), equipar (v), jogar (vi), participar (vii), suporte (viii), mudar (ix).





Uma coisa importante que também é a possibilidade de transformar o seu projeto maker em um negócio de fato.

Segundo Koyanagi (2020), feito uma analise do objetivo visando as lições da teoria da cauda longe, presente no livro The Long Tail de Chris Anderson (2006), as etapas para transformar um projeto em produto são, Metodologias (i), Protótipo (ii), Piloto (iii), Produto (iv), Vender (v).


Segundo o Koyanagi (2020), a teoria da cauda longa se baseia em saber onde de fato colocar uma meta, em prol de criar um produto e não tentar concorrer com grandes marcas, como Samsung por exemplo, já que é inviável.


No que se refere a metodologia, segundo o Koyanagi (2020), esta se baseia na metodologia de inovação, como por exemplo, o Canvas.

Segundo Prada (2018), Canvas é uma ferramenta que se baseia em um Brainstorm, para que dessa forma se tenha todos os aspectos do negócio de maneira não só visual, mas intuitiva.


Ao preencher o quadro acima, estará limitando os seus estudos apenas ao que é essencial para satisfação do consumidor, já que em teoria estará se colocando no lugar deste consumidor.

Caso esteja curioso para saber o que diz respeito estes blocos, clique no link da fonte da imagem.

A maneira como o autor exemplifica de como implementar é baseado em MPV ou Minimum Viable Product (Produto Mínimo Viável), para se fazer o mínimo necessário, porém que tenha valor para o consumidor, desta forma não se perde dinheiro.


Um conceito abordado por Prada (2018), é o Design Thinking, que se baseia nas etapas de Empatia (i), Definir (ii), Idealizar (iii), Prototipar (iv) e Testar (v), porém vai muito além disso, vale a pena uma pesquisa.


Ainda segundo Koyanagi (2020), após a etapa de metodologia, há a etapa de protótipo.

Na etapa de protótipo, se tem a circuitaria em uma protoboard para testes, depois é feito um suporte para se imaginar o que virá a ser a placa final.


 


No termino do prototótipo, Koyanagi (2020), explica que há apenas o Piloto, onde será a primeira PCB (Acrônimo de Placa de Circuito Impresso), e desta para um Produto de fato e sua venda.

No que se refere ao Piloto, acrescentaria ao Koyanagi (2020), que esta pode ser feita manualmente corroendo uma placa de fenolite com percloreto de ferro (facilmente encontrado em lojas de eletrônicos), antes do envio do arquivo GRB para as fabricantes.


Feito tudo isso, há o processo de melhoria continua, que segundo Coutinho (2021), é o processo de tornar o produto cada vez eficiente e eficaz, ainda realça Countinho (2021), é um processo cíclico sem fim, pois sempre há algo a ser melhorado.


Termino este material dizendo que este processo de melhoria continua é a resposta para o lema que nos faz tirar um projeto do papel, "Antes feito do que perfeito", já que para tirar do papel não podemos almejar a perfeição, pois ela não existe, apenas a melhoria do produto em sua busca.


Livros mencionados:

The Maker Movement Manifesto: Rules for Innovation in the New World of Crafters, Hackers, and Tinkerers, Livro de Mark Hatch.

The Long Tail: Why the Future of Business is Selling Less of More (A Cauda Longa), Livro de Chris Anderson.

Makers: The New Industrial Revolution, Livro de Chris Anderson.


CRUZEIRO, Arthur. Saiba mais sobre a história e visões por trás do movimento maker!. 2019. Disponível em <https://via.ufsc.br/historia-e-visoes-por-tras-do-movimento-maker/?lang=en>. Acesso em 03 marc. 2022.

CÂMERA, Rafael. Você sabe o que é DIY?. 2017. Disponível em <https://blog.fazedores.com/voce-sabe-o-que-e-diy/>. Acesso em 03 marc. 2022.

KOYANAGI, Fernando. Transforme sua ideia em dinheiro. 2020. Disponível em <https://www.fernandok.com/2020/03/transforme-sua-ideia-em-dinheiro.html>. Acesso em 03 marc. 2022.

PRADA, Charles. Canvas: conheça essa metodologia de inovação e sua relação com o Design Thinking. 2018. Disponível em <https://www.euax.com.br/2018/02/canvas-design-thinking-inovacao/#:~:text=O%20que%20%C3%A9%20metodologia%20Canvas,tela%20de%20modelo%20de%20neg%C3%B3cios.>. Acesso em 03 marc. 2022.

COUTINHO, Tiago. O que é Melhoria contínua? Entenda sua importância!. 2021. Disponível em <https://www.voitto.com.br/blog/artigo/melhoria-continua>. Acesso em 03 marc. 2022.

segunda-feira, 28 de fevereiro de 2022

Introdução ao ESP32

O que é Microcontrolador?

Uma maneira de entendermos que é um Microcontrolador de maneira bem sucinta é sabermos a diferença entre um Microcontrolador e um Microprocessador.

Segundo Kenshima (2021), em muitos eletrônicos da atualidade com a qual há embarcados (como um carro com vários módulos se comunicando através de sua rede CAN), também contém Microprocessador e Microcontrolador.

Microprocessador: é um Chip que comandando suas subpartes (como módulos de memória e CPU), faz com que o programa seja executado de forma correta.

Só para frisar, o conceito de CPU é o mesmo de processador, pois este orquestra, faz a gestão de outras subpartes de um microprocessador.

Segundo Shopinfo (2019) do site gamerinfo.com.br, quando se lê algo que mencione a velocidade de clock de um processador, deve-se pensar esta velocidade de clock mede os ciclos que são executados por núcleo (por segundo), e a unidade de medida é  Hertz.

Ainda segundo Kenshima (2021), Microcontrolador é composto por vários componentes, entre eles, o Microprocessador, EEPROM, Flash, etc.

No que tange a capacidade de processamento, seu "poder de fogo" é muito inferior a de um Microprocessador convencional.

A comparação que fiz acima é, entre um ESP8266 ou ESP32 (Microcontrolador) e um Raspberry Pi. Um ESP desses tem um Microprocessador, mas muito inferior ao do Raspberry, dessa forma um Microcontrolador é utilizado para tarefas muito mais simples, e se for usado um Raspberry Pi para algo que um ESP é capaz, é o mesmo que “um canhão para matar uma formiga”.


Há algum tempo atrás, a empresa Expressif lançou o ESP01, um Microcontrolador.

Segundo o artigo do blog Lobodarobotica (2021), depois eles lançaram um outro embarcado que foi o grande boom no mercado (2014), ESP8266.

Este embarcado era realmente análogo ao Arduíno, porém, se conecta ao Wifi e tem poder de processamento superior.

Ainda segundo o artigo do blog Lobodarobotica (2021), pensando no mercado ganho com ESP8266, a Expressif lançou o ESP32, com poder de processamento superior ao do ESP8266, pois além de possuir Bluetooth BLE e 240MHZ de CPU, é dual core, possibilitando um firmware com RTOS para tarefas executadas de maneira simultâneas e memória flash integrada (4MB).

Um detalhe muito importante no que se refere ao avanço da tecnologia, é a corrida espacial, pois o Apollo 11 que levou o homem a Lua, possuía apenas 2MHZ de CPU.


Quais os tipos?

Na realidade o chip sempre vai ser o mesmo (LX6 da Tensilica, de 2 Core), porém, encontrará ESP32 com módulos internos, seja display oled, LoRa, câmeras, etc.

Informações acima que podem ser confirmadas no link abaixo:

Informações mais técnicas sobre ESP32.

Analisando a pinagem do ESP32, percebe-se que possui 34 GPIOs que compõe em 3 SPI, 2 I2C, 18 canais ADC, 3 UART, 10 pinos de leitura capacitiva e PWM.

Quanto a utilização da pinagem, o conhecimento de como usá-los será obtido na prática através de projetos.


Aplicabilidade do dispositivo

Da Automação residencial á Robótica, Sensoriamento remoto, Automações em segurança, entre outros aparelhos pertinentes a indústria 4.0, como impressora 3D por exemplo, aplicabilidade do ESP32 e ESP8266 se limitam apenas pela imaginação.

Exemplos práticos com os quais descrevi acima são projetos pelos quais tenho trabalhado nos últimos anos, como, Horta Urbana Automatizadas (HUA), dispositivos de sensoriamento remoto, como multímetros inteligentes, contadoras de pacotes em esteiras de produção na indústria, entre outros.


Uma informação pouco difundida ainda com relação a introdução ao ESP32 é sobre sua alimentação.

Segundo o Murta (2018), no Datasheet esta claro que a corrente  fornecida para alimentação de 3,3V deve ter no mínimo 500mA, mas nunca, de maneira alguma conecte um dispositivo que consuma mais de 0,5A, pois pode sobrecarregar o regulador interno. Uma outra coisa interessante é que embora seja possível alimentar conectando o cabo USB (5V) com um computador ou notebook, ou até mesmo com VIN (5v), o regulador aceita 12V como input, mas nunca conecte este valor de tensão, procure alimentar e filtra para chegar ao ESP32 apenas 5V para não sobreaquecer o mesmo (não esqueça da conexão com GND).

Para qualquer dúvida e desencargo de consciência, procure estas informações no Datasheet de seu embarcado.


LOBODAROBOTICA. O Que É ESP32? Pra Que Serve? Quando Usar?. 2021. Disponível em <https://lobodarobotica.com/blog/o-que-e-esp32-pra-que-serve-quando-usar/>. Acesso em 28 feb. 2022.

HUINFINITO. O que é NodeMCU (ESP8266 e ESP32)?. 2019. Disponível em <https://https://www.huinfinito.com.br/blog/artigos/o-que-e-nodemcu>. Acesso em 13 feb. 2022.

KENSHIMA, Gedeane. Diferenças entre microcontrolador e microprocessador. 2021. Disponível em <https://www.filipeflop.com/blog/diferencas-entre-microcontrolador-e-microprocessador/>. Acesso em 28 feb. 2022.

SHOPINFO. O que é o clock do processador e como ele afeta o desempenho do PC. 2019. Disponível em <https://www.gamerinfo.com.br/2019/06/10/o-que-e-o-clock-do-processador/>. Acesso em 28 feb. 2022.

MURTA, José. Conhecendo o ESP32 – Introdução (1). 2018. Disponível em <https://blog.eletrogate.com/conhecendo-o-esp32-introducao-1/>. Acesso em 06 marc. 2022.

domingo, 20 de fevereiro de 2022

4 Revolução industrial

 4 revolução industrial - Industria 4.0

Das máquinas a vapor do século 17 aos nano robôs, engenharia genética, internet das coisas e os sub tipos de inteligência artificial, como tudo foi possível?

Segundo a Perasso (2016), a primeira revolução industrial marcou o ritmo de produção manual à mecanizada (1760 - 1830), a segunda trouxe eletricidade e manufatura em massa (1850), a terceira foi com a chegada da eletrônica e a tecnologia da informação e telecomunicações (século 20).

Ainda segundo a Perasso (2016), no momento atual estamos vivenciando a quarta revolução industrial, esta se caracteriza pela automatização das fabricas por causa da internet das coisas e à computação em nuvem, pois estes sistemas são capazes de tomar decisões descentralizadas.

Arrisco complementar a autora que, os avanços não são apenas nas indústrias, mas sim nas residências, ou até das cidades inteligentes.

Então o que lhe vem a cabeça quando te perguntam sobre essa revolução? nanotecnologias? robôs? inteligência artificial? biotecnologia? sistemas de armazenamento de energia? drones e impressoras 3D?

Se pensou nisso, esta com o pensamento correto, estes podem ser os causadores do desemprego em massa e onde alguns países terão de tomar algumas medidas preventivas em prol de todas consequências disso, segundo a Perasso (2016).

De acordo com Sandeco (2019), na França, se publicado dados estatísticos sobre decisões de juízes, poderá pegar uma pena de até cinco anos. Preocupação que o autor pessoalmente chama de "Síndrome de Sarah Connor", por conta do sistema de Inteligência Artificial Skynet perseguir a humanidade no filme Terminator 2, porém este é um pensamento equivocado no que se refere as maravilhas com a qual somos capazes de realizar. Ainda com uma boa percepção que seja uma coisa boa, alguns autores como é o caso de Nicole Luise (2021), no site da itera.com.br onde, a I.A. como inteligência AUMENTADA pode complementar o desempenho cognitivo do ser humano.

Pois segundo Luise (2021), aplicações de Inteligência Artificial como Human Augmentation, Augmented Intelligence pode ajudar no objetivo com o qual temos desenvolvido Inteligência Artificial (Decisões mais assertivas). Em suma, a frase chave é "Estender a capacidade cognitiva".

Sendo assim pode-se dizer que será possível preencher a lacuna do problema chamado de paradoxo de Muravec já descrito por Filipe Iorio (2020) no site mapamental.org.

"O Paradoxo de Moravec é a observação de pesquisadores de inteligência artificial que nos mostra, que o raciocínio requer muito pouco cálculo, mas as habilidades sensório-motoras exigem enormes recursos computacionais."

Ainda segundo o autor, este conceito na prática se traduz na inteligência sensório-motora ainda não mapeada completamente pelos cientistas faz com que seja relativamente fácil ensinar uma máquina ganhar uma jogada de xadrez do melhor do mundo por ser informações puramente lógicas e racionais, ao contrário de andar, algo muito mais simples.


“É preciso algo mais do que inteligência para agir com inteligência”

Fyodor Dostoyevsky


Um exemplo prático é um script em Python que adaptei para funcionar como um chatbot com machine learning, este bot apenas funcionará muito bem se ensinado a conversas assuntos extremamente específicos de acordo com seus dataset conversacionais, ainda que ele converse com outros bots mais avançados (algo possível com este bot através de web scraper), este ainda aprenderá menos que o outro com quem conversa.

Meta Inteligência Artificial

Como pôde ler acima, o limite dos avanços da humanidade é a nossa imaginação, e não só o presente nos confirma este fato, como também a história.

Segundo Canaltech (2019), o poder computacional a bordo do Apollo 11 (espaçonave que levou astronautas a lua - 1969) é muito inferior a tecnologia de um aparelho móvel que as pessoas carregam em seus bolsos, pois o Apollo Guidance Computer (AGC) tinha um pouco mais de 4 MB de memória RAM e 72 de memória ROM.

Ainda segundo Canaltech, quando digitamos "a", ocupam-se oito bits, fato que ao comparar com as especificações técnicas de seu aparelho móvel, ficará evidente a discrepância de poder computacional.

A pergunta que fica é... com muito pouco de poder computacional as pessoas daquela época levou o homem a Lua, e com muito hoje, o que as pessoas fazem?


“A imaginação é mais importante que o conhecimento”

Albert Einstein


Voltando a 4 revolução industrial, a luz ou escuridão que muitos veem no futuro é incerto, é um paradoxo da caixa do gato de Schroedinger, experimento mental proposto por Erwin Schroedinger, que reforça a natureza estatística da mecânica quântica e o Princípio da Incerteza, e a teoria dia que, sabemos apenas daquela possibilidade no momento da ocorrência, se é verdadeira ou não.

Caso esteja curioso sobre esta teoria do físico Schroedinger, basta pesquisar no Google.


“A melhor forma de prever o futuro é criá-lo”

Peter F. Drucker


PERASSO, Valeria. O que é a 4ª revolução industrial - e como ela deve afetar nossas vidas. 2016. Disponível em <https://www.bbc.com/portuguese/geral-37658309>. Acesso em 20 feb. 2022.

MACEDO, Sandeco. Inteligência Artificial no banco dos Réus. 2019. Disponível em <https://www.linkedin.com/pulse/intelig%C3%AAncia-artificial-banco-dos-r%C3%A9us-sanderson-macedo>. Acesso em 20 feb. 2022.

IORIO, Filipe. Paradoxo de Moravec: Jogar xadrez é mais “simples” que mascar chicletes. 2020. Disponível em <https://www.mapamental.org/cerebro/paradoxo-de-moravec-como-jogar-xadrez-pode-ser-mais-simples-do-que-mascar-chicletes-e-andar/>. Acesso em 20 feb. 2022.

CANALTECH. Seu smartphone seria poderoso o suficiente para te levar até a Lua?. 2019. Disponível em <https://canaltech.com.br/espaco/seu-smartphone-seria-poderoso-o-suficiente-para-te-levar-ate-a-lua-144515/>. Acesso em 20 feb. 2022.

LUISE, Nicole. O que é Inteligência Aumentada?. 2021. Disponível em <https://itera.com.br/artigos/inteligencia-aumentada/>. Acesso em 20 feb. 2022.

sábado, 19 de fevereiro de 2022

IoT - Internet of Things - MQTT na prática (3/3)

Caso não tenha visto os post anteriores a este:

IoT - Internet of Things - Fundamentos e princípios básicos (1/3)

IoT - Internet of Things - Arquitetura (2/3)


Um dos micro controladores mais bem falados do mercado é NodeMCU, onde muito se ouve falar do famoso ESP32, ou para aqueles com menor poder aquisitivo, ESP8266, mas por que estes embarcados ganharam tanto mercado? Uma resposta longa se vê em datasheet, já a curta... Wi-fi e outras funcionalidades que o famoso Arduíno não tem.

Segundo o artigo do site huinfinito (2019), NodeMCU é uma placa de desenvolvimento que combina o chip ESP8266 (ESP-12E) ou ESP32 com tecnologia WiFi, onde a programação do firmware pode ser transferia via USB-SERIAL através de um cabo com suporte ao micro-usb.

Ainda sobre uma das grandes diferenças entre ESP32 e ESP8266 é o fato de que o ESP32 tem um processador dual-core, enquanto que o ESP8266 tem apenas um núcleo.

Por conta de seu poder de conectividade, o ESP foi ligado ao protocolo de comunicação "padrão" do IoT, o MQTT.


Caso não esteja familiarizado com este conceito, aconselho que leia o artigo clicando no link abaixo.

IoT - Internet of Things - Arquitetura (2/3)

Porém, caso queira se tornar um especialista no assunto, recomendo fortemente que leia a matéria do link clicando abaixo.

MATERIAL MAIS COMPLETO SOBRE MQTT QUE JÁ LI

De acordo com Bertinelli (ano), é possível NodeMCU já dispõe de todos I/Os, circuitaria de regulação de tensão, conectividade USB para programação seja esta LUA ou Arduíno IDE e pode funcionar como um client MQTT acessível de todo o planeta.


Pesquisando serviços oferecidos gratuitamente para trabalhar como servidor MQTT, encontrei vários sites, inclusive a referência geralmente é o projeto Mosquitto (mosquitto.org) da fundação Eclipse, porém não é a melhor servidor a se usar quando se esta aprendendo, já que eles precisam validar seu cadastro antes, onde teríamos um gap de tempo. Porém, um ótimo servidor MQTT é o HiveMQ (www.hivemq.com), este sistema oferece scripts pré-prontos para a sua própria adaptação, vejamos:

Clique em "Get HiveMQ" e cadastre-se

Preencha os campos de credenciais para os dispositivos

Cadastrando as credenciais, em "Access Management" vai estar deste jeito

Selecione o bloco "Python"

Após instalar as dependências em sua máquina, passe o script Python para a IDE de sua preferência e revise os seguintes dados:
  • Credenciais anteriormente cadastradas;
  • IP/Endereço do servidor
  • Porta

Em "Getting started" clique no bloco selecionado

Fique a vontade para ler as instruções oficiais do HiveMQ, ainda sim, clique em "here" do "Step 1"

O primeiro bloco diz respeito ao Broker, conecte-o (preencha os campos antes)

Os outros blocos diz respeito ao Publish e Subscribe, configure-os como tal

Atualize este tópico no Publish do script Python

Rode seu programa Python e veja a mágica acontecer

Atualizando o Subscribe do script, verá que o mesmo cliente Publish, pode ser Subscribe


Algo muito interessante no que tange ainda a arquitetura IoT, é o que tenho lido em um Relato de Pesquisa que pode ser lido por inteiro clicando no link abaixo:

O PARADIGMA TECNOLÓGICO DA INTERNET DAS COISAS E SUA RELAÇÃO COM A CIÊNCIA DA INFORMAÇÃO

Mas de maneira direta, o que abstrai quanto a esta camada de IoT do relato é que, isso diz respeito a maneira como as tecnologias interagem para fornecer serviços ao usuário. De diferentes arquiteturas, a mais comum é a de três (3) camadas (Aplicação, Rede, Percepção).

Como se sabe, IoT é a tecnologia que realiza a interconexão do mundo físico e digital, o que aumenta a percepção das pessoas sobre um cenário especifico.

Sendo assim, a camada da percepção é responsável por traduzir o que há no mundo físico para o informação no mundo digital, seja estas informações movimento, posição, ambiente, medida de massa, etc. A camada de rede é responsável por transferir as informações para camada de aplicação. A camada de aplicação pode ser um Site, Aplicativo, de maneira que com este sistema online possa ser visualizado as informações (de origem da camada de percepção) pelo usuário.


E por ultimo, como bônus, deixo um outro um link de uma leitura de um protocolo de IoT MUITO usado na indústria, o OPC DA (mais antigo, porém estável) e OPC UA, clicando AQUI.


HUINFINITO. O que é NodeMCU (ESP8266 e ESP32)?. 2019. Disponível em <https://https://www.huinfinito.com.br/blog/artigos/o-que-e-nodemcu>. Acesso em 13 feb. 2022.

BERTOLETI, Pedro. Controle e Monitoramento IoT com NodeMCU e MQTT. 2016. Disponível em <https://www.filipeflop.com/blog/controle-monitoramento-iot-nodemcu-e-mqtt/>. Acesso em 13 feb. 2022.