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.