{"id":1469,"date":"2017-07-04T19:02:40","date_gmt":"2017-07-04T19:02:40","guid":{"rendered":"http:\/\/blog.usinainfo.com.br\/?p=1469"},"modified":"2019-08-07T15:55:20","modified_gmt":"2019-08-07T18:55:20","slug":"scadabr-arduino-comunicando-atraves-do-protocolo-tcp-ip","status":"publish","type":"post","link":"https:\/\/www.usinainfo.com.br\/blog\/scadabr-arduino-comunicando-atraves-do-protocolo-tcp-ip\/","title":{"rendered":"ScadaBR Arduino Comunicando atrav\u00e9s do protocolo TCP\/IP"},"content":{"rendered":"<p style=\"text-align: justify;\">De acordo com os artigos anteriores foi demonstrado para o leitor que, para realizar a intera\u00e7\u00e3o entre o <em>Arduino UNO<\/em> e o <em>ScadaBR<\/em> foi necess\u00e1rio utilizar um protocolo de comunica\u00e7\u00e3o chamado <em>Modbus,<\/em> no entanto, este protocolo possui basicamente duas vers\u00f5es que podem cumprir este papel, estas s\u00e3o: <em>Modbus Serial<\/em> e <em>Modbus TCP\/IP<\/em>. Vamos ent\u00e3o para mais um posto <strong>ScadaBR Arduino<\/strong>.<\/p>\n<p style=\"text-align: justify;\">O objetivo deste conte\u00fado \u00e9 abordar novamente a quest\u00e3o da comunica\u00e7\u00e3o entre o <em>Arduino UNO<\/em>\u00a0e o <em>ScadaBR<\/em>, por\u00e9m, desta vez, por meio da vers\u00e3o\u00a0<em>Modbus TCP\/IP<\/em>. Como pode-se perceber, esta abordagem possibilita que as informa\u00e7\u00f5es provenientes das leituras das vari\u00e1veis e as utilizadas nos acionamentos, possam ser transmitidas via rede.<\/p>\n<p>&nbsp;<\/p>\n<h2><strong>Produtos Utilizados no Projeto:<\/strong><\/h2>\n<ul>\n<li><a href=\"https:\/\/www.usinainfo.com.br\/compativeis\/arduino-uno-r3-cabo-usb-3513.html\" target=\"_blank\" rel=\"noopener noreferrer\">1 Arduino UNO + Cabo USB AB<\/a><\/li>\n<li><a href=\"https:\/\/www.usinainfo.com.br\/shields-para-arduino\/ethernet-shield-r3-w5100-para-arduino-2753.html\" target=\"_blank\" rel=\"noopener noreferrer\">1 Shield Ethernet<\/a><\/li>\n<li><a href=\"https:\/\/www.usinainfo.com.br\/resistores\/resistor-10k-14w-kit-com-10-unidades-2975.html\" target=\"_blank\" rel=\"noopener noreferrer\">1 Resistor 10k\u00a0\u03a9 1\/4 W<\/a><\/li>\n<li><a href=\"https:\/\/www.usinainfo.com.br\/protoboard-e-jumpers\/protoboard-830-pontos-para-montagem-de-projetos-3733.html\" target=\"_blank\" rel=\"noopener noreferrer\">1 Protoboard<\/a><\/li>\n<li><a href=\"https:\/\/www.usinainfo.com.br\/sensores-para-arduino\/sensor-de-umidade-e-temperatura-dht11-2823.html\" target=\"_blank\" rel=\"noopener noreferrer\">Sensor de umidade\u00a0e temperatura DHT 11<\/a><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h2><strong>Montagem F\u00edsica (Hardware):<\/strong><\/h2>\n<div id=\"attachment_1577\" style=\"width: 922px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2017\/06\/mterial.jpg\" data-rel=\"lightbox-image-0\" data-rl_title=\"\" data-rl_caption=\"\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-1577\" class=\"wp-image-1577 size-full\" title=\"\" src=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2017\/06\/mterial.png\" alt=\"\" width=\"912\" height=\"570\" srcset=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2017\/06\/mterial.png 912w, https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2017\/06\/mterial-300x188.png 300w, https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2017\/06\/mterial-768x480.png 768w, https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2017\/06\/mterial-298x186.png 298w\" sizes=\"auto, (max-width: 912px) 100vw, 912px\" \/><\/a><p id=\"caption-attachment-1577\" class=\"wp-caption-text\">Esquem\u00e1tico Projeto para Comunica\u00e7\u00e3o ScadaBR com Arduino<\/p><\/div>\n<p>&nbsp;<\/p>\n<h2><strong>Desenvolvimento do C\u00f3digo para ScadaBR Arduino:<\/strong><\/h2>\n<p style=\"text-align: justify;\">Neste ponto, ser\u00e3o demonstrados todos os passos para o desenvolvimento do c\u00f3digo que deve ser inserido no <em><strong>A<\/strong>rduino UNO<\/em> para que seja poss\u00edvel realizar as leituras provenientes do sensor DHT11 atrav\u00e9s do <em>ScadaBR<\/em>.<\/p>\n<p style=\"text-align: justify;\">O primeiro passo para o estabelecimento da comunica\u00e7\u00e3o entre os dois elementos consiste na inclus\u00e3o das bibliotecas adequadas para a utiliza\u00e7\u00e3o do protocolo <em>Modbus TCP\/IP\u00a0<\/em>no c\u00f3digo do <em>Arduino UNO<\/em>. As bibliotecas utilizadas neste artigo foram desenvolvidas pelo<em> Andr\u00e9 Sarmento<\/em> e est\u00e3o dispon\u00edveis <a href=\"https:\/\/github.com\/andresarmento\/modbus-arduino\/tree\/master\/libraries\">aqui<\/a>.<\/p>\n<p style=\"text-align: justify;\">O desenvolvimento do c\u00f3digo come\u00e7a com a inclus\u00e3o da bibliotecas\u00a0<em>Modbus.h <\/em>e <em>ModbusIP.h <\/em>por meio da diretiva #<em>include<\/em>.<\/p>\n<p>&nbsp;<\/p>\n<pre class=\"lang:csharp decode:1 \" >\r\n#include &amp;lt;SPI.h&amp;gt;;\r\n\r\n#include &amp;lt;Ethernet.h&amp;gt;;\r\n\r\n#include &amp;lt;Modbus.h&amp;gt;;\r\n\r\n#include &amp;lt;ModbusIP.h&amp;gt;;\r\n\r\n#include &amp;lt;DHT.h&amp;gt;;\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\">Em seguida, deve-se criar o objeto do tipo <em>DHT<\/em> para representar o sensor <em>DHT11<\/em> no c\u00f3digo do <em>Arduino UNO.<\/em><\/p>\n<p>&nbsp;<\/p>\n<pre class=\"lang:csharp decode:1 \" >\r\nDHT dht(A0, DHT11);\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\">Como o objetivo desta aplica\u00e7\u00e3o \u00e9 simplesmente realizar a leitura de dados, utiliza-se a inst\u00e2ncia denominada <em>Input Register. <\/em>Lembre-se que, neste caso, deseja-se obter tanto os valores de temperatura quanto os de umidade, portanto, duas inst\u00e2ncias do tipo citado devem ser utilizadas<em>\u00a0<\/em>para armazenar as informa\u00e7\u00f5es em quest\u00e3o. Sendo assim, determina-se os <em>offsets<\/em> das\u00a0<em>inst\u00e2ncias<\/em> citadas anteriormente.<\/p>\n<p>&nbsp;<\/p>\n<pre class=\"lang:csharp decode:1 \" >\r\nconst int TEMP_IREG = 0;\r\nconst int UMI_IREG= 1; \r\n<\/pre>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\">Antes de prosseguir para a fun\u00e7\u00e3o <em>setup()<\/em>, deve-se criar o objeto do tipo <em>ModbusIP.<\/em><\/p>\n<p>&nbsp;<\/p>\n<pre class=\"lang:csharp decode:1 \" >\r\nModbusIP mb;\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\">Al\u00e9m disso, declara-se uma vari\u00e1vel do tipo long para auxiliar na contagem de tempo para a realiza\u00e7\u00e3o da leitura do sensor (recomenda-se que seja utilizado um valor de aproximadamente 2 segundos na realiza\u00e7\u00e3o das leituras).<\/p>\n<p>&nbsp;<\/p>\n<pre class=\"lang:csharp decode:1 \" >\r\nlong ts;\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\">Na fun\u00e7\u00e3o <em>Setup(), <\/em>pode-se perceber que existem <em>tr\u00eas blocos<\/em> de c\u00f3digo, de modo que, o primeiro diz respeito \u00e0 <em>configura\u00e7\u00e3o dos par\u00e2metros de comunica\u00e7\u00e3o do protocolo <\/em>(deve-se ficar atento apenas \u00e0 escolha de um endere\u00e7o de ip compat\u00edvel com a rede local que est\u00e1 sendo utilizada) e \u00e0 inicializa\u00e7\u00e3o da comunica\u00e7\u00e3o propriamente dita.<\/p>\n<p style=\"text-align: justify;\">O segundo bloco de c\u00f3digo \u00e9 respons\u00e1vel pela <em>cria\u00e7\u00e3o das instancias utilizados<\/em>\u00a0do tipo\u00a0<em>Input register<\/em>, citadas anteriormente.<\/p>\n<p style=\"text-align: justify;\">Por \u00faltimo, deve-se inicializar o <em>sensor DHT11<\/em> e preencher a vari\u00e1vel <em>ts <\/em>com o valor proporcionado pela fun\u00e7\u00e3o\u00a0<em>millis()<\/em>, para ent\u00e3o, realizar a leitura do sensor em intervalos de tempo predeterminados.<\/p>\n<p>&nbsp;<\/p>\n<pre class=\"lang:csharp decode:1 \" >\r\nvoid setup() {\r\n    \r\n    \/\/Bloco 1\r\n    byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; \r\n    byte ip[] = { 192, 168, 26, 50 };   \r\n    mb.config(mac, ip);\r\n\r\n    \/\/Bloco 2\r\n    mb.addIreg(TEMP_IREG);\r\n    mb.addIreg(UMI_IREG);\r\n\r\n    \/\/ Bloco 3\r\n    dht.begin();    \r\n    ts = millis();\r\n}\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\">J\u00e1 dentro da fun\u00e7\u00e3o <em>loop()<\/em>,<i>\u00a0<\/i>encontra-se\u00a0a fun\u00e7\u00e3o <em>task()<\/em>, utilizada para gerenciar a comunica\u00e7\u00e3o e a troca de dados entre os dispositivos que est\u00e3o conectados atrav\u00e9s do protocolo <em>Modbus<\/em>.<\/p>\n<p style=\"text-align: justify;\">Al\u00e9m da fun\u00e7\u00e3o citada, pode-se perceber a exist\u00eancia de uma estrutura condicional\u00a0<em>IF<\/em> cujo conte\u00fado consiste em determinar que seja feita a leitura do sensor a cada 2 segundos. Observe que as fun\u00e7\u00f5es utilizadas para inserir os dados nas inst\u00e2ncias criadas s\u00e3o: <em>readTemperature()<\/em> e <em>readHumidity()<\/em>.<\/p>\n<p>&nbsp;<\/p>\n<pre class=\"lang:csharp decode:1 \" >\r\nvoid loop() {\r\n  \r\n   mb.task();\r\n   \r\n \r\n   if (millis() &amp;gt; ts + 2000) {   \r\n       ts = millis();\r\n       mb.Ireg(TEMP_IREG, dht.readTemperature());\r\n       mb.Ireg(UMI_IREG, dht.readHumidity());\r\n   } \r\n}\r\n<\/pre>\n<p>&nbsp;<\/p>\n<h2><strong>Desenvolvimento da Estrutura de Controle no Scadabr Arduino<\/strong><\/h2>\n<p style=\"text-align: justify;\">Assim como nos artigos anteriores, o primeiro passo para prosseguir com o desenvolvimento de uma aplica\u00e7\u00e3o no <em>ScadaBR<\/em> consiste na cria\u00e7\u00e3o de um <em>Data source<\/em>, ou seja, na defini\u00e7\u00e3o do elemento respons\u00e1vel por fornecer os dados do processo para o <em>ScadaBR.<\/em><\/p>\n<p>&nbsp;<\/p>\n<div id=\"attachment_1586\" style=\"width: 643px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2017\/06\/datasourcetcp.jpg\" data-rel=\"lightbox-image-1\" data-rl_title=\"\" data-rl_caption=\"\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-1586\" class=\"wp-image-1586 size-full\" title=\"\" src=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2017\/06\/datasourcetcp.png\" alt=\"\" width=\"633\" height=\"328\" srcset=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2017\/06\/datasourcetcp.png 633w, https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2017\/06\/datasourcetcp-300x155.png 300w\" sizes=\"auto, (max-width: 633px) 100vw, 633px\" \/><\/a><p id=\"caption-attachment-1586\" class=\"wp-caption-text\">Data Source Criado Scadabr Arduino<\/p><\/div>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\">Posteriormente, deve-se fornecer algumas informa\u00e7\u00f5es para o\u00a0ScadaBR\u00a0visando a identifica\u00e7\u00e3o do dispositivo e a defini\u00e7\u00e3o do tempo em que os dados ser\u00e3o atualizados no ScadaBR Arduino (esta informa\u00e7\u00e3o \u00e9 muito importante, sendo assim, torna-se fundamental que o leitor tenha conhecimento da aplica\u00e7\u00e3o que est\u00e1 desenvolvendo para que a escolha deste par\u00e2metro resulte em um funcionamento eficaz do projeto).<\/p>\n<p style=\"text-align: justify;\">Al\u00e9m destas configura\u00e7\u00f5es, deve-se especificar tamb\u00e9m os par\u00e2metros relativos \u00e0 comunica\u00e7\u00e3o, como por exemplo: o\u00a0<em>Tipo de transporte<\/em> utilizado e tamb\u00e9m o\u00a0<em>Endere\u00e7o IP<\/em> do <em>Arduino UNO<\/em>.<\/p>\n<p>&nbsp;<\/p>\n<div id=\"attachment_1587\" style=\"width: 688px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2017\/06\/CRIA\u00c7\u00c3O-DO-DATA-SOURCE.jpg\" data-rel=\"lightbox-image-2\" data-rl_title=\"\" data-rl_caption=\"\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-1587\" class=\"wp-image-1587 \" title=\"\" src=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2017\/06\/CRIA\u00c7\u00c3O-DO-DATA-SOURCE.png\" alt=\"\" width=\"678\" height=\"428\" srcset=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2017\/06\/CRIA\u00c7\u00c3O-DO-DATA-SOURCE.png 818w, https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2017\/06\/CRIA\u00c7\u00c3O-DO-DATA-SOURCE-300x189.png 300w, https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2017\/06\/CRIA\u00c7\u00c3O-DO-DATA-SOURCE-768x484.png 768w\" sizes=\"auto, (max-width: 678px) 100vw, 678px\" \/><\/a><p id=\"caption-attachment-1587\" class=\"wp-caption-text\">Propriedades do Data source Scadabr Arduino<\/p><\/div>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\">Ap\u00f3s a determina\u00e7\u00e3o do <em>Data source<\/em> deve-se criar os <em>Data points<\/em> correspondentes aos elementos de hardware que ser\u00e3o utilizados. Inicialmente, cria-se um novo <em>Data point<\/em> para interagir com a inst\u00e2ncia do tipo<em>\u00a0Input register\u00a0<\/em>denominada <em>TEMP_IREG<\/em> e em seguida deve-se definir seus campos da seguinte forma:<\/p>\n<p>&nbsp;<\/p>\n<ul>\n<li>No campo Faixa do registro deve-se selecionar a op\u00e7\u00e3o\u00a0<em>Input register.<\/em><\/li>\n<li>O campo\u00a0<em>Tipo de dados modbus\u00a0<\/em>estar\u00e1 automaticamente definido como\u00a0<em>Inteiro de 2 bytes sem sinal.<\/em><\/li>\n<li>Deve-se atribuir o valor <em>0<\/em> ao campo <em>Offset<\/em>, devido ao fato de o<em>\u00a0Input register TEMP_IREG\u00a0<\/em>ter sido a primeira inst\u00e2ncia deste tipo a ser adicionada no c\u00f3digo (lembre-se que a ordem come\u00e7a a ser contada a partir do <em>0<\/em> e n\u00e3o do <em>1<\/em>).<\/li>\n<li>Lembre-se de deixar a caixa de sele\u00e7\u00e3o desmarcada para que o <em>Data point<\/em>\u00a0n\u00e3o possa ser alterado manualmente.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<div id=\"attachment_1588\" style=\"width: 697px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2017\/06\/datapointtemperatura.jpg\" data-rel=\"lightbox-image-3\" data-rl_title=\"\" data-rl_caption=\"\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-1588\" class=\"wp-image-1588 size-full\" title=\"\" src=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2017\/06\/datapointtemperatura.png\" alt=\"\" width=\"687\" height=\"344\" srcset=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2017\/06\/datapointtemperatura.png 687w, https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2017\/06\/datapointtemperatura-300x150.png 300w\" sizes=\"auto, (max-width: 687px) 100vw, 687px\" \/><\/a><p id=\"caption-attachment-1588\" class=\"wp-caption-text\">Data point Temperatura Scadabr Arduino<\/p><\/div>\n<p>&nbsp;<\/p>\n<p>O segundo Data point a ser criado servir\u00e1 para interagir com a inst\u00e2ncia do tipo <em>Input<\/em><\/p>\n<p><em> register<\/em> denominada <em>UMI_I<\/em><em>REG<\/em>. Seus campos devem ser definidos da seguinte forma:<\/p>\n<p>&nbsp;<\/p>\n<ul>\n<li>No campo Faixa do registro deve-se selecionar a op\u00e7\u00e3o\u00a0<em>Input register.<\/em><\/li>\n<li>O campo\u00a0<em>Tipo de dados modbus\u00a0<\/em>estar\u00e1 automaticamente definido como\u00a0<em>Inteiro de 2 bytes sem sinal.<\/em><\/li>\n<li>Deve-se atribuir o valor <i>1<\/i>\u00a0ao campo <em>Offset<\/em>, devido ao fato de o<em>\u00a0Input register UMI_IREG\u00a0<\/em>ter sido a primeira inst\u00e2ncia deste tipo a ser adicionada no c\u00f3digo (lembre-se que a ordem come\u00e7a a ser contada a partir do <em>0<\/em> e n\u00e3o do <em>1<\/em>).<\/li>\n<li>Lembre-se de deixar a caixa de sele\u00e7\u00e3o desmarcada para que o <em>Data point<\/em>\u00a0n\u00e3o possa ser alterado manualmente.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<div id=\"attachment_1589\" style=\"width: 697px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2017\/06\/datapointumidade.jpg\" data-rel=\"lightbox-image-4\" data-rl_title=\"\" data-rl_caption=\"\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-1589\" class=\"wp-image-1589 size-full\" title=\"\" src=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2017\/06\/datapointumidade.png\" alt=\"\" width=\"687\" height=\"344\" srcset=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2017\/06\/datapointumidade.png 687w, https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2017\/06\/datapointumidade-300x150.png 300w\" sizes=\"auto, (max-width: 687px) 100vw, 687px\" \/><\/a><p id=\"caption-attachment-1589\" class=\"wp-caption-text\">Data Point Umidade Scadabr Arduino<\/p><\/div>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\">A figura a seguir mostra como os Data points est\u00e3o organizados os ap\u00f3s a cria\u00e7\u00e3o realizada anteriormente. Neste momento, deve-se habilitar o Data point clicando no \u00edcone adequado, conforme apresentado na figura abaixo.<\/p>\n<p>&nbsp;<\/p>\n<div id=\"attachment_1590\" style=\"width: 676px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2017\/06\/DATA-POINTS-CRIADOS-2.jpg\" data-rel=\"lightbox-image-5\" data-rl_title=\"\" data-rl_caption=\"\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-1590\" class=\"wp-image-1590 size-full\" title=\"\" src=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2017\/06\/DATA-POINTS-CRIADOS-2.png\" alt=\"\" width=\"666\" height=\"225\" srcset=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2017\/06\/DATA-POINTS-CRIADOS-2.png 666w, https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2017\/06\/DATA-POINTS-CRIADOS-2-300x101.png 300w\" sizes=\"auto, (max-width: 666px) 100vw, 666px\" \/><\/a><p id=\"caption-attachment-1590\" class=\"wp-caption-text\">Data points criados Scadabr Arduino<\/p><\/div>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\">Neste momento o leitor deve acessar a\u00a0Watch list\u00a0para conferir se o Data Point em quest\u00e3o foi criado e clicar na seta para visualizar o conte\u00fado dos <em>Data points<\/em> criados.<\/p>\n<p>&nbsp;<\/p>\n<div id=\"attachment_1591\" style=\"width: 731px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2017\/06\/WATCH-LIST-FINAL.jpg\" data-rel=\"lightbox-image-6\" data-rl_title=\"\" data-rl_caption=\"\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-1591\" class=\"wp-image-1591 size-full\" title=\"\" src=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2017\/06\/WATCH-LIST-FINAL.png\" alt=\"\" width=\"721\" height=\"94\" srcset=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2017\/06\/WATCH-LIST-FINAL.png 721w, https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2017\/06\/WATCH-LIST-FINAL-300x39.png 300w\" sizes=\"auto, (max-width: 721px) 100vw, 721px\" \/><\/a><p id=\"caption-attachment-1591\" class=\"wp-caption-text\">Data points em funcionamento Scadabr Arduino<\/p><\/div>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\">Este foi mais um conte\u00fado que preparamos com bastante cuidado para voc\u00ea. Esperamos que tenha gostado do artigo &#8220;ScadaBR Arduino Comunicando atrav\u00e9s do protocolo TCP\/IP&#8221;. Lembre-se de deixar suas d\u00favidas, cr\u00edticas e sugest\u00f5es nos coment\u00e1rios abaixo.<\/p>\n<p>Conhe\u00e7a toda <a href=\"https:\/\/www.usinainfo.com.br\/arduino-e-eletroeletronica-74\" target=\"_blank\" rel=\"noopener noreferrer\">Linha de Produtos Arduino no Site UsinaInfo<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>De acordo com os artigos anteriores foi demonstrado para o leitor que, para realizar a intera\u00e7\u00e3o entre o Arduino UNO e o ScadaBR foi necess\u00e1rio utilizar um protocolo de comunica\u00e7\u00e3o chamado Modbus, no entanto, este protocolo possui basicamente duas vers\u00f5es que podem cumprir este papel, estas s\u00e3o: Modbus Serial e Modbus TCP\/IP. Vamos ent\u00e3o para mais um posto ScadaBR Arduino. O objetivo deste conte\u00fado \u00e9 abordar novamente a quest\u00e3o da comunica\u00e7\u00e3o entre o Arduino UNO\u00a0e o ScadaBR, por\u00e9m, desta vez, por meio da vers\u00e3o\u00a0Modbus TCP\/IP. Como pode-se perceber, esta abordagem possibilita que as informa\u00e7\u00f5es provenientes das leituras das vari\u00e1veis e as utilizadas nos acionamentos, possam ser transmitidas via rede. &nbsp; Produtos Utilizados no Projeto: 1 Arduino UNO + Cabo USB [&hellip;]<\/p>\n","protected":false},"author":8,"featured_media":1602,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[],"class_list":["post-1469","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-scadabr"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>ScadaBR Arduino Comunicando atrav\u00e9s de TCP\/IP - Blog Usinainfo<\/title>\n<meta name=\"description\" content=\"Projeto ScadaBR Arduino Comunicando atrav\u00e9s do protocolo TCP\/IP Voc\u00ea Encontra no Blog UsinaInfo. Confira o Tutorial Passo a Passo.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.usinainfo.com.br\/blog\/scadabr-arduino-comunicando-atraves-do-protocolo-tcp-ip\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"ScadaBR Arduino Comunicando atrav\u00e9s de TCP\/IP - Blog Usinainfo\" \/>\n<meta property=\"og:description\" content=\"Projeto ScadaBR Arduino Comunicando atrav\u00e9s do protocolo TCP\/IP Voc\u00ea Encontra no Blog UsinaInfo. Confira o Tutorial Passo a Passo.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.usinainfo.com.br\/blog\/scadabr-arduino-comunicando-atraves-do-protocolo-tcp-ip\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog Usinainfo\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/pt-br.facebook.com\/faceusinainfo\/\" \/>\n<meta property=\"article:published_time\" content=\"2017-07-04T19:02:40+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-08-07T18:55:20+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2017\/07\/Capa_do_artigo-okokok.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1280\" \/>\n\t<meta property=\"og:image:height\" content=\"720\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Daniel Madeira\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Daniel Madeira\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. tempo de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutos\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"ScadaBR Arduino Comunicando atrav\u00e9s de TCP\/IP - Blog Usinainfo","description":"Projeto ScadaBR Arduino Comunicando atrav\u00e9s do protocolo TCP\/IP Voc\u00ea Encontra no Blog UsinaInfo. Confira o Tutorial Passo a Passo.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.usinainfo.com.br\/blog\/scadabr-arduino-comunicando-atraves-do-protocolo-tcp-ip\/","og_locale":"pt_BR","og_type":"article","og_title":"ScadaBR Arduino Comunicando atrav\u00e9s de TCP\/IP - Blog Usinainfo","og_description":"Projeto ScadaBR Arduino Comunicando atrav\u00e9s do protocolo TCP\/IP Voc\u00ea Encontra no Blog UsinaInfo. Confira o Tutorial Passo a Passo.","og_url":"https:\/\/www.usinainfo.com.br\/blog\/scadabr-arduino-comunicando-atraves-do-protocolo-tcp-ip\/","og_site_name":"Blog Usinainfo","article_publisher":"https:\/\/pt-br.facebook.com\/faceusinainfo\/","article_published_time":"2017-07-04T19:02:40+00:00","article_modified_time":"2019-08-07T18:55:20+00:00","og_image":[{"width":1280,"height":720,"url":"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2017\/07\/Capa_do_artigo-okokok.jpg","type":"image\/jpeg"}],"author":"Daniel Madeira","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"Daniel Madeira","Est. tempo de leitura":"7 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.usinainfo.com.br\/blog\/scadabr-arduino-comunicando-atraves-do-protocolo-tcp-ip\/#article","isPartOf":{"@id":"https:\/\/www.usinainfo.com.br\/blog\/scadabr-arduino-comunicando-atraves-do-protocolo-tcp-ip\/"},"author":{"name":"Daniel Madeira","@id":"https:\/\/www.usinainfo.com.br\/blog\/#\/schema\/person\/4be52d8f31790e9c812406686ed9314b"},"headline":"ScadaBR Arduino Comunicando atrav\u00e9s do protocolo TCP\/IP","datePublished":"2017-07-04T19:02:40+00:00","dateModified":"2019-08-07T18:55:20+00:00","mainEntityOfPage":{"@id":"https:\/\/www.usinainfo.com.br\/blog\/scadabr-arduino-comunicando-atraves-do-protocolo-tcp-ip\/"},"wordCount":1273,"commentCount":3,"image":{"@id":"https:\/\/www.usinainfo.com.br\/blog\/scadabr-arduino-comunicando-atraves-do-protocolo-tcp-ip\/#primaryimage"},"thumbnailUrl":"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2017\/07\/Capa_do_artigo-okokok.jpg","articleSection":["ScadaBR"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.usinainfo.com.br\/blog\/scadabr-arduino-comunicando-atraves-do-protocolo-tcp-ip\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.usinainfo.com.br\/blog\/scadabr-arduino-comunicando-atraves-do-protocolo-tcp-ip\/","url":"https:\/\/www.usinainfo.com.br\/blog\/scadabr-arduino-comunicando-atraves-do-protocolo-tcp-ip\/","name":"ScadaBR Arduino Comunicando atrav\u00e9s de TCP\/IP - Blog Usinainfo","isPartOf":{"@id":"https:\/\/www.usinainfo.com.br\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.usinainfo.com.br\/blog\/scadabr-arduino-comunicando-atraves-do-protocolo-tcp-ip\/#primaryimage"},"image":{"@id":"https:\/\/www.usinainfo.com.br\/blog\/scadabr-arduino-comunicando-atraves-do-protocolo-tcp-ip\/#primaryimage"},"thumbnailUrl":"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2017\/07\/Capa_do_artigo-okokok.jpg","datePublished":"2017-07-04T19:02:40+00:00","dateModified":"2019-08-07T18:55:20+00:00","author":{"@id":"https:\/\/www.usinainfo.com.br\/blog\/#\/schema\/person\/4be52d8f31790e9c812406686ed9314b"},"description":"Projeto ScadaBR Arduino Comunicando atrav\u00e9s do protocolo TCP\/IP Voc\u00ea Encontra no Blog UsinaInfo. Confira o Tutorial Passo a Passo.","breadcrumb":{"@id":"https:\/\/www.usinainfo.com.br\/blog\/scadabr-arduino-comunicando-atraves-do-protocolo-tcp-ip\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.usinainfo.com.br\/blog\/scadabr-arduino-comunicando-atraves-do-protocolo-tcp-ip\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.usinainfo.com.br\/blog\/scadabr-arduino-comunicando-atraves-do-protocolo-tcp-ip\/#primaryimage","url":"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2017\/07\/Capa_do_artigo-okokok.jpg","contentUrl":"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2017\/07\/Capa_do_artigo-okokok.jpg","width":1280,"height":720},{"@type":"BreadcrumbList","@id":"https:\/\/www.usinainfo.com.br\/blog\/scadabr-arduino-comunicando-atraves-do-protocolo-tcp-ip\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"In\u00edcio","item":"https:\/\/www.usinainfo.com.br\/blog\/"},{"@type":"ListItem","position":2,"name":"ScadaBR Arduino Comunicando atrav\u00e9s do protocolo TCP\/IP"}]},{"@type":"WebSite","@id":"https:\/\/www.usinainfo.com.br\/blog\/#website","url":"https:\/\/www.usinainfo.com.br\/blog\/","name":"Blog Usinainfo","description":"Usinainfo","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.usinainfo.com.br\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Person","@id":"https:\/\/www.usinainfo.com.br\/blog\/#\/schema\/person\/4be52d8f31790e9c812406686ed9314b","name":"Daniel Madeira","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/secure.gravatar.com\/avatar\/32568476462ea2a95c2aba76afedc473d53105055f219249c5b25a4d4603e357?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/32568476462ea2a95c2aba76afedc473d53105055f219249c5b25a4d4603e357?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/32568476462ea2a95c2aba76afedc473d53105055f219249c5b25a4d4603e357?s=96&d=mm&r=g","caption":"Daniel Madeira"},"description":"Engenheiro eletricista graduado com \u00eanfase em Controle e Automa\u00e7\u00e3o pela Universidade Federal do Esp\u00edrito Santo - UFES e T\u00e9cnico em Eletrot\u00e9cnica pelo Instituto Federal do Esp\u00edrito Santo - IFES. Parceiro do site UsinaInfo.","url":"https:\/\/www.usinainfo.com.br\/blog\/author\/danielm\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.usinainfo.com.br\/blog\/wp-json\/wp\/v2\/posts\/1469","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.usinainfo.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.usinainfo.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.usinainfo.com.br\/blog\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/www.usinainfo.com.br\/blog\/wp-json\/wp\/v2\/comments?post=1469"}],"version-history":[{"count":26,"href":"https:\/\/www.usinainfo.com.br\/blog\/wp-json\/wp\/v2\/posts\/1469\/revisions"}],"predecessor-version":[{"id":3631,"href":"https:\/\/www.usinainfo.com.br\/blog\/wp-json\/wp\/v2\/posts\/1469\/revisions\/3631"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.usinainfo.com.br\/blog\/wp-json\/wp\/v2\/media\/1602"}],"wp:attachment":[{"href":"https:\/\/www.usinainfo.com.br\/blog\/wp-json\/wp\/v2\/media?parent=1469"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.usinainfo.com.br\/blog\/wp-json\/wp\/v2\/categories?post=1469"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.usinainfo.com.br\/blog\/wp-json\/wp\/v2\/tags?post=1469"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}