{"id":386571,"date":"2022-01-11T10:59:03","date_gmt":"2022-01-11T09:59:03","guid":{"rendered":"https:\/\/iotworlds.com\/o-significado-do-mqtt-para-conectar-dispositivos-iot-com-aplicativos-da-web\/"},"modified":"2022-01-11T10:59:10","modified_gmt":"2022-01-11T09:59:10","slug":"o-significado-do-mqtt-para-conectar-dispositivos-iot-com-aplicativos-da-web","status":"publish","type":"post","link":"https:\/\/iotworlds.com\/pt-br\/o-significado-do-mqtt-para-conectar-dispositivos-iot-com-aplicativos-da-web\/","title":{"rendered":"O significado do MQTT para conectar dispositivos IoT com aplicativos da Web"},"content":{"rendered":"\n<p>Com todos os protocolos de mensagens dispon\u00edveis, pode ser dif\u00edcil escolher apenas um. E com tantas op\u00e7\u00f5es por a\u00ed, \u00e9 muito f\u00e1cil se encontrar em uma situa\u00e7\u00e3o em que voc\u00ea tenta uma que n\u00e3o funciona para voc\u00ea ou sua equipe. O Mqtt \u00e9 um protocolo leve que requer apenas clientes e corretores, por isso \u00e9 perfeito para situa\u00e7\u00f5es em que voc\u00ea n\u00e3o deseja problemas. Este artigo explorar\u00e1 do que esse protocolo \u00e9 capaz e como ele alcan\u00e7a essas coisas!<\/p>\n\n<h2 class=\"wp-block-heading\">O que \u00e9 MQTT?<\/h2>\n\n<p>Mqtt \u00e9 um protocolo de mensagens leve que requer apenas clientes e intermedi\u00e1rios. \u00c9 perfeito para situa\u00e7\u00f5es em que voc\u00ea n\u00e3o quer nenhum aborrecimento ou confus\u00e3o, porque exige muito pouco de voc\u00ea.<\/p>\n\n<h2 class=\"wp-block-heading\">O que \u00e9 um protocolo de mensagens?<\/h2>\n\n<p>Um protocolo de mensagens \u00e9 um conjunto de regras usadas para permitir que aplicativos em diferentes m\u00e1quinas se comuniquem. O Mqtt foi projetado especificamente para a Internet das Coisas (IoT). Com uma gama t\u00e3o ampla de outros protocolos dispon\u00edveis, pode parecer estranho criar outro para essa finalidade. Mas, como muitos dispositivos e servi\u00e7os dependem desse campo, provavelmente veremos mais e mais deles ao longo do tempo!<\/p>\n\n<h2 class=\"wp-block-heading\">O que h\u00e1 de t\u00e3o bom no MQTT?<\/h2>\n\n<p>O Mqtt \u00e9 verdadeiramente \u00fanico, porque oferece muito com quase nada. Voc\u00ea n\u00e3o precisa de um servidor ou encaminhador dedicado como muitos outros protocolos, o que significa que tamb\u00e9m n\u00e3o h\u00e1 problemas de infraestrutura. Tudo o que voc\u00ea precisa \u00e9 de um corretor j\u00e1 existente e qualquer hardware com conex\u00e3o \u00e0 Internet. Gra\u00e7as \u00e0 qualidade do seu trabalho e \u00e0 sua leveza, este protocolo tem vindo a tornar-se cada vez mais popular. Por ser de c\u00f3digo aberto e de uso gratuito, voc\u00ea pode come\u00e7ar facilmente sem ter que pagar taxas ou custos de assinatura. E com o suporte a corretores embutido na biblioteca MQTT para Arduino, estamos animados para ver quais grandes produtos vir\u00e3o em nosso caminho.<\/p>\n\n<h2 class=\"wp-block-heading\">Quais s\u00e3o os recursos do MQTT?<\/h2>\n\n<p>O Mqtt \u00e9 um dos melhores exemplos de um protocolo de mensagens simples e leve que voc\u00ea encontrar\u00e1. Seu principal ponto de venda \u00e9 a facilidade de uso &#8211; qualquer dispositivo com conex\u00e3o \u00e0 Internet pode aproveitar o que esse protocolo tem a oferecer. Mas h\u00e1 mais do que apenas facilidade de uso para este protocolo. Vamos explorar o que mais voc\u00ea pode esperar dele!<\/p>\n\n<h2 class=\"wp-block-heading\">Exemplos de uso do MQTT<\/h2>\n\n<p>uma. Dispositivos IoT em uma f\u00e1brica controlando bombas e v\u00e1lvulas<\/p>\n\n<p>b. Uma esta\u00e7\u00e3o meteorol\u00f3gica com um sensor que reporta a um banco de dados na nuvem<\/p>\n\n<p>c. Um sistema de alarme que informa quando as portas abrem ou fecham<\/p>\n\n<p>d. Algumas luzes em um escrit\u00f3rio acendendo quando o movimento \u00e9 detectado<\/p>\n\n<h2 class=\"wp-block-heading\">1. O que \u00e9 MQTT e quais s\u00e3o suas caracter\u00edsticas?<\/h2>\n\n<p>MQTT significa Transporte de Telemetria de Enfileiramento de Mensagens, o que pode parecer complicado, mas significa simplesmente que \u00e9 uma maneira de os dispositivos IoT se comunicarem entre si usando a Internet. Ele roda em cima de TCP\/IP como HTTP, SMTP etc., mas diferentemente do HTTP que \u00e9 para comunica\u00e7\u00e3o pela internet, o MQTT \u00e9 usado com dispositivos que est\u00e3o conectados uns aos outros com uma rede, geralmente uma rede IP. \u00c9 mais comumente usado em IoT com dispositivos embarcados de baixa pot\u00eancia que se conectam a coisas como Raspberry Pi ou placas Arduino.<\/p>\n\n<h2 class=\"wp-block-heading\">2. Como funciona?<\/h2>\n\n<p>Funciona como um e-mail. Um dispositivo IoT publica uma mensagem em um t\u00f3pico. \u00c9 como enviar um e-mail para algu\u00e9m, mas em vez de uma pessoa \u00e9 um nome de t\u00f3pico. A mensagem pode conter at\u00e9 2kb de dados e \u00e9 enviada como um pacote.<\/p>\n\n<p>Um segundo assinante MQTT atende pacotes com seu pr\u00f3prio ID exclusivo ou ID do cliente. Ele ent\u00e3o faz algo com a mensagem. \u00c9 como quando algu\u00e9m recebe um e-mail, faz algo com ele; l\u00ea-lo, envi\u00e1-lo para outro lugar etc.<\/p>\n\n<p>O MQTT tem um n\u00edvel de Qualidade de Servi\u00e7o (QoS), o que significa que pode haver diferentes n\u00edveis de prioridade para mensagens. O n\u00edvel de QoS \u00e9 definido pelo cliente e cada pacote enviado tem esse n\u00edvel de prioridade.<\/p>\n\n<h2 class=\"wp-block-heading\">3. Benef\u00edcios do MQTT<\/h2>\n\n<p>\u00c9 leve, roda em TCP\/IP, menos sobrecarga que HTTP<\/p>\n\n<p>As mensagens s\u00e3o armazenadas em uma fila at\u00e9 que possam ser enviadas ao dispositivo de destino<\/p>\n\n<p>Possui suporte de reconex\u00e3o integrado<\/p>\n\n<p>Cada cliente pode ter sua pr\u00f3pria configura\u00e7\u00e3o de seguran\u00e7a para autentica\u00e7\u00e3o e criptografia<\/p>\n\n<p>QoS permite que os diferentes tipos de mensagens tenham diferentes n\u00edveis de prioridade<\/p>\n\n<h2 class=\"wp-block-heading\">4. Aplica\u00e7\u00f5es do MQTT<\/h2>\n\n<p>Alguns exemplos de como est\u00e1 sendo usado no mundo real \u00e9 com a M2M Alliance, um projeto que visa conectar \u201ccoisas\u201d com uma plataforma segura para transfer\u00eancia de dados entre dispositivos. Outro caso de uso \u00e9 com o projeto CEPH. Este \u00e9 um sistema de armazenamento em nuvem que pode armazenar e compartilhar arquivos simultaneamente para v\u00e1rios usu\u00e1rios. Ele usa o MQTT para proteger o acesso distribu\u00eddo criptografando os dados, o que permite que eles sejam transferidos entre dispositivos IoT usando v\u00e1rios gateways sem ter que se preocupar com a seguran\u00e7a dos dados.<\/p>\n\n<h2 class=\"wp-block-heading\">5. Introdu\u00e7\u00e3o ao MQTT<\/h2>\n\n<p>A primeira coisa que se precisa \u00e9 de um cliente MQTT; este \u00e9 o aplicativo que envia e recebe mensagens. A funda\u00e7\u00e3o Raspberry Pi tem um guia para come\u00e7ar a usar o MQTT no seu dispositivo Pi. Existem tamb\u00e9m outros guias dispon\u00edveis, como este do Hackster, que fornece o c\u00f3digo para executar na linguagem de programa\u00e7\u00e3o Python.<\/p>\n\n<h2 class=\"wp-block-heading\">Os melhores cursos online de MQTT<\/h2>\n\n<ol class=\"wp-block-list\"><li><strong><a href=\"https:\/\/click.linksynergy.com\/deeplink?id=kJzl6XhnZWo&amp;mid=39197&amp;murl=https%3A%2F%2Fwww.udemy.com%2Fcourse%2Fmastering-mqtt%2F\" target=\"_blank\" rel=\"noreferrer noopener\">Dominando o MQTT<\/a><\/strong><\/li><li><strong><a href=\"https:\/\/click.linksynergy.com\/deeplink?id=kJzl6XhnZWo&amp;mid=39197&amp;murl=https%3A%2F%2Fwww.udemy.com%2Fcourse%2Fmqtt-protocol%2F\" target=\"_blank\" rel=\"noreferrer noopener\">Protocolo MQTT mestre<\/a><\/strong><\/li><li><strong><a href=\"https:\/\/click.linksynergy.com\/deeplink?id=kJzl6XhnZWo&amp;mid=39197&amp;murl=https%3A%2F%2Fwww.udemy.com%2Fcourse%2Fdevelop-mqtt-client-android-app%2F\" target=\"_blank\" rel=\"noreferrer noopener\">Desenvolva o aplicativo Android do cliente MQTT<\/a><\/strong><\/li><li><a href=\"https:\/\/click.linksynergy.com\/deeplink?id=kJzl6XhnZWo&amp;mid=39197&amp;murl=https%3A%2F%2Fwww.udemy.com%2Fcourse%2Fmqtt-masterclass%2F\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>Masterclass de MQTT<\/strong><\/a><\/li><li><a href=\"https:\/\/click.linksynergy.com\/deeplink?id=kJzl6XhnZWo&amp;mid=39197&amp;murl=https%3A%2F%2Fwww.udemy.com%2Fcourse%2Fmastering-mqtt-protocol%2F\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>Dominando o protocolo MQTT: um guia do n\u00edvel iniciante ao avan\u00e7ado<\/strong><\/a><\/li><li><a href=\"https:\/\/click.linksynergy.com\/deeplink?id=kJzl6XhnZWo&amp;mid=39197&amp;murl=https%3A%2F%2Fwww.udemy.com%2Fcourse%2Fiot-mqtt-esp8266%2F\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>IoT: MQTT com Adafruit, App Inventor e ESP8266<\/strong><\/a><\/li><li><strong><a href=\"https:\/\/click.linksynergy.com\/deeplink?id=kJzl6XhnZWo&amp;mid=39197&amp;murl=https%3A%2F%2Fwww.udemy.com%2Fcourse%2Fmqtt-nodemcu-esp8266-node-red-android%2F\" target=\"_blank\" rel=\"noreferrer noopener\">MQTT Nodemcu (ESP8266) com Nodered, Wifi e Bluetooth<\/a><\/strong><\/li><\/ol>\n<h2 class=\"wp-block-heading\">TLS vs. SSL para construir um MQTT Broker<\/h2>\n\n<h3 class=\"wp-block-heading\">Pr\u00f3s de usar TLS:<\/h3>\n\n<p>-Seguran\u00e7a: TLS fornece uma conex\u00e3o segura entre o cliente e o broker. Isso ajuda a proteger contra ataques man-in-the-middle e espionagem.<\/p>\n\n<p>-Autentica\u00e7\u00e3o: TLS fornece autentica\u00e7\u00e3o do broker e do cliente, ajudando a garantir que apenas clientes autorizados possam se conectar ao broker.<\/p>\n\n<p>-Criptografia: TLS fornece criptografia de dados entre o cliente e o corretor, ajudando a proteger as informa\u00e7\u00f5es de serem vistas por indiv\u00edduos n\u00e3o autorizados.<\/p>\n\n<h3 class=\"wp-block-heading\">Contras de usar TLS:<\/h3>\n\n<p>-Desempenho: o TLS pode adicionar sobrecarga \u00e0s comunica\u00e7\u00f5es, o que pode reduzir o desempenho.<\/p>\n\n<p>-Certificados: Para usar o TLS, voc\u00ea precisa de certificados para o cliente e o corretor. Esses certificados podem ser dif\u00edceis de obter e caros de usar, o que pode aumentar o custo do uso do TLS.<\/p>\n\n<h3 class=\"wp-block-heading\">Pr\u00f3s de usar SSL:<\/h3>\n\n<p>-Seguran\u00e7a: SSL fornece uma conex\u00e3o segura entre o cliente e o corretor, assim como o TLS. Tamb\u00e9m ajuda a proteger contra ataques man-in-the-middle e espionagem.<\/p>\n\n<p>-Certificados: Como o SSL \u00e9 constru\u00eddo sobre o TLS, voc\u00ea pode usar os mesmos certificados para criptografar o tr\u00e1fego.<\/p>\n\n<h3 class=\"wp-block-heading\">Contras de usar SSL:<\/h3>\n\n<p>-Desempenho: A criptografia entre o cliente e o corretor adicionar\u00e1 sobrecarga \u00e0s comunica\u00e7\u00f5es, o que reduz o desempenho.<\/p>\n\n<p>-Uso de mem\u00f3ria: O protocolo SSL usar\u00e1 mais mem\u00f3ria do que outros protocolos porque mant\u00e9m uma sess\u00e3o de criptografia\/descriptografia com o broker.<\/p>\n\n<p>&#8211; Problemas de vers\u00e3o: SSL \u00e9 um protocolo mais antigo e n\u00e3o oferece suporte a alguns dos recursos que o TLS oferece (por exemplo, cifras mais recentes).<\/p>\n\n<p>Como voc\u00ea pode ver, TLS e SSL fornecem seguran\u00e7a, autentica\u00e7\u00e3o e criptografia para comunica\u00e7\u00e3o entre clientes e corretores; no entanto, eles fazem isso de maneiras ligeiramente diferentes. N\u00e3o h\u00e1 um vencedor claro quando se trata de decidir se voc\u00ea deve usar TLS ou SSL para seu MQTT Broker, pois a decis\u00e3o depender\u00e1 do que voc\u00ea precisa de sua infraestrutura e quanto tempo\/dinheiro voc\u00ea tem dispon\u00edvel para gastar.<\/p>\n\n<p>Para concluir, diria que existe uma resposta certa dependendo das necessidades do projeto. Nesse caso, \u00e9 melhor usar o TLS, pois oferece mais vantagens do que o SSL.<\/p>\n\n<h2 class=\"wp-block-heading\">Os 5 principais motivos para usar o protocolo MQTT em seus projetos de IoT<\/h2>\n\n<p>O MQTT \u00e9 um protocolo de mensagens m\u00e1quina a m\u00e1quina (M2M), projetado para dispositivos com recursos limitados, que conecta os dispositivos \u00e0 nuvem.<\/p>\n\n<p>1. \u00c9 leve e f\u00e1cil de usar: MQTT \u00e9 um protocolo de mensagens de publica\u00e7\u00e3o\/assinatura projetado para ser leve e f\u00e1cil de usar.<\/p>\n\n<p>2. Tem uma pegada pequena: o MQTT usa cerca de 1\/10 da largura de banda do HTTP, tornando-o ideal para aplicativos de IoT com recursos de rede limitados.<\/p>\n\n<p>3. Suporta QoS: MQTT suporta Qualidade de Servi\u00e7o (QoS), que garante a entrega de mensagens na lat\u00eancia ou qualidade desejada.<\/p>\n\n<p>4. Pode ser executado em qualquer rede: MQTT \u00e9 um protocolo multiplataforma que pode ser executado em redes celulares WiFi, Bluetooth Low Energy (BLE) ou 2G\/3G.<\/p>\n\n<p>5. Possui v\u00e1rias bibliotecas de clientes dispon\u00edveis em v\u00e1rias linguagens de programa\u00e7\u00e3o: Existem bibliotecas de clientes para C, C++, JavaScript, Arduino IDE, Python e Java.<\/p>\n\n<h2 class=\"wp-block-heading\">Como configurar um MQTT Broker usando um Docker Container em seu PC ou um servidor VPS?<\/h2>\n\n<p>O MQTT \u00e9 um protocolo de mensagens m\u00e1quina a m\u00e1quina (M2M)\/&#8221;IoT&#8221;, projetado como um transporte de mensagens de publica\u00e7\u00e3o\/assinatura extremamente leve. \u00c9 \u00fatil para conex\u00f5es com locais remotos onde \u00e9 necess\u00e1rio um pequeno espa\u00e7o de c\u00f3digo e\/ou a largura de banda da rede \u00e9 um pr\u00eamio.<\/p>\n\n<p>Neste artigo, mostraremos como configurar um broker MQTT usando um cont\u00eainer Docker em seu PC ou servidor VPS.<\/p>\n\n<p>O Docker \u00e9 um mecanismo de conteineriza\u00e7\u00e3o que ajuda voc\u00ea a implantar facilmente seus aplicativos com todas as suas depend\u00eancias. Ele fornece um ambiente consistente em cada host Docker, permite economizar tempo e aprimorar a portabilidade de seu c\u00f3digo entre v\u00e1rias distribui\u00e7\u00f5es Linux. Por exemplo, se qualquer aplicativo que depende de um grande n\u00famero de bibliotecas do sistema ou algumas vers\u00f5es raras de biblioteca e, portanto, n\u00e3o \u00e9 facilmente port\u00e1til, voc\u00ea pode simplesmente empacotar tudo e implantar como um cont\u00eainer do Docker.<\/p>\n\n<h3 class=\"wp-block-heading\">1) Instalando o Docker para Windows\/Mac<\/h3>\n\n<p>O Docker est\u00e1 dispon\u00edvel para usu\u00e1rios do Microsoft Windows e Mac OS X. Voc\u00ea pode baixar a vers\u00e3o apropriada aqui: https:\/\/docs.docker.com\/docker-for-windows\/install\/.<\/p>\n\n<h3 class=\"wp-block-heading\">2) Instalando o Docker-compose em seu host<\/h3>\n\n<p>Para implantar facilmente nosso broker MQTT caseiro, usaremos a ferramenta docker-compose. Ele permite definir e executar aplicativos Docker de v\u00e1rios cont\u00eaineres usando um arquivo YAML simples. Voc\u00ea pode aprender mais sobre o docker-compose aqui: https:\/\/docs.docker.com\/compose\/.<\/p>\n\n<p>Voc\u00ea pode baixar a ferramenta docker-compose aqui: https:\/\/github.com\/docker\/compose\/releases\/. Feito isso, voc\u00ea poder\u00e1 executar o comando &#8216;docker-compose&#8217; em seu terminal e verificar sua vers\u00e3o ou usar qualquer um de seus subcomandos.<\/p>\n\n<h3 class=\"wp-block-heading\">Terminologia b\u00e1sica do Docker para este artigo:<\/h3>\n\n<p>1) \u201cCont\u00eainer do Docker\u201d \u00e9 o processo que \u00e9 executado em segundo plano quando voc\u00ea executa uma imagem usando o comando docker run. Uma inst\u00e2ncia em execu\u00e7\u00e3o de uma imagem \u00e9 chamada de &#8216;containter&#8217;, com rela\u00e7\u00e3o \u00e0 sua cria\u00e7\u00e3o na compila\u00e7\u00e3o do docker.<\/p>\n\n<p>2) \u201cImagem do Docker\u201d \u00e9 um modelo somente leitura com instru\u00e7\u00f5es para criar um cont\u00eainer docker. \u00c9 composto por uma s\u00e9rie de camadas do sistema de arquivos representando diferentes estados da imagem final que queremos criar<\/p>\n\n<p>3) O comando copy at docker build cria uma imagem lendo sua descri\u00e7\u00e3o de um Dockerfile no diret\u00f3rio de trabalho atual e, em seguida, executando o comando apropriado em uma nova camada sobre a imagem atual.<\/p>\n\n<p>4) \u201cVolumes\u201d s\u00e3o pastas que permitem mapear pastas locais em sua m\u00e1quina host para diret\u00f3rios dentro de seus cont\u00eaineres docker. Isso \u00e9 \u00fatil se, por exemplo, voc\u00ea deseja armazenar alguns dados sobre seu cont\u00eainer ou arquivos de configura\u00e7\u00e3o. Voc\u00ea pode criar um volume especificando o caminho da pasta do seu sistema host usando o docker run.<\/p>\n\n<p>O arquivo YAML \u00e9 um arquivo de configura\u00e7\u00e3o que cont\u00e9m informa\u00e7\u00f5es para conex\u00e3o com um banco de dados externo, servidor MQTT etc., al\u00e9m de informa\u00e7\u00f5es sobre como e quais cont\u00eaineres devem ser criados. Vamos criar um arquivo YAML para configurar nosso broker na pr\u00f3xima se\u00e7\u00e3o.<\/p>\n\n<h3 class=\"wp-block-heading\">3) Criando o arquivo YAML para configurar seu MQTT Broker<\/h3>\n\n<p>Os arquivos YAML geralmente s\u00e3o compostos de v\u00e1rios pares de valores-chave, que s\u00e3o conectados por dois pontos (&#8220;:&#8221;). Voc\u00ea pode aprender mais sobre YAML aqui: https:\/\/en.wikipedia.org\/wiki\/YAML#Syntax.<\/p>\n\n<p>No nosso caso, criaremos um arquivo YAML para configurar o broker MQTT da seguinte forma:<\/p>\n\n<p>vers\u00e3o: &#8220;3&#8221;<\/p>\n\n<p>Nesta se\u00e7\u00e3o do YAML, definimos o nome do container como \u201chomer-mqtt\u201d e especificamos a imagem que deve ser usada para cri\u00e1-lo. Nesse caso, escolheremos a imagem \u201cdavidtgoldblatt\/homer-mqtt\u201d do Docker Hub daqui: https:\/\/hub.docker.com\/_\/homer-mqtt\/.<\/p>\n\n<p>Em nosso arquivo YAML, tamb\u00e9m declaramos alguns volumes da seguinte forma:<\/p>\n\n<p>volumes:<\/p>\n\n<p>&#8211; \/var\/run\/docker.sock:\/var\/run\/docker.sock<\/p>\n\n<p>Esses volumes nos permitir\u00e3o ter armazenamento persistente para o cont\u00eainer docker, permitindo que nossas configura\u00e7\u00f5es persistam por meio de reinicializa\u00e7\u00f5es e falhas do servidor. Voc\u00ea pode aprender mais sobre volumes aqui: https:\/\/docs.docker.com\/engine\/userguide\/dockervolumes\/.<\/p>\n\n<p>Para especificar os detalhes do nosso banco de dados, adicionamos uma se\u00e7\u00e3o \u201cdb_addresses\u201d com as seguintes entradas:<\/p>\n\n<p>db_addresses:<\/p>\n\n<p>&#8211; &#8220;host=172.17.0.2 porta=3306 usu\u00e1rio=homer dbname=homer&#8221;<\/p>\n\n<p>No exemplo acima, especificamos um host e uma porta para nossa inst\u00e2ncia de banco de dados. Observe que ao especificar um usu\u00e1rio, voc\u00ea deve adicionar um s\u00edmbolo \u201c@\u201d antes do nome do usu\u00e1rio. Isso ocorre porque o nome de usu\u00e1rio consiste em letras e n\u00fameros em sistemas Unix. Se voc\u00ea omitir isso, o Docker reclamar\u00e1 com erros como este:<\/p>\n\n<p>voc\u00ea tem que escapar caracteres especiais como @ ou *<\/p>\n\n<p>Para especificar nossas credenciais de banco de dados, adicionamos uma se\u00e7\u00e3o \u201cdatabase_password\u201d da seguinte forma:<\/p>\n\n<p>database_password: &#8220;homerun1&#8221;<\/p>\n\n<p>No exemplo acima, voc\u00ea deve usar a senha de sua escolha. Caso voc\u00ea queira configurar uma senha de banco de dados pela primeira vez, voc\u00ea pode ver nosso guia sobre como criar um novo usu\u00e1rio root sem senha aqui: https:\/\/homer-mqtt.readthedocs.io\/en\/latest\/configure_database_and_create_new_root_user .html<\/p>\n\n<p>Para especificar os detalhes do nosso servidor MQTT, adicionamos uma se\u00e7\u00e3o \u201cmqtt_server\u201d com as seguintes entradas:<\/p>\n\n<p>mqtt_server:<\/p>\n\n<p>&#8211; nome: mqtt host: 172.17.0.1 porta: 8883 nome de usu\u00e1rio: &#8220;homerun&#8221; senha: &#8220;homerun1&#8221;<\/p>\n\n<p>No exemplo acima, executamos o broker na porta 8883 e usamos o nome de usu\u00e1rio &#8220;homerun&#8221; e a senha &#8220;homerun1&#8221;, que criamos em nosso banco de dados.<\/p>\n\n<h3 class=\"wp-block-heading\">4) Execute seu corretor MQTT com o Docker<\/h3>\n\n<p>Nesta etapa, criaremos um cont\u00eainer docker do nosso arquivo YAML e o executaremos.<\/p>\n\n<p>Para fazer isso, v\u00e1 para o diret\u00f3rio onde voc\u00ea tem o arquivo YAML e execute \u201cdocker-compose up\u201d da seguinte forma:<\/p>\n\n<p>$ docker-compose up<\/p>\n\n<p>Este comando criar\u00e1 um novo cont\u00eainer docker com base na descri\u00e7\u00e3o em seu arquivo YAML e o iniciar\u00e1.<\/p>\n\n<p>Se voc\u00ea quiser iniciar isso em segundo plano, use \u201cdocker-compose up -d\u201d. Se voc\u00ea quiser imprimir os logs do seu cont\u00eainer docker, execute \u201cdocker-compose logs mqttclient\u201d da seguinte forma:<\/p>\n\n<p>$ docker-compose logs mqttclient<\/p>\n\n<p>Voc\u00ea tamb\u00e9m pode ver o cont\u00eainer docker ao vivo em tempo real usando \u201cdocker-compose ps\u201d da seguinte forma:<\/p>\n\n<p>$ docker-compose ps<\/p>\n\n<h3 class=\"wp-block-heading\">5) Executando seu cliente MQTT com o Docker<\/h3>\n\n<p>Nesta etapa, criaremos um cont\u00eainer docker do nosso arquivo YAML e o executaremos.<\/p>\n\n<p>Para fazer isso, v\u00e1 para o diret\u00f3rio onde voc\u00ea tem o arquivo YAML e execute \u201cdocker-compose up\u201d da seguinte forma:<\/p>\n\n<p>$ docker-compose up<\/p>\n\n<p>Este comando criar\u00e1 um novo cont\u00eainer docker com base na descri\u00e7\u00e3o em seu arquivo YAML e o iniciar\u00e1.<\/p>\n\n<p>Se voc\u00ea quiser iniciar isso em segundo plano, use \u201cdocker-compose up -d\u201d. Voc\u00ea tamb\u00e9m pode ver o cont\u00eainer docker ao vivo em tempo real usando \u201cdocker-compose ps\u201d da seguinte forma:<\/p>\n\n<p>$ docker-compose ps<\/p>\n\n<h3 class=\"wp-block-heading\">6) Usando seu cliente MQTT com o Docker<\/h3>\n\n<p>Agora que nosso arquivo YAML est\u00e1 configurado, podemos come\u00e7ar a usar nosso cliente MQTT com o Docker.<\/p>\n\n<p>Para fazer isso, v\u00e1 para o diret\u00f3rio onde voc\u00ea tem seu arquivo YAML e execute \u201cdocker exec\u201d da seguinte forma:<\/p>\n\n<p>$ docker exec -it mqttclient \/bin\/bash<\/p>\n\n<p>Agora voc\u00ea deve ver um diret\u00f3rio chamado \u201c\/home\/homerun\u201d (que \u00e9 o diret\u00f3rio inicial do nosso cont\u00eainer docker) e voc\u00ea deve estar dentro desse diret\u00f3rio.<\/p>\n\n<p>Agora voc\u00ea pode ver seus bancos de dados digitando \u201cmysql -uroot -proot\u201d da seguinte forma:<\/p>\n\n<p>$ mysql -uroot -proot<\/p>\n\n<p>Voc\u00ea deve ver todos os seus bancos de dados na tela. Voc\u00ea pode ver como criar um novo usu\u00e1rio root sem senha para a inst\u00e2ncia MySQL aqui: https:\/\/homer-mqtt.readthedocs.io\/en\/latest\/configure_database_and_create_new_root_user.html<\/p>\n\n<p>Para executar o comando do cliente MQTT no Docker, voc\u00ea precisa digitar \u201csbin\/mqtt\u201d da seguinte forma:<\/p>\n\n<p>$ sbin\/mqtt -c \/home\/homerun\/config.yaml<\/p>\n\n<p>No exemplo acima, especificamos um arquivo de configura\u00e7\u00e3o com o sinalizador -c, que l\u00ea nossas configura\u00e7\u00f5es de MQTT do arquivo de configura\u00e7\u00e3o que criamos neste tutorial.<\/p>\n\n<p>Para verificar se seu cliente MQTT est\u00e1 funcionando, voc\u00ea pode usar \u201cdocker-compose ps\u201d da seguinte forma:<\/p>\n\n<p>$ docker-compose ps<\/p>\n\n<p>No exemplo acima, nosso cliente MQTT foi iniciado com sucesso. Agora voc\u00ea deve ver todos os seus bancos de dados na tela.<\/p>\n\n<p>Para executar o comando do cliente MQTT no Docker, voc\u00ea precisa digitar \u201csbin\/mqtt\u201d da seguinte forma:<\/p>\n\n<p>$ sbin\/mqtt -c \/home\/homerun\/config.yaml<\/p>\n\n<p>No exemplo acima, especificamos um arquivo de configura\u00e7\u00e3o com o sinalizador -c, que l\u00ea nossas configura\u00e7\u00f5es de MQTT do arquivo de configura\u00e7\u00e3o que criamos neste tutorial.<\/p>\n\n<p>Para verificar se seu cliente MQTT est\u00e1 funcionando, voc\u00ea pode usar \u201cdocker-compose ps\u201d da seguinte forma:<\/p>\n\n<p>$ docker-compose ps<\/p>\n\n<p>No exemplo acima, nosso cliente MQTT foi iniciado com sucesso. Agora voc\u00ea deve ver todos os seus bancos de dados na tela e pode tentar publicar algumas mensagens para testar se tudo est\u00e1 funcionando bem:<\/p>\n\n<p>$ docker exec -it mqttclient \/bin\/bash<\/p>\n\n<p>$ sbin\/mqtt publish -t &#8216;teste&#8217; -h 172.17.0.1 -m &#8216;ol\u00e1 mundo!&#8217;<\/p>\n\n<p>$ docker exec -it mqttclient \/bin\/bash<\/p>\n\n<p>$ sbin\/mqtt subscribe -t &#8216;test&#8217; -h 172.17.0.1 -u mqttuser<\/p>\n\n<h3 class=\"wp-block-heading\">7) Limpando seu cliente MQTT com o Docker<\/h3>\n\n<p>Para parar seu cont\u00eainer docker, voc\u00ea precisa executar \u201cdocker-compose down\u201d da seguinte forma:<\/p>\n\n<p>$ docker-compose down<\/p>\n\n<h3 class=\"wp-block-heading\">8) Limpando seu cliente MQTT com Docker Volumes<\/h3>\n\n<p>Para impedir que seu banco de dados mysql e usu\u00e1rio mqtt sejam criados, voc\u00ea pode usar o sinalizador -v.<\/p>\n\n<p>$ docker-compose down -v<\/p>\n\n<p>Voc\u00ea tamb\u00e9m pode limpar seu ambiente excluindo o diret\u00f3rio que cont\u00e9m seu arquivo YAML.<\/p>\n\n<p>Banco de dados MySQL e usu\u00e1rio mqtt criados com sucesso! Eles ser\u00e3o removidos automaticamente quando voc\u00ea remover o cont\u00eainer docker. Agora voc\u00ea pode sair deste shell digitando \u201cexit\u201d.<\/p>\n\n<p>Neste tutorial, vimos como configurar seu cliente MQTT por meio de um cont\u00eainer do Docker.<\/p>\n\n<h2 class=\"wp-block-heading\">Conclus\u00e3o<\/h2>\n\n<p>O MQTT \u00e9 um protocolo de conectividade m\u00e1quina a m\u00e1quina (M2M) ou \u201cInternet das Coisas\u201d. Ele foi projetado como um transporte de mensagens de publica\u00e7\u00e3o\/assinatura extremamente leve. O MQTT \u00e9 \u00fatil para conectar sensores de baixo consumo, wearables e outras coisas min\u00fasculas conectadas \u00e0 Internet \u00e0 nuvem. Como o MQTT usa um modelo de publica\u00e7\u00e3o\/assinatura, \u00e9 perfeito para dispositivos que precisam enviar dados com pouca frequ\u00eancia ou onde a largura de banda da rede \u00e9 premium.<\/p>\n\n<h2 class=\"wp-block-heading\">Interessado em desenvolver sua solu\u00e7\u00e3o MQTT? <a href=\"mailto:info@iotworlds.com\">Contate-Nos!<\/a><\/h2>\n","protected":false},"excerpt":{"rendered":"<p>Com todos os protocolos de mensagens dispon\u00edveis, pode ser dif\u00edcil escolher apenas um. E com tantas op\u00e7\u00f5es por a\u00ed, \u00e9&hellip;<\/p>\n","protected":false},"author":1,"featured_media":386388,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_lmt_disableupdate":"","_lmt_disable":"","footnotes":""},"categories":[1744,1794],"tags":[],"class_list":["post-386571","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog-pt-br-2","category-smart-device-pt-br"],"acf":[],"_links":{"self":[{"href":"https:\/\/iotworlds.com\/pt-br\/wp-json\/wp\/v2\/posts\/386571","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/iotworlds.com\/pt-br\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/iotworlds.com\/pt-br\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/iotworlds.com\/pt-br\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/iotworlds.com\/pt-br\/wp-json\/wp\/v2\/comments?post=386571"}],"version-history":[{"count":0,"href":"https:\/\/iotworlds.com\/pt-br\/wp-json\/wp\/v2\/posts\/386571\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/iotworlds.com\/pt-br\/wp-json\/wp\/v2\/media\/386388"}],"wp:attachment":[{"href":"https:\/\/iotworlds.com\/pt-br\/wp-json\/wp\/v2\/media?parent=386571"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/iotworlds.com\/pt-br\/wp-json\/wp\/v2\/categories?post=386571"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/iotworlds.com\/pt-br\/wp-json\/wp\/v2\/tags?post=386571"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}