Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Prévia do material em texto

FEMEC42502 Tópicos Especiais em Mecatrônica II
Módulo 1:
IIoT – Internet das Coisas Industriais
Álisson Carvalho Vasconcelos
José Jean Paul Zanlucchi de Souza Tavares
2024
Sumário
1. Introdução	3
2. Objetivo	4
3. MQTT	4
4. ESP32®	7
4.1. Instalação do Drive da placa ESP32® no Windows	9
4.2. Instalação da Placa ESP32® Desenvolvida pela Espressif (Windows e Linux)	10
4.3. Inclusão da Biblioteca Pubsubclient no Arduino IDE	11
4.4. Exemplo	12
5. Exercício	14
REFERÊNCIAS	15
ANEXO A	16
1. Introdução
Ao estudar a história das civilizações humanas como um todo, um fato que ganha bastante evidência é a ligação próxima entre o desenvolvimento de novas e disruptivas técnicas e grandes transformações sociais e econômicas, fato que pode ser observado muito claramente, nas três primeiras revoluções industriais com a inclusão, respectivamente, da máquina a vapor, energia elétrica e computadores, gerando transformações incomensuráveis no status social. Atualmente, vivemos também um momento de grande transformação dirigido principalmente pelo desenvolvimento das comunicações, expondo ao mundo um novo nível de informações, o que, como era de se esperar, uma nova revolução das técnicas industriais, a indústria 4.0. O que está em curso nesta revolução é a redução do custo dos microprocessadores o que propicia o seu uso de forma distribuída e dispersa, e permite desmontar o paradigma da lógica e processamento centralizado. A influência da descentralização e dispersão dos microprocessadores no mundo é perceptível em várias áreas: criando ambientes virtuais, comunicação entre maquinários e serviços, aumento das plataformas "as a service" (plataformas como um serviço), entre outras ramificações.
Entre os vários caminhos abertos na quarta revolução industrial, um dos mais expressivos é o da descentralização de sistemas de grande complexidade, neste sentido o uso de componentes inteligentes capazes de resolver parte de seus desafios em Edge (ou localmente) associados a uma infraestrutura flexível, disponibilizada via nuvem tem se mostrado como uma arquitetura extremamente poderosa e promissora. Surge a questão referente ao modo de conectar componentes essenciais da manufatura nesta arquitetura, seus ganhos e observações da aplicação prática.
A Indústria 4.0 representa uma nova era de automação e inteligência na manufatura, que se caracteriza pela utilização de tecnologias digitais inteligentes e conectadas, utilizando conceitos de Sistemas Ciber-físicos, Internet das Coisas e Computação em Nuvem. O advento da Internet das Coisas (IoT – Internet of the Things) possibilitou a integração de máquinas, equipamentos e dispositivos diversos, permitindo a criação de ambientes altamente colaborativos e conectados. A computação em nuvem permitiu disponibilizar recursos de computação, como armazenamento, servidores, bancos de dados, redes, software, análise e inteligência, por meio da internet. Sistemas Ciber-físicos, sistemas compostos por elementos computacionais colaborativos, permitiu controlar entidades físicas.
IoT - Internet of Things (Internet das Coisas), Figura 1, é uma rede de objetos físicos (veículos, prédios e outros dotados de tecnologia embarcada, sensores e conexão com a rede) que são conectados à internet e equipados com sensores e outras tecnologias para receber e transmitir dados, através de protocolos, tais como CoAP, MQTT, AMQP, Zigbee, LoRaWan, Bluetooth Low Energy, DDS, XMPP, HTTP, LwM2M, WiFi, 6LoWPAN, WebSocket, Z-wave, Cellular, Lte-a, OCP UA, etc.
Figura 1: - IoT - Internet of Things adaptado de [https://www.grupomult.com.br/iot-comunicacao-de-dados-e-microservicos-uma-visao-integrada-para-suportar-industria-4-0/]
A Internet Industrial das Coisas (IIoT – Industrial Internet of the Things) se refere à aplicação da tecnologia da IoT - Internet das coisas, em ambientes industriais, onde máquinas, sensores e atuadores se conectarão na rede e comunicarão entre si. As redes IIoT são projetadas para suportar a comunicação entre máquinas e a transmissão regular de dados entre o sistema central e todos os dispositivos IoT integrados, essa tecnologia é a essência da iniciativa relacionada à Indústria 4.0 (SAP - Systems Analysis Program Development - Desenvolvimento de Programas para Análise de Sistema).
Nesse contexto, o protocolo MQTT - Message Queuing Telemetry Transport (Mensagens em Fila para Telemetria) tem se destacado como uma das principais tecnologias utilizadas na Indústria 4.0. O MQTT é um protocolo de mensagens projetado para dispositivos com recursos limitados, permitindo a comunicação de dados em dispositivos IoT de forma eficiente e confiável.
Este protocolo por ser leve e robusto é perfeito para o chão de fábrica, um local que possui bastante interferência, além de ser possível passar um código completamente novo, configurar as máquinas para um novo processo, sem precisar fazer um novo código em linguagem ladder para o CLP - Controlador Lógico Programável.
Algumas das tecnologias usadas em IIoT com o protocolo MQTT são (SAP):
· Sensores IIoT: Os sensores são comumente integrados a equipamentos industriais e máquinas. No entanto, mesmo máquinas analógicas e equipamentos de fabricação podem ser equipados com dispositivos de gateway IoT, como câmeras e medidores. Isso permite que os ativos da IIoT detectem condições em seu ambiente, como proximidade de outros objetos, pressão do ar ou umidade, além de monitorar a velocidade do motor, níveis de fluido e outras condições mecânicas.
· Poder da computação em nuvem e edge computing (computação distribuída): Tanto a computação em nuvem quanto o edge computing têm melhorado significativamente a flexibilidade e a usabilidade da IIoT. Através da nuvem, as redes IIoT podem aproveitar um alto poder de processamento e capacidade de armazenamento conforme necessário. Isso possibilita que os dispositivos dentro da rede coletem e transmitam conjuntos de dados maiores e mais complexos. Já o edge computing envolve trazer sistemas capazes de processar e analisar esses dados para mais perto da rede IIoT. Isso reduz a latência e os atrasos, permitindo o processamento em tempo real de dados sensíveis ao tempo.
· IA (Inteligência Artificial) e Machine Learning (aprendizado de máquinas): As tecnologias de inteligência artificial e machine learning possibilitam que as empresas processem dados da IIoT usando funções analíticas preditivas avançadas. Bancos de dados e algoritmos modernos ajudam as empresas a gerenciarem e dar sentido a uma variedade de conjuntos de dados complexos e não estruturados.
· Segurança para sistemas ciberfísicos: A mesma conectividade que impulsiona as redes IIoT também as expõe a riscos de segurança. Embora a maioria das empresas tenha protocolos de segurança em torno de seus sistemas e bancos de dados centrais, seus dispositivos IoT podem ser vulneráveis. É essencial implementar protocolos e tecnologias de segurança robustas.
2. Objetivo
O objetivo do módulo é fazer o aluno ter contato com IIoT, baseado no protocolo MQTT. Os objetivos específicos são representar graficamente todos os componentes envolvidos, atualizar um programa de controle para um sistema de separação de peças utilizando um Aplicativo Android e o Arduino IDE para implementação de dispositivos do tipo ESP32 com comunicação MQTT via Broker Local.
3. MQTT
Apresentado pela própria OASIS® como o protocolo padrão para a troca de mensagens IoT, o protocolo MQTT tem ganhado espaço em diversas aplicações por se mostrar como um modelo em que cada componente é capaz de controlar qual tipo de informação ele pode transmitir e receber, o que é visto como um grande ganho do ponto de vista do IoT, além disso, em uma rede MQTT a entrada e saída de novos componentes em rede acontece de forma bastante simples, sem necessitar que o responsável pela rede refaça toda sua configuração.
O protocolo de comunicação MQTT é uma rede baseada em TCP/IP, faz parte do protocolo de comunicação da camada de aplicação. Este protocolo utiliza o modelo de mensagem publicação/subscritor. Esse modelo implica queo editor e o assinante não trocam dados diretamente, mas realizam a interação de mensagens de forma indireta, por meio do intermediário chamado Broker, ele é responsável por intermediar as mensagens entre as máquinas. (ENGPROCESS).
Para implementar estes conceitos o protocolo utiliza a arquitetura publisher/subscriber (envio/recebimento de mensagens) em que são definidos uma série de tópicos e cada componente pode se cadastrar como publicador de um grupo de tópicos e subscritor de outro grupo de tópicos (grupos não exclusivos), na Figura 2 é possível ver a representação de um sistema onde o celular e servidor secundário para Backend consultam dados publicados pelo sensor de temperatura. Assim, os servidores desta rede (ou Brokers seguindo a terminologia descrita no OASIS MQTTv5 Standard [12]) podem deixar a função de orquestradores da rede e se tornarem responsáveis por rotear as mensagens transmitidas por cada tópico. Com o uso do MQTT, temos um grande avanço no sentido de objetos em rede autogerenciáveis, mas informações sobre o uso desta ferramenta em específico neste trabalho serão apresentadas mais a frente.
O protocolo oferece suporte à qualidade do serviço de publicação com base na identificação do QoS. Durante o processo de publicação, o cliente publicador envia uma mensagem ao Broker, e o processo de publicação e confirmação de envio está relacionado ao QoS (Quality of Service – Qualidade do Serviço).
Quando QoS=0, significa no máximo uma vez. Quando o Broker recebe uma mensagem PUBLISH do usuário, ele a encaminha para todos os assinantes inscritos neste tópico. Nesses dois processos, o payload é enviado apenas uma vez e não tem a necessidade de recebimento de um ACK de confirmação.
Quando QoS=1, significa pelo menos uma vez. Após receber a mensagem PUBLISH do usuário, o Broker retorna uma mensagem de confirmação PUBACK. Em seguida, a mensagem PUBLISH pode ser enviada a todos os assinantes inscritos no tópico.
Quando QoS=2, significa exatamente uma vez, o Broker registra a mensagem PUBLISH recebida do usuário, mas só a envia a todos os assinantes após receber a mensagem PUBREL, o Broker envia a mensagem PUBLISH para todos os assinantes inscritos no tópico e envia uma mensagem PUBCOMP ao usuário.
Pelo lado do subscritor/assinante, inicialmente, o cliente estabelece uma conexão TCP com o servidor e envia uma mensagem CONNECT. Após receber a mensagem de confirmação CONNACK autorizada pelo Broker, o cliente envia uma mensagem SUBSCRIBE, especificando a lista de tópicos de interesse. Por fim, o servidor retorna uma mensagem de confirmação SUBACK, indicando que a assinatura foi bem-sucedida (Souza, R. et al.2022).
O MQTT usa o TLS como comunicação segura, para um Broker local, quando um usuário tenta conectar ele necessita de um usuário e senha pré-cadastrados no Broker quando iniciado, mas mesmo sendo uma comunicação segura o Broker ainda será capaz de saber a mensagem enviada (Santos, P. et al. 2020). Por conta de todas essas qualidades este protocolo é perfeito para uma comunicação M2M, com dados leves, robusto, e em tempo real é perfeito para a comunicação entre máquinas no setor industrial. Por exemplo, um sensor e um atuador, ligados fisicamente na alimentação, conectados ao Broker via Wi-fi, o sensor publicando as informações coletadas, logo a frente no processo, um atuador subscrevendo a informação do sensor no tópico atua de acordo com o desejado.
Na Figura 2 mostra esquematicamente uma comunicação entre um sensor via MQTT que pode ser acessado via mobile ou computador. O Broker do protocolo serve como um servidor armazenando tópicos, podemos exemplificar como sendo blocos de memória, cada tópico criado é um bloco de memória e nele é possível armazenar uma informação(payload), um usuário ou uma máquina pública uma mensagem em um tópico, outro usuário ou máquina acessa esse tópico fazendo um Subscribe, de acordo com a mensagem buscada a máquina ou o usuário fara a devida tratativa e ação.
Figura 2: Infraestrutura de Comunicação do MQTT adquirido de [https://www.hitecnologia.com.br/o-que-e-o-protocolo-mqtt/]
Desenvolvido pela Eclipse Foudation® o Broker Eclipse Mosquitto, ou somente Mosquitto, é uma implementação de um Broker MQTT com interface de simples aprendizagem, tanto para instalações locais, quanto para aquelas feitas de forma remota. Além disso, o Mosquitto é conhecido por ser um programa que requer para seu funcionamento poucos recursos seja no âmbito do processamento ou no âmbito do espaço em memória.
Embora muito simples, o Broker Mosquitto possui uma série de funções importantes que vão desde segurança via certificados x509 até a implementação do modo Bridge: Um modo de funcionamento onde as mensagens publicadas em um Broker são repetidas em um ou mais espelhos, sendo o contrário também possível, todas estas possíveis configurações podem ser consultadas na documentação dos arquivos ".
Quando se fala em comunicação via Internet uma das primeiras preocupações que surgem em qualquer projeto é quanto à segurança e integridade dos dados trafegados pela rede, e quando se fala de utilização de servidores em nuvem, esta preocupação fica ainda maior, visto que os dados serão tratados e armazenados seguindo as políticas de terceiros que muitas das vezes podem não ser compatíveis com os requisitos desejados. Atualmente, técnica mais utilizada para garantir a segurança na transmissão de dados é a utilização do Transfer Layer Security (TLS), uma série de protocolos definidos no RFC 5246 [20] para o processo de encriptação utilizando, em partes criptografia de chave simétrica e em outros momentos criptografia de chaves assimétricas, podendo ser dividido em dois grandes protocolos:
· TLS Record Protocol utilizado diretamente para a transferência de dados, que serão criptografados geralmente seguindo o modelo definido na Advanced Encryption Standard (AES) tendo como chave simétrica o valor definido ao final do processo de negociação.
· TLS Handshake Protocol onde são definidas as regras para a negociação da forma como será feita a transferência dos dados (algoritmo de criptografia, algoritmo de hash, tamanho de bloco, padding, entre outros). Vale ressaltar que nesta etapa deve ser utilizado algum algoritmo de chaves assimétricas como Rivest-Shamir-Adleman (RSA) ou Elliptic Curve Digital Signature Algorithm (ECDSA) para garantir a identidade dos negociantes.
O Socket Secure Layer (SSL), por sua vez, possui grande semelhança com o protocolo TLS inclusive na maneira como é redigido o documento emitido pela Netscape® em 1996 revisado em 2011 "The SSL Protocol - Version 3.0" [21], possuindo praticamente a mesma estrutura. Porém, o desenvolvimento dos métodos utilizados na Internet e principalmente da segurança da informação mostraram que algumas alterações eram necessárias para a manutenção da segurança nas transmissões, assim limitando a utilização de algumas funções de Hash, métodos de geração de números pseudoaleatórios, incluindo passos intermediários e entre outros.
4. ESP32®
Figura 3: ESP-WROOM-32 DEVKIT V1 adquirido de [https://www.vidadesilicio.com.br/produto/esp32-esp-wroom-32-nodemcu/]
Um dos principais microcontroladores para desenvolvimento IOT são os ESP, desenvolvido pela empresa ESPressif System, uma empresa Chinesa, que produz microcontroladores e sistemas em chips, eles possuem uma grande vantagem em relação a uma gama de outros microcontroladores, por possuir módulos para comunicação wireless embutidos no próprio chip, e outras vantagens que os destacam entre os disponíveis no mercado, neste meio a família ESP32 apresenta-se, entre as linhas de produto da Expressif®, como uma das mais completas do mercado.
O ESP32 é uma placa microcontroladora do ecossistema Arduino, famoso pela sua eficiência de processamento, baixo custo e baixo consumo de energia. Oferece suporte a diversas tecnologias de conexão, incluindo Wi-Fi, Bluetooth, ZigBee, tornando-o altamente versátil. Equipado com um processador dual-core 32bits de até 240 MHz, 520 KB de RAM e 4/8/16 MB de memória flash interna,Antena PCB na placa ou conector para antena externa, além de uma variedade de periféricos como UART, SPI, I2C e câmera, foi totalmente desenvolvido para projetos de IoT (ESP32).
Apesar dos ESPs serem entendidos como uma placa de desenvolvimento, às vezes até como uma alternativa semelhante ao Arduino, é importante fazer a distinção clara entre os dois componentes. O Arduino é uma plataforma de prototipagem eletrônica de código aberto, onde tem-se vários Circuito Integrado (CI) com diferentes funções, e no caso do ESP32 estamos falando de um SoC - System on Chip (Sistema em Chip), responsável por todas estas capacidades acima. Por outro lado, o fabricante disponibiliza em seu catálogo diversos modelos, sendo eles:
· ESP32 SoCs DOWN/SOWD/U4WD e PICO: Chip base utilizado no ESP32, com as nomenclaturas D/S O WD R2 H Q6 V3, (D/U = dual core, S = single core; O/2/4 = 0, 2 ou 4MB de flash memory; WD = Wi-Fi b/g/n + Bluetooth/Bluetooth LE dual mode; R2 = PSRAM 2MB; H = high temperature; Q6 = encapsulamento QFN 6x6 o padrão é o QFN 5x5; V3 = Revisão do chip), é o próprio SoC, sendo este o modelo mais simples e econômico para inclusão em produtos já de longo ciclo no mercado, porém utilizar este componente diretamente no circuito exige maior habilidade e um maior tempo dedicado ao design da interface, uma vez que ele traz consigo uma série de guidelines a serem seguidos para sua instalação.
· ESP32-WROOM: Esses são módulos baseados em ESP32-DOWD com flash integrado. Esses módulos são bem adequados para aplicativos de conectividade baseados em Wi-Fi e Bluetooth/Bluetooth LE e fornecem um desempenho dual-core sólido. Este módulo é de fácil inclusão no design de outras PCBs, já possui proteção térmica e de ruído, circuito para filtro da fonte de tensão, gerador de clock e antena PCB inclusos.
· Série ESP32-WROVER: uma série baseada no ESP32-DOWD SoC, tendo também memória flash e SPIRAM integrados, ideal para trabalhos que precisam atingir um ótimo desempenho, é implementada com um chip dual-core e é bem adequada para aplicações que exigem mais memória, como AIoT e aplicações de gateway.
· Série ESP32-MINI, baseada no ESP32-U4WDH, possui memória flash integrada, fornecendo assim uma solução econômica para aplicações de conectividade simples baseadas em Wi-Fi e Bluetooth/Bluetooth LE.
· ESP32-DevKitC: é uma placa de prototipagem com uma pinagem de simples acesso para as saídas e entradas no módulo, de forma que o uso de jumpers facilita a utilização, bem como possui botões para mudar o chip para o modo de gravação, porta USB, e Leds indicadores de funcionamento.
Sendo assim, a combinação dos modelos também é possível, possibilitando o desenvolvimento de componentes que atenda as demandas do mercado (Figura 3).
Embora também seja aplicável em áreas como robótica, entretenimento, automação residencial, automotiva e agora industrial, sua flexibilidade de linguagens é um enorme diferencial na comunidade, permitindo aplicação em uma ampla gama de projetos além dos voltados para IoT. Graças à sua capacidade de programação em linguagens como C/C++ e sua compatibilidade com a Arduino IDE, o ESP32 tornou-se uma escolha popular entre os desenvolvedores.
Na Figura 4 podemos ver o mapa de pinos presentes no ESP-WROOM-32 DEVIKIT V1, juntamente com as especificações das entradas e saídas.
Figura 4: Mapa de Pinos ESP-WROOM-32 DEVKIT V1 adquirido de [https://mischianti.org/doit-esp32-dev-kit-v1-high-resolution-pinout-and-specs/]
Outra característica importante dos ESP32 é que eles utilizam o ESP-IDF o ambiente de desenvolvimento oficial disponibilizado pelo fabricante baseado FREERTOS®. Um ambiente amplamente documentado com utilização do Cmake para organização do processo compilação e inclusão das bibliotecas e, em nivel mais alto, de scripts Python para automatização de processos como reconhecimento da placa, link e upload, assim como demostrado na Figura 5. Além disso, do ponto de vista da compilação o ESP-IDF utiliza versões oficiais do GNU Compiler Collection (GCC) com backend específico para a a família de processadores Xtensa® LX63; e são, portanto, compatíveis com todas as linguagens suportadas no frontend do GCC utilizado (C, C++, Objective-C, FORTRAN, Go e etc).
Figura 5: Modelo ESP-IDF adquirido de [https://docs.espressif.com/projects/esp-idf/en/v4.1/get-started/index.html]
4.1. Instalação do Drive da placa ESP32® no Windows
Figura 6: Porta do Chip CP2102 USB não instalada
Ao utilizar o ESP32 pela primeira vez, deve-se instalar o drive do ESP32 ou ESP8266, conforme o caso, conectando a placa ESP no computador via cabo micro USB, a porta COM do ESP não foi instalada corretamente no computador (Figura 6), impedindo que o usuário encontre o dispositivo e que execute programas. Para verificar essa informação abra o executar (Win+R) e digite “devmgmt.msc”, você será direcionado para a aba de dispositivos onde poderá verificar se o chip está instalado corretamente.
A placa ESP32 DEVKIT V1 DOIT e muitos outros módulos ESP32 e ESP8266 usam os chips CP2102 ou CP2104, e para instalar os drivers CP210x corretos, é necessário o driver CP210x USB para UART Bridge Virtual COM Port na página da Silicon Labs (https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers?tab=downloads – Figura 7).
Figura 7: Drive Universal para Chips CP210x adquirido de [https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers?tab=downloads]
No Windows, após o download, descompactar o conteúdo do arquivo e acessar a pasta criada. Existirão dois arquivos executáveis, um para sistemas 32 bits e outro para sistemas 64 bits. Executar como administrador os executáveis compatíveis com os sistemas operacionais do Windows, 32 ou 64 bits.
Tendo a placa ESP32/ESP8266 conectada ao PC Windows, e com os drivers corretos instalados, na seção “Portas” deverá ser verificado um dispositivo “Silicon Labs CP210x USB para UART Bridge (COM3)” na janela de dispositivos (ou com um número de porta COM diferente – Figura 8).
Figura 8: Porta do Chip CP210x USB instalada e disponível na COM3
4.2. Instalação da Placa ESP32® Desenvolvida pela Espressif (Windows e Linux)
O Arduino IDE - Integrated Development Environment (Ambiente Integrado de Desenvolvimento) é um ambiente de desenvolvimento, escrito em funções de C e C ++, que oferece uma série de recursos para programar placas da categoria Arduino, facilitando a gravação de códigos no microcontrolador da placa. É usado para escrever e fazer upload de programas em placas compatíveis com Arduino, 
O Arduino IDE 2.0 é uma melhoria do IDE clássico, com desempenho aprimorado, interface de usuário aprimorada e muitos novos recursos, como preenchimento automático, um depurador integrado e sincronização de esboços com o Arduino Cloud. Caso não tenha instalado o Arduino IDE acesse o link https://support.arduino.cc/hc/en-us/articles/360019833020-Download-and-install-Arduino-IDE e faça o passo a passo de instalação indicado para o sistema operacional de sua máquina.
Figura 9: Acesso as preferências do Arduino IDE
Para iniciar a instalação da placa ESP32 no Arduino IDE, vá para o menu Arquivo > Preferências (Figura 9), No campo “URLs Adicionais para Gerenciadores de Placas” abra o ícone a direita do campo de preenchimento (Figura 10) e copie e cole as seguintes linhas https://dl.espressif.com/dl/package_esp32_index.json e https://espressif.github.io/arduino-esp32/package_esp32_index.json conforme Figura 11.
Figura 10: Campo de preenchimento das URLs Adicionais para Gerenciadores de Placas
Figura 11: Campo e Link de preenchimento das URLs do ESP32
Em seguida abra o Boards Manager, via Tools > Board > Boards Manager (na IDE 1.x), ou simplesmente clicando no ícone Boards Manager no canto esquerdo da IDE 2.x (Figura 12), busque por ESP32, e pressione o botão de instalação do esp32 pela Espressif Systems versão 3.x, ou outras versões disponíveis, esse processo pode demorar bastante tempo, recomendo a instalação antes do laboratório. Após a instalação (Figura 13), o sistema estará pronto para troca de informações entre o computadore a placa ESP, devendo selecionar antes a placa (DOIT ESP32 DEVKIT V1 – Figura 13) e porta para então carregar os códigos desenvolvidos.
Figura 12: Acesso ao Gerenciador de Placas
Figura 13: Placa ESP32 instalada e selecionada
4.3. Inclusão da Biblioteca Pubsubclient no Arduino IDE
A biblioteca PubSubClient é uma biblioteca que fornece ao cliente ferramentas para fazer envio e recebimento de mensagens simples de publicação/subscrição utilizando um servidor MQTT. Ela suporta o protocolo MQTT 3.1.1 mais recente. Ela suporta todos os hardwares compatíveis com Arduino Ethernet Client, incluindo Intel Galileo/Edison, ESP32, ESP8266 e TI CC3000.
Para usar a biblioteca PubSubClient, abra o Library Manager, via Sketch > Incluir Biblioteca > Gerenciador Bibliotecas (na IDE 1.x), ou simplesmente clicando no ícone Library Manager no canto esquerdo da IDE 2.x (Figura 14 e Figura 15), busque por PubSubClient, e pressione o botão de instalação da versão 2.8, ou outras versões.
Figura 14: Acesso ao Gerenciador de Biblioteca
Figura 15: Biblioteca PubSubClient instalada
4.4. Exemplo
Figura 16: Ligação do ESP32 para acionar um LED remotamente adquirido de [https://wokwi.com/projects/375729009432037377]
Neste exemplo, demonstraremos como acionar um LED remotamente utilizando o protocolo MQTT. O sistema consiste em um dispositivo IoT ESP32 conectado a um LED e um broker MQTT, que atua como intermediário para a comunicação. O esp assina um tópico específico para recebimento dos dados e quando uma mensagem é publicada nesse tópico por outro dispositivo, como ‘1’ (ON) ou ‘0’ (OFF), o esp recebe a mensagem e aciona o LED conforme solicitado (Figura 16).
	#include // biblioteca EWiFi
#include // biblioteca PubSubClient para conexão MQTT
#define pinLED 2
const char* mqtt_server = "IP_OR_BROKER_NAME"; // test.mosquitto.org
WiFiClient espClient;
PubSubClient client(espClient);
void callback(char* topic, byte* payload, unsigned int length) {
 Serial.print("Message arrived [");
 Serial.print(topic);
 Serial.print("] ");
 for (int i = 0; i

Mais conteúdos dessa disciplina