Você está na página 1de 22
(Xitel eT Ly loT - Internet Of Things C3 Qafouy ere Mt Por definig&o classica, a internet das coisas nada mais é que uma rede de objetos fisicos (veiculos, prédios e outros dotados de tecnologia embarcada, sensores e conexdo com a rede) capaz de reunir e de transmitir dados. E uma extens&o da internet atual que possibilita que objetos do dia-a-dia, quaisquer que sejam mas que tenham capacidade computacional e de comunicagao, se conectem a Internet. A conexdo com a rede mundial de computadores possibilita, em primeiro lugar, controlar remotamente os objetos e, em segundo lugar, que os proprios objetos sejam usados como provedores de servicos. Essas novas capacidades dos objetos comuns abrem caminho a intimeras possibilidades, tanto no Ambito académico quanto no industrial. Todavia, tais possibilidades acarretam riscos e implicam grandes desafios técnicos e sociais. A Internet das coisas surgiu em consequéncia dos avangos de varias areas - como sistemas embarcados, microeletrénica, comunicagao e sensoriamento. De fato, a loT tem recebido bastante ateng4o tanto da academia quanto da industria, devido ao seu potencial de uso nas mais diversas Areas das atividades humanas. O conceito é, em certa medida, fruto do trabalho desenvolvido pelo Laboratério de Auto-ID do Instituto de Tecnologia de Massachusetts (MIT), sobre o uso da identificagao por radiofrequéncia (RFID) e da rede de sensores sem fio (RSSF). O objetivo do trabalho era, desde 0 inicio, criar um sistema global de registro de bens usando um sistema de numeragao Gnico, 0 eédigo eletrdnico de poduto. Laercio Guero Rodrigues 2199235 8440 laercio@resolved.com.br | 1-22 Ten (Xitel eT Ly Quais Coisas Controlar? &. J le iti 3 Se observamos ilustragdes relacionado a artigos sobre loT, vamos constatar uma variedade sem fim de objetos (coisas) que podemos controlar. Controlar neste contexto refere-se a possibilidade de obtermos dados (ou estado) desses objetos, processando tais informagdes para posterior tomada de decisdio em controlar o mesmo ou outro dispositive. Como exemplo, podemos imaginar um sistema que receba dados relativo a temperatura de um ambiente, analisando, e dependendo do valor, acionar outro objeto como um simples rele que faz liberar corrente elétrica para o aparelho de ar condicionado © exemplo acima, mesmo se considerarmos ser basico, pode se explorado, enumerar varios hardware e software envolvido. Consideremos entao a existéncia de um aparelho condicionador de ar, um rele controlando o fluxo de energia elétrica que lo alimenta, um sensor de temperatura acoplado a uma controladora (Arduino, MSStick, LoRa ESP32 ou outra qualquer) que é capaz de receber os dados do sensor (variag&o de temperatura), processar tias dados tomando a decisdo de comandar o Rele de forma interromper o fluo de energia, ou liberar conforme valor da temperatura. Ampliando ainda este desenho, poderiamos ainda permitir que a controladora que contem a légica embarcada, possa se comunicar com um sistema subjacente (neste artigo ser um Servidor DataSnap Delphi) enviado tais dados para armazenamento em uma base de dados. Reparem, e foi de propésito, a topologia do exemplo envolve uma rede, mas nd necessariamente o uso de Internet nem muito menos o servico de um Cloud. Agora, imaginem (e é essa a ideia por traz de tudo), se considerarmos que tais dispositivos em uma rea local definida, poder enviar dados (pa andlise) e receber dados (na forma de comandos) para um Servidor em um Cloud. Assim, objetos do cotidiano como condicionadores de ar, portas, acessos em geral, equipamentos ligados ao corpo humano e uma infinidade de possibilidades, possam ser controlado a distancia permitindo algo imaginavel a pouco tempo loT pode ser aplicado em ambientes residenciais, comerciais, na industria, setor agropecuario, urbano e sade. Eu confesso um grande entusiasmo com a possibilidade de monitoramento de um paciente, tendo assisténcia médica, de equipamento e até medicamento em full time. Laercio Guero Rodrigues 2199235 8440 laercio@resolved.com.br | 2-22 (Xitel eT Ly Controlar Com O Qué? Naturalmente com outras coisas (licenga poética claro). A bem da verdade, usamos as classicas controladoras, alumas citadas aqui anteriormente, programadas (software embarcado) para interagir com seus shields (sensores, leitores rfid, litoras de biometria digital e facial), comandando outros shields (catracas, reles, robés entre outros realizadores). paragrafo anterior resume aquilo que é ébvio, visivel e de conhecimento popular, mas devemos considerar a infra de rede, seja ela uma LAN e ou a Rede de Internet, um Servidor (hardware) para servir a uma aplicag&o controladora dos processos como um Servidor DataSnap, Banco de Dados, aplicativos Mobile integrados ao sistemas e até mesmo comandando Controladoras ligadas a rede e muito mais. Falando um pouco mais das tecnologias que permitem a conexao dos dispositivos envolvidos (controladoras, subsistemas e dispositivos) podemos mencionar rede WiFi, Ethernet e comunicagdo a radio (LoRa por exemplo) e protocolos como MQTT, UDP, TCP e HTTP. Por fim, consideremos ainda, a adogdo de Servidor e Aplicativo Servidor executando em um Cloud, alias, é isso que define a amplitude de Internet das Coisas, conectando absolutamente tudo. Gri) Bluetooth +O: (o) a 9 ig Laercio Guero Rodrigues 2199235 8440 laercio@resolved.com.br | 3-22 Ten (Xitel eT Ly O Que Cobre Este Artigo? Desenvolveremos um pouco do que é 0 curso “loT — Controlando Coisas Com Delphi”, tentando assim, demonstrar a comunicacao entre controladoras (LoRa) que estejam fora do alcance de uma rede, transmitindo dados capturados por sensores nestes locais, também, j& no alcance da rede, retransmitir esses dados para um sistema desenvolvido em Delphi, com posterior processamento e tomada de decisdo, enviando no sentido contrario comandos para algum dispositive, que por exemplo, poderia acionar um rele conectado a uma lampada. Simples? Sim, muito simples, mas de extrema utilidade, j4 que ao final envolveremos esse processo em um aplicativo Delphi, residindo em um Cloud, estabelecendo comunicacdo via MQTT. Em resumo, para cumprir este pequeno exemplo, utilizaremos tecnologias conforme lista abaixo. Hardware - PC para acomodar o Servidor de Aplicag&o Delphi DataSnap - Dois médulos LoRa - Rede WiFi - Servidor Cloud Software - Aplicativo Delphi DataSnap para controlar os processos. - Aplicative Arduino embarcado nos médulos LoRa. - Em geral, protocolos UDP e MQTT, tanto nas controladoras quanto nos aplicativos Delphi -Aplicativo Servidor MQTT Mosquito em Cloud. Laercio Guero Rodrigues 2199235 8440 laercio@resolved.com.br | 4-22 (Xitel eT Ly Sobre LoRa Se vocé é amante de tudo que é relacionado a loT, certamente ja deve ter ouvido falar sobre rede LoRa, certo? Uma das mais populares dentre as redes de conectividade, a tecnologia de radiofrequéncia cumpre com as expectativas de empresas que necessitam sinal em locais com baixa penetracao de RF e buscam praticidade no dia a dia. baixo consumo energético e a possibilidade de atuar em grandes distancias — 5 Km nas Areas urbanas e até 15 Km nas areas rurais! — do uma cara atrativa a rede, mas atengdo: apesar de ser bastante usado, antes de instalar 0 protocolo é preciso saber que 0 investimento n&o é dos mais baixos Isso porque vocé necessitara de antenas de transmissdo espalhadas pelo ambiente, além da estrutura completa de loT. Sem contar que a LoRa s6 se comunica com dispositivos LoRa e nao suporta conexées com sistemas que trabalham com outros protocolos WiFi, ZigBee e Bluetooth Low Energy (BLE), mas nada impede que assim como LoRa, os dispositivos implementem també conexdo WiFi e Bluetootch. Sobre Delphi Delphi, é um compilader, uma IDE e uma linguagem de programagao, produzido anteriormente pela Borland Software Corporation e atualmente pela Embarcadero. O Delphi, originalmente direcionado para a plataforma Windows, chegou a ser usado para desenvolvimento de aplicagdes nativas para Linux através do Kylix (0 Kylix é um IDE para as linguagens C++ e Object Pascal). Em sua versdo atual suporta desenvolvimento par Windows, Linux, Web e Mobile Sobre Arduino E uma plataforma de prototipagem eletrénica de hardware livre e de placa Unica, projetada com um microcontrolador Atmel AVR com suporte de entrada/saida embutido, uma linguagem de programagao padrao, a qual tem origem em Wiring, e 6 essencialmente C/C+ + [8] © objetivo do projeto é criar ferramentas que sao acessiveis, com baixo custo, flexiveis e faceis de se usar por principiantes e profissionais. Principalmente para aqueles que nao teriam alcance aos controladores mais sofisticados e ferramentas mais complicadas. Laercio Guero Rodrigues 2199235 8440 laercio@resolved.com.br | 5-22 (Xitel eT Ly Sobre MQTT MQTT, acrdnimo de Message Queuing Telemetry Transport (anteriormente conhecido como MQ Telemetry Transport), é um protocolo de mensagens leve para sensores e pequenos dispositivos méveis otimizado para redes TCP/IP. O esquema de troca de mensagens é fundamentado no modelo Publicador-Subscritor, extremamente simples e leve. Os princfpios arquiteténicos sao minimizar o uso de banda de rede e uso de recursos dos equipamentos enquanto garantindo confiabilidade e algum nivel de garantia de entrega. Estes principios tornam esse protocolo ideal para as comunicagdes emergentes (M2M) “machine-to-machine” e para as aplicagées “Internet of Things" (Internet das coisas) um mundo de equipamentos conectados, além das aplicagdes mobile onde banda e poténcia da bateria sao relevantes[3] Atualmente se encontra na versao 5.0 e a 3.1.1 (padrao ISO), ambos sao padrées OASIS. Sobre Servidor Mosquito MQTT © Eclipse Mosquito é um intermedidrio de mensagens de cédigo aberto (licenciado para EPL/ EDL) que implementa as versdes 5.0, 3.1.1 e 3.1 do protocolo MQTT. O Mosquito é leve e 6 adequado para uso em todos os dispositivos, desde computadores de placa nica de baixa poténcia até servidores completos. O protocolo MQTT fornece um método leve de executar mensagens usando um modelo de publicacao / assinatura. Isso 0 torna adequado para mensagens da Internet das Coisas, como sensores de baixa poténcia ou dispositivos méveis, como telefones, computadores embarcados ou microcontroladores. projeto Mosquito também fornece uma biblioteca C para implementar clientes MQTT e os clientes MQTT da linha de comando mosquitto_pub e mosquitto_sub muito populares. Laercio Guero Rodrigues 2199235 8440 laercio@resolved.com.br | 6-22 (Xitel eT Ly Diagrama do Projeto | Transmissor Realiza comunicagdo bidirecional com outros dispositivos LoRa em distancia de até 3 KM em campo aberto Nao depende de rede WiFi para transmitir dados. Em nosso projeto so transmitira. Receptor Realiza comunicacdo bidirecional com outros dispositivos LoRa em distancia de até 3 KM em campo aberto Nao depende de rede WiFi para transmitir dados. Em nosso projeto sé recebera. Para este projeto, se faz necessério instalar a IDE do Arduino, gratuitamente disponivel em https:/www.arduino.cc/en/Main/Software . Apés a instalacdo da IDE do Arduino, proceder instalacao das bibliotecas LoRa.h,WiFi.h e PubSubClient.h, Faga uma busca rdpida na internet e sera direcionado para o GitHub onde fara download das mesmas. O processo de instalacao das bibliotecas 6 bem simples, mas, para facilitar, acesse 0 menu Sketch | Incluir Biblioteca | Adicionar biblioteca .ZIP. Confira na imagem da Figura 01 que segue: Laercio Guero Rodrigues 2199235 8440 laercio@resolved.com.br | 7-22 (Xitel eT Ly (© beth node | Pech 1810 So vo a Shc Feraants ds ‘erticar/Corear viet are Canepa cute Canes undo progamader Clash Inca bots lq ‘Adchonaribbtea 2 edge ayia Figura 01 Como vamos utilizar Controladora LoRa, ainda que iremos embarcar nas mesmas programas desenvolvido em Arduino, é necessério configurar 0 ambiente da IDE do Arduino para tanto. Assim sendo, siga os passos das Figuras 02 a 06 para preparar o ambiente. Instalando ESP32 Boards Manager (1) Abra a IDE do Arduino, navegue para File -> Preferences -> Settings Figura 02 Laercio Guero Rodrigues 2199235 8440 laercio@resolved.com.br | 8-22 (Xitel eT Ly Figura 03 (2) Adicione ESP32 em Boards Manager URL - Copie 0 link abaixo para ESP32 Board Manager URL adicionando a URLr URLS - ESP32 Boards Manager url: https://dl.espressif.com/dl/package_esp32_index.json Figura 04 Laercio Guero Rodrigues 2199235 8440 laercio@resolved.com.br | 9-22 (Xitel eT Ly (8) Navegue agora para Tools -> Board: -> Boards Manager... Figura 0S (4) Pequise ESP32 na janela Boards Manager, apés encontrar, clique em Install. e et etiel == Figura 06 Pronto, agora temos um ambiente adequado, podendo assim prosseguir com o projeto de exemplo. Laercio Guero Rodrigues 2199235 8440 laercio@resolved.com.br | 10-22 Ten (Xitel eT Ly Voltando ao diagrama da pagina 5, neste momento temos que langar mao dos dois Médulos Lora Esp32 Display Oled Wifi Bluetooth 868-915mhz lot, definindo que o primeiro é o Transmissor, que a distancia de até 3KM em campo aberto, pode enviar dados ao outro médulo LoRa, aqui definido com Receptor sem fazer uso de rede WiFi Usando a IDE do Arduino, configurada para usar este médulo LoRa (confira na Figura 07) conectado via cabo USB, podemos embarcar o progra no médulo Transmissor. Om ns Figura 07 Observe no Menu Ferramentas, as opgdes Placa e Porta que devem ser configuradas em sua IDE. Apés isso, basta embarcar o cédigo abaixo na controladora. Mas antes de executar em Menu Sketch | Carregar, convem neste mesmo menu, mas na op¢do Verificar/Compilar, conferir se existe algum erro. Cédigo fonte do Sketch lora_ponto_a_ponto_Transmissor_Artigo.ino #include #include #define SCK_LORA 5 #define MISO_LORA 19 #define MOSLLORA 27 #define RESET_PIN_LORA 14 #define SS PIN LORA _18 PN OAR ON Ph Laercio Guero Rodrigues 2199235 8440 laercio@resolved.com.br | 11-22 (Xitel eT Ly 10, 1. 12. 13, 14, 15, 16, 17, 18, 19, 20. 21, 22 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33, 34, 35. 36. 37. 38. 39. 40. 41. 42. #define HIGH_GAIN_LORA 20 #define BAND 43366 #define DEBUG_SERIAL_BAUDRATE 115200 long informacao_a_ser_enviada = 0; String informacao_a_ser_enviadaSt int enviarLoRa = 0; bool init_comunicacao_lora(void) { bool status_init = false; SPI.begin(SCK_LORA, MISO_LORA, MOSI_LORA, SS_PIN_LORA); LoRa.setPins(SS_PIN_LORA, RESET_PIN_LORA, LORA_DEFAULT_DIO0_PIN); if ((LoRa.begin(BAND)) { Serial.printin("Comunicacao com o radio LoRa falhou. Aguarde..." delay(1000); status_init = false; } else { LoRa.setTxPower(HIGH_GAIN_LORA); Serial.printIn(’[LoRa Emissor] Comunicacao com o radio LoRa oK."); status_init = true; } return status_init; void enviarMSGLoRa() { informacao_a_ser_enviadaStr="INILOMSG1234567890F II LoRa.beginPacket(); LoRa.print(informacao_a_ser_enviadaStr); LoRa.endPacket(); Laercio Guero Rodrigues 2199235 8440 laercio@resolved.com.br | 12- 22 (Xitel eT Ly 43. void setup() { 44, Serial.printin("Setup 45, Serial.begin(DEBUG_SERIAL_BAUDRATE); 46. while (!Serial); 47. delay(1000); 48. while(init_comunicacao_lora() == false); 49 Serial.printin("Setup 50. } 51. 52. void loop() { 53. enviarMSGLoRa(); 54, Serial.printIn("Lora enviou"); 55. __delay(1000); 56. } Pronto, se tudo ocorre sem problemas, seu programa transmissor est carregado, podendo ser observado na tela do Monitor Serial da IDE 0 Arduino (Figura 08) as atividades processadas. Ocoues a Figur 08 Laercio Guero Rodrigues 2199235 8440 laercio@resolved.com.br | 13-22 (Xitel eT Ly Neste ponto, podemos codificar o sistema que sera embarcado no segundo Médulo LoRa, a saber, o Receptor. Para tanto, lance mao do médulo, conectando o mesmo via USB ao seu computador, onde naturalmente a IDE do Arduino esta executando. Proceda como da vez anterior, quando configurou o ambiente para programar 0 médulo Transmissor. Aplique o cédigo abaixo compilando e executando o mesmo na controladora. Cédigo fonte do Sketch lora_ponto_a_ponto_Receptor_Artigo.ino 1 #finclude 2 #include 3 #include 4, #include 5: #include 6. 7 8 9. const char* SSID_WIF! = "homewifi_xx"; const char* PASSWORD_WIFI = "16700xxx"; IPAddress local_IP(192, 168, 0, 50); 10. IPAddress gateway(192, 168, 0, 1); 11. —_IPAddress subnet(255, 255, 255, 0); 12. IPAddress serverUDPIP(192, 168, 0, 100); 13. WiFIUDP Udp; 14, _ int serverUDPPort = 26700; 15. _unsigned int localPort = 26700; 16. char packetBuffer[255); 18. WiFiClient espClient; 19. PubSubClient MQTT(espClient); 21. #define SCK_LORA 5 22, #define MISO_LORA 19 23. #define MOSI_LORA 27 24, #define RESET_PIN.LORA 14 25. #tdefine SS_PIN.LORA 18 Laercio Guero Rodrigues 2199235 8440 laercio@resolved.com.br | 14-22 (Xitel eT Ly 26. #define HIGH_GAIN_LORA 20 27. #define BAND 433E6 28. 29. #define DEBUG_SERIAL_BAUDRATE 115200 30. 31. bool init_comunicacao_lora(void) { 32. bool status_init = false; 33. Serial printin("[Receptor] Tentando iniciar comunicacao com o radio LoRa 34. SPl.begin(SCK_LORA, MISO_LORA, MOSI_LORA, SS_PIN_LORA); 35. LoRa.setPins(SS_PIN_LORA, RESET_PIN_LORA, LORA_DEFAULT_DIOO_PIN); 36, if (LoRa.begin(BAND)) 37. { 38. Serial printin("[Receptor] Comunicacao com o radio LoRa falhou. Aguardeo."); 39. delay(1000); 40. status_init = false; 41. } 42. else 43. { 44, LoRa.setTxPower(HIGH_GAIN_LORA); 45. Serial.printIn("[Receptor] A Comunicacao com o radio LoRa ok"); 46. status_init = true; 47. } 48. return status_init; 49. } 50. 51. void init_wifi(void) { 52. delay(10); 53. Serial printin("------Conexao WI-FI 113 ~ 54, Serial print(’Conectando-se na rede: "); 55. Serial printn(SSID_WIFI); 56. Serial printin("Aguarde"); 57. connect_wifi(); 58. } 59. void connect_wifi() { Laercio Guero Rodrigues 2199235 8440 laercio@resolved.com.br | 15-22 60. 61, 62. 63. 64, 65. 66. 67. 68. 69. 70, 71. 72. 73. 74, 75. 76. 7. 78. 79, 80. 81. 82. 83, 84, 85. 86. 87. 88. 89, 90. 91, 92, 93. (Xitel eT Ly delay(3000); WiFimode(WIFI_STA); if (WiFi.status) == WL_CONNECTED) return; WiFi.config(local_IP, gateway, subnet); delay(1000); WiFi.begin(SSID_WIFI, PASSWORD_WIFI); while (WiFi-status() = WL_CONNECTED) { delay(100); Serial print(’."); } Serial printin(; Serial.print("Conectado com sucesso na rede "); Serial print(SSID_WIFI); Serial.printIn(". IP obtido: "); Serial printIn(WiFi.locallP(); void lerDadosUDP() { int packetSize = Udp.parsePacket(); if (packetSize) { Serial print("Dados Recebidos Via UDP " Serial printIn(packetSize); Serial,print(‘Origem *); IPAddress remotelp = Udp.remotelP(); Serial print(remotelp); Serial.print(’, port"); Serial printin(Udp.remotePort()); int len = Udp.read(packetButfer, 255); if (len > 0) { packetBuffer[len] = 0; Laercio Guero Rodrigues 2199235 8440 laercio@resolved.com.br | 16-22 (Xitel eT Ly 94. } 95. Serial.printin(™); 96. Serial printin("Conteudo: "); 97. Serial printin(packetBuffer); 98. enviarDadosUDP("Dados Recebido pelo Médulo --> “ + String(packetBuffer)); 99. Serial printin("); 100. } 101. } 102. 103. void init_UDP( { 104, Udp.begin(localPort); 105. } 106 107. void enviarDadosUDP(String DadosEnviar) { 108. Udp.beginPacket(serverUDPIP, serverUDPPort); 109. Udp.printin(DadosEnviar); iio Udp.endPacket(); im. } 112. 113. void setup() { 114, Serial.begin(DEBUG_SERIAL_BAUDRATE); 115 while (!Serial); 116 init_wifiQ; u7 delay(2000); us init_UDPQ; 119 delay(2000); 120. while(init_comunicacao_lora() == false); 421. delay(1000); 122 Serial printin("Setup Iniciado 123 Serial.printin(™); 124. } 125. 126. void loop() { 127. String Dados Laercio Guero Rodrigues 2199235 8440 laercio@resolved.com.br | 17-22 Ten (Xitel eT Ly 128, _ int packetSize = LoRa.parsePacket(); 129, __ if (packetSize) { 130. while (LoRa.available()) { 131. Dados += (char)LoRa.read(); 132, } 133 Serial print(’Recebido: "); 134 Serial printin(Dados); 135. _enviarDadosUDP(Dados); 136. } 137. _ lerDadosUDP(); 138, } Agora o momento de gloria, pois vamos testar os dois médulos LoRa, Transmissor e Receptor se comunicando. Na pratica, observaremos 0 médulo Transmissor enviar informag&o e o médulo Receptor recuperar tais informagdes e imprime no Monitor Serial da IDE do Arduino, claro, tento conectado a mesma, o médulo Receptor. Neste momento, alimente com energia o médulo Transmissor em uma fonte independente, de preferéncia a alguma bateria, pois assim vocé podera até fazer teste de conexao entre os médulo LoRa a distancia, validando o proposto. Ou seja, conexdo entre controladoras transmitindo dados sem existéncia de rede WiFi ou Bluetootch por exemplo. Observe 0 Monitor Serial expressando 0 processamento do médulo Receptor, printando os dados enviados pelo médulo Transmissor. Confira na Figura 09 Figura 09 Laercio Guero Rodrigues 2199235 8440 laercio@resolved.com.br | 18-22 Ten (Xitel eT Ly Para entendimento do que propomos aqui, a informagao transmitida pelo médulo Transmissor e recuperada no médulo Receptor é “INILOMSG1234567890FIN”. Pa efeito de esclarecimento, considerando 0 mundo real, esses dados seguem a um protocolo, comumente adotado na comunicagao de controladoras e dispositivos em geral Atabe abaixo define a estrutura dos dados na proposta desse protocolo sugerido. Posi¢ao Inicial Posigdo Final Contetido Descrigao 1 3 INI Identifica 0 inico da informacao. 4 5 Lo Identifica qual controladora. 6 13 MSG1234567890 A mensagem em si. 14 16 FIN Identifica o fim da informagao Deste ponto em diante, nao aplicaremos cédigo, simplesmente vamos utilizar projetos jd desenvolvidos e testados, integrados via WiFi e protocolo UDP, cédigo esse embarcado no médulo LoRa Receptor, realizando comunica¢4o com o aplicativo Delphi DataSnap, no primeiro monto, sendo executado em um computador nas mesma rede que o médulo LoRa Receptor. A Figura 10 exemplifica isso, atestando o recebimento de dados enviados pelo médulo LoRa Transmissor ao médulo Lora Receptor, que por sua vez, envia usando a rede WiFi, com protocolo UDP ao aplicativo subjacente Delphi DataSnap. Suawioe MONITOR UDP - LoRa Figura 10 Laercio Guero Rodrigues 2199235 8440 laercio@resolved.com.br | 19-22 (Xitel eT Ly Bom, para fechar com chave de ouro, seria interessante implementar conexdo entre a aplicagéo DataSnap em execugaio na rede local, que j4 estabelece comunicag&o com dispositivos na rede (controladoras em geral), com um Servidor MQTT, que por natureza, pode receber uma publicacao (no nosso caso os dados gerados e capturados pelos médulo LoRa, enviados ao Servidor DataSnap local. Uma vez publicado (apés conexao) em um Servidor MQTT em Cloud, tais dados podem ser enviados a todos os aplicativos que subscrevam o tépico publicado podem receber (e receberao) esses dados, ou algo resultante do tratamento a ele. Para tanto, basta hospedar o Servidor MQTT Mosquito em um cloud (usarei o meu), apontando a aplicagdo de Rede Servidor DataSnap para o IP/Porta que esteja sendo executado 0 Servidor MQTT Mosquito, Atitulo de exemplo, nosso Servidor DataSnap enviara os dados atribuindo um tépico de identificagao, e ao mesmo tempo se inscreve neste t6pico para receber de volta a mesma mensagem. Claro, poderfamos implementar um outro Servidor DataSnap e por em Cloud, e esse também inscrito neste tépico, poderia tratar, alterar a mensagem e devolver usando o mesmo Servidor MQTT Mosquito, fazendo chegar a outros incritos no tépico (nosso Servidor DataSnap na rede local e qualque dispositive na mesma rede) tais dados. E um mundo de possibilidades inimaginavel, tornando cada ponto conectado a rede local (controladora LoRa, outras controladoras e o préprio sistema monitor Servidor DataSnap) habilitados a receber e enviar dados uns aos outros, mesmo estando tais em redes diferentes, distantes, sem a existéncia de enderegos fixos de web. E a gloria, 6 a cereja do bolo. Bom, ndo desenvolveremos a implantagaio do Servidor MQTT mosquito aqui, mas vamos utilizar 0 que j4 tenho pronto, mas tendo a oportunidade de ver via Monitor da aplicagaio Delphi DataSnap e resultado disso. Repare na imagem da Figura 11, o Servidor MQTT Mosquito em execugao no Cloud de endereco 177.70.23.225, executando na Porta 1883. Qualquer aplicativo inscrito no mesmo Tépico, apontado sua conexao para este enderego, rebera informagées enviada no Téipico. Varios Tépicos podem ser definidos pelas conexdes que enviam, claro, os inscritos receberao esses dados imediatamente. Desta forma, criamos uma rede distribufda, onde cada enderego IP executando um aplicativo conectado ao IP 177.70.23.225, na Porta 1883 participa dinamicamente das mensagens trafegadas. Laercio Guero Rodrigues 2199235 8440 laercio@resolved.com.br | 20-22 Perea Controlando Coisas A Figura 11 exibe 0 Servidor MQTT Mosquito executando em Cloud Figura 11 A Figura exibem além do Servidor MQTT Mosquito executando em Cloud, quanto uma aplicagao Cliente MQTT conectado ao mesmo Servidor MQTT, usando 0 Tépico Artigo. oe nN ot Sone pt erie ret [77 ro: F aM ED oes pas ue I it Figura 12 Laercio Guero Rodrigues 2199235 8440 laercio@resolved.com.br | 21-22 Ten (Xitel eT Ly Concluindo, temos a Figura 13, exibindo o Servidor DataSnap Local (rede local) recebendo dados do Médulo LoRa Receptor, enviando e recebendo dados do Servidor MQTT Mosquito no Cloud. Isso é fantastico, pois netse projeto exemplo, trafegamos dados entre LoRa Transmissor, LoRa Receptor, Servidor DataSnap da rede com o Servidor MQTT Mosquito em Cloud. Qualquer dispositive, em rede ou no pode participar deste processo, bastando apenas que um né LoRa esteja conectado a Rede, implementando acesso aos outros dispositivos conectados a mesma rede via WiFI/UDP, e a outros via MQTT e um Servidor em Cloud, Mais uma vez, fantastico. @uowiToR osssun ee ® MONITOR UDP - LoRa as 192.108.0100 | pone 26700 | ater OP Datos: [MIOLEC2N9FIN | EnviarDado | Linpar Figura 13 Bom, vamos ficar por aqui, deixando o canal aberto para troca de ideias sobre este artigo, e fica també 0 convite para participar de um curso (ver informagdes detalhadas em https:/iwww.dropbox.com/s/11vemaan2iqoixciCursoDelphiloT.pdf?dI=0) que implementa passao a passo todos os projetos aqui criados e utilizados Um forte abraco Laercio Guerlgo Rodrigues Laercio Guero Rodrigues 2199235 8440 laercio@resolved.com.br | 22-22

Você também pode gostar