{"id":2801,"date":"2019-05-27T13:00:54","date_gmt":"2019-05-27T13:00:54","guid":{"rendered":"https:\/\/blog.usinainfo.com.br\/?p=2801"},"modified":"2021-06-18T17:12:44","modified_gmt":"2021-06-18T20:12:44","slug":"termostato-arduino-com-sensor-de-temperatura-ds18b20-e-rele","status":"publish","type":"post","link":"https:\/\/www.usinainfo.com.br\/blog\/termostato-arduino-com-sensor-de-temperatura-ds18b20-e-rele\/","title":{"rendered":"Termostato Arduino com Sensor de Temperatura DS18B20 e Rel\u00e9"},"content":{"rendered":"<h2>Termostato Arduino<\/h2>\n<p>As prensas t\u00e9rmicas, chocadeiras e diversos equipamentos que trabalham com sistema de aquecimento necessitam de um controle de temperatura. Esse controle \u00e9 utilizado, para manter a temperatura em um valor ajustado pelo usu\u00e1rio. Para isto, utilizamos um termostato.<\/p>\n<p>Por meio dele, realizamos o controle de temperatura e configuramos o valor de setpoint. O setpoint \u00e9 um valor de refer\u00eancia para controle da temperatura do sistema.<\/p>\n<p>Quando o valor de temperatura do ambiente for maior ou igual ao setpoint, o sistema desativa o aquecedor. Caso seja menor, o sistema liga o aquecedor.<\/p>\n<p>De acordo com seu funcionamento, desenvolveremos um termostato ON\/OFF com Arduino, a fim de realizar o controle do sistema. Assim como, utilizaremos o sensor de temperatura DS18B20, para monitorar a temperatura do sistema e apresentar na tela de LCD.<\/p>\n<p>Portanto, de acordo com valor de temperatura lido, ativaremos ou desativaremos o rel\u00e9, para controlar o aquecimento do sistema.<\/p>\n<p>A seguir, apresentaremos todo o projeto de constru\u00e7\u00e3o do termostato ON\/OFF.<\/p>\n<p>&nbsp;<\/p>\n<h2>Desenvolvendo o Termostato Arduino ON\/OFF<\/h2>\n<p>De acordo com o princ\u00edpio de funcionamento do dispositivo, ser\u00e3o implementadas as seguintes funcionalidades:<\/p>\n<ol>\n<li>Cria\u00e7\u00e3o de tela de confirma\u00e7\u00e3o, para altera\u00e7\u00e3o do valor da temperatura;<\/li>\n<li>Implementar fun\u00e7\u00e3o para salvar o valor de temperatura ajustada pelo usu\u00e1rio, mesmo que o sistema desligue e ligue novamente;<\/li>\n<li>Cria\u00e7\u00e3o de um teclado para configurar o valor da temperatura, de modo a utilizar apenas 2 bot\u00f5es;<\/li>\n<li>Trabalhar com o sensor de temperatura DS18B20;<\/li>\n<li>Cria\u00e7\u00e3o de Menus no LCD 16 x 2.<\/li>\n<\/ol>\n<p>E antes de come\u00e7armos, disponibilizamos toda a lista de materiais necess\u00e1rios para construir esse projeto.<\/p>\n<p>&nbsp;<\/p>\n<h3><strong>Lista de Materiais<\/strong><\/h3>\n<p>Todos os componentes eletr\u00f4nicos abaixo ser\u00e3o utilizados:<\/p>\n<ul>\n<li><a href=\"https:\/\/www.usinainfo.com.br\/compativeis\/arduino-uno-r3-cabo-usb-3513.html?\" target=\"_blank\" rel=\"noopener noreferrer\">01 Arduino UNO;<\/a><\/li>\n<li><a href=\"https:\/\/www.usinainfo.com.br\/sensor-de-temperatura-arduino\/ds18b20-sensor-de-temperatura-digital-dallas-2806.html\" target=\"_blank\" rel=\"noopener noreferrer\">01 Sensor de Temperatura DS18B20;<\/a><\/li>\n<li><a href=\"https:\/\/www.usinainfo.com.br\/protoboard-e-jumpers\/jumpers-para-protoboard-kit-com-65-conectores-macho-macho-1374.html\" target=\"_blank\" rel=\"noopener noreferrer\">01 Kit Jumpers;<\/a><\/li>\n<li><a href=\"https:\/\/www.usinainfo.com.br\/push-buttons\/push-buton-chave-tactil-5x5-para-projetos-kit-com-5-unidades-2989.html\" target=\"_blank\" rel=\"noopener noreferrer\">03 Bot\u00f5es Push Buton;<\/a><\/li>\n<li><a href=\"https:\/\/www.usinainfo.com.br\/displays-arduino\/display-lcd-16x2-com-fundo-azul-2304.html\" target=\"_blank\" rel=\"noopener noreferrer\">01 Display LCD 16 x 2;<\/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\">03 Resistores de 10kR;<\/a><\/li>\n<li><a href=\"https:\/\/www.usinainfo.com.br\/resistores\/resistor-470r-14w-kit-com-10-unidades-3009.html\" target=\"_blank\" rel=\"noopener noreferrer\">01 Resistor de 1kR;<\/a><\/li>\n<li><a href=\"https:\/\/www.usinainfo.com.br\/reles\/modulo-rele-5v-10a-1-canal-srd05-4763.html\" target=\"_blank\" rel=\"noopener noreferrer\">01 M\u00f3dulo rel\u00e9 de 1 Canal.<\/a><\/li>\n<\/ul>\n<p>A seguir, ser\u00e1 apresentaremos o circuito Termostato com o Arduino.<\/p>\n<p>&nbsp;<\/p>\n<h3>O Circuito do Termostato<\/h3>\n<p>No circuito da Figura 1, temos 3 push buttons. O 1 (+) e o 2 (-), respectivamente, s\u00e3o utilizados para incremento e decremento do valor de ajuste da temperatura.<\/p>\n<p>O bot\u00e3o 3 (set) \u00e9 utilizado para entrar nas configura\u00e7\u00f5es de temperatura ou salvar a temperatura ajustada pelo usu\u00e1rio.<\/p>\n<p>O LCD ser\u00e1 utilizado para receber e apresentar as telas e informa\u00e7\u00f5es de temperatura do sensor DS18B20 Arduino (4).<\/p>\n<p>&nbsp;<\/p>\n<div id=\"attachment_2980\" style=\"width: 2584px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/05\/TermostatoUsinaInfo.jpg\" data-rel=\"lightbox-image-0\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-2980\" class=\"size-full wp-image-2980\" src=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/05\/TermostatoUsinaInfo.jpg\" alt=\"Esquema Eletr\u00f4nico do Termostato\" width=\"2574\" height=\"1101\" \/><\/a><p id=\"caption-attachment-2980\" class=\"wp-caption-text\">Figura 1 &#8211; Esquema Eletr\u00f4nico do Circuito do Termostato.<\/p><\/div>\n<p>Quando a temperatura do sistema for menor que o valor ajustado pelo usu\u00e1rio, o rel\u00e9 ser\u00e1 acionado. Dessa forma, o aquecedor ligar\u00e1, para manter a temperatura do sistema.<\/p>\n<p>E agora, analisaremos todo o c\u00f3digo desenvolvido para controle do termostato Arduino.<\/p>\n<p>&nbsp;<\/p>\n<h3>An\u00e1lise do C\u00f3digo<\/h3>\n<p>Para este projeto, inclu\u00edmos as bibliotecas dos perif\u00e9ricos e dispositivos utilizados no projeto, conforme apresentado nas linhas 001 a 004.<\/p>\n<p>Os pinos do LCD foram configurados\u00a0 (Linhas 006 e 007) e iniciamos o processo de configura\u00e7\u00e3o do sensor DS18B20.<\/p>\n<h5>O Sensor DS18B20 Arduino<\/h5>\n<p>O Sensor DS18B20 \u00e9 um sensor digital que utiliza o protocolo 1-Wire (<a href=\"https:\/\/www.usinainfo.com.br\/blog\/modulo-8-digitos-com-display-7-segmentos-e-sensor-de-temperatura-a-prova-d-agua\/\">Saiba mais nesse outro artigo<\/a>).<\/p>\n<p>Portanto, \u00e9 um sensor digital com boa precis\u00e3o, confi\u00e1vel e com caracter\u00edstica parasite power (<a href=\"https:\/\/datasheets.maximintegrated.com\/en\/ds\/DS18B20-PAR.pdf\">Saiba mais sobre Parasite Power<\/a>).<\/p>\n<p>Nas linhas 009 a 017, fizemos a configura\u00e7\u00e3o de funcionamento do sensor DS18B20.<\/p>\n<p>E observe que na linha 10, o valor 8 \u00e9 definido com o nome ONE_WIRE_BUS. Isto serve para usarmos esse nome como refer\u00eancia ao pino digital 8, onde conectaremos o sensor de temperatura.<\/p>\n<p>Logo em seguida, criamos uma inst\u00e2ncia chamada oneWire e passamos o pino digital que o nosso sensor est\u00e1 conectado (ONE_WIRE_BUS ).<\/p>\n<p>No protocolo 1-Wire, o dispositivo se comunica por um \u00fanico fio e permite a comunica\u00e7\u00e3o de diversos dispositivos no mesmo barramentos (<a href=\"http:\/\/ww1.microchip.com\/downloads\/en\/appnotes\/01199a.pdf\">Leia este Application Note<\/a>).<\/p>\n<p>Por fim, passaremos oneWire como refer\u00eancia para que o objeto sensors possa saber que utilizaremos o sensor DS18B20 conectado ao pino digital 8. Logo, todos os dados do sensor ser\u00e3o lidos e manipulados pelas fun\u00e7\u00f5es da biblioteca DallasTemperatura.<\/p>\n<p>Consequentemente, para que possamos trabalhar com esses dados e dispositivos de entradas, necessitamos criar diversos tipos de vari\u00e1veis para manipular os dados de projeto.<\/p>\n<p>&nbsp;<\/p>\n<h3>Declara\u00e7\u00e3o de Vari\u00e1veis e Defini\u00e7\u00e3o de Dados<\/h3>\n<p>Foram declaradas diferentes vari\u00e1veis para armazenar os dados dos bot\u00f5es, estado dos bot\u00f5es e sensor, de acordo como comentado em cada vari\u00e1vel. E al\u00e9m da vari\u00e1vel, fizemos 2 defini\u00e7\u00f5es de extrema import\u00e2ncia no c\u00f3digo.<\/p>\n<p>Definimos o valor 120 como EndVerif e o valor 125 como EndTemp (Linhas 035 e 038).<\/p>\n<p>Esses dois valores ser\u00e3o utilizados para salvarmos dados nas posi\u00e7\u00f5es 120 e 125 da mem\u00f3ria EEPROM, referente ao nosso sensor de temperatura.<\/p>\n<p>Mas antes de iniciarmos a apresenta\u00e7\u00e3o da l\u00f3gica de grava\u00e7\u00e3o dos dados na mem\u00f3ria, devemos compreender o processo de configura\u00e7\u00e3o de cada dispositivo e sensor na fun\u00e7\u00e3o void setup.<\/p>\n<h4>Fun\u00e7\u00e3o void setup<\/h4>\n<p>Na fun\u00e7\u00e3o void setup, inicializamos o nosso LCD como 16 x 2 (Linha 043) e aguardamos um tempo de 500 ms para a sua inicializa\u00e7\u00e3o (Linha 045). Em seguida, imprimimos a mensagem Loja UsinaInfo por 3 segundos (Linhas 047 a 052), conforme apresentada na Figura 2.<\/p>\n<div id=\"attachment_3001\" style=\"width: 1042px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/05\/WhatsApp-Image-2019-05-24-at-16.41.10.jpeg\" data-rel=\"lightbox-image-1\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-3001\" class=\"size-full wp-image-3001\" src=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/05\/WhatsApp-Image-2019-05-24-at-16.41.10.jpeg\" alt=\"Mensagem Loja UsinaInfo.\" width=\"1032\" height=\"774\" srcset=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/05\/WhatsApp-Image-2019-05-24-at-16.41.10.jpeg 1032w, https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/05\/WhatsApp-Image-2019-05-24-at-16.41.10-300x225.jpeg 300w, https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/05\/WhatsApp-Image-2019-05-24-at-16.41.10-768x576.jpeg 768w, https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/05\/WhatsApp-Image-2019-05-24-at-16.41.10-1024x768.jpeg 1024w, https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/05\/WhatsApp-Image-2019-05-24-at-16.41.10-322x242.jpeg 322w, https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/05\/WhatsApp-Image-2019-05-24-at-16.41.10-320x240.jpeg 320w\" sizes=\"auto, (max-width: 1032px) 100vw, 1032px\" \/><\/a><p id=\"caption-attachment-3001\" class=\"wp-caption-text\">Figura 2 &#8211; Apresenta\u00e7\u00e3o da mensagem Loja UsinaInfo.<\/p><\/div>\n<p>Em seguida, realizamos 4 comandos de configura\u00e7\u00e3o:<\/p>\n<ol>\n<li>Inicializa\u00e7\u00e3o do sensor DS18B20 Arduino (Linha 055);<\/li>\n<li>Limpeza da tela do LCD 16 x 2 (Linha 057).<\/li>\n<li>Configura\u00e7\u00e3o do pino de conex\u00e3o do rel\u00e9 como sa\u00edda digital (Linha 059);<\/li>\n<li>Leitura do valor de temperatura salvo na mem\u00f3ria (Linha 061).<\/li>\n<\/ol>\n<p>O ponto quarto comando de configura\u00e7\u00e3o \u00e9 bastante \u00fatil. Atrav\u00e9s desse comando, conseguimos resgatar\u00a0 na inicializa\u00e7\u00e3o, o valor de temperatura ajustado pelo usu\u00e1rio. A seguir, explicaremos como realizar o processo de salvar o valor na mem\u00f3ria.<\/p>\n<p>Ap\u00f3s esta etapa, iniciaremos a apresenta\u00e7\u00e3o de toda a l\u00f3gica e configura\u00e7\u00e3o de par\u00e2metros do termostato ON\/OFF.<\/p>\n<pre class=\"lang:csharp decode:1\">#include LiquidCrystal.h  \/\/Inclusao da biblioteca do LCD\r\n#include EEPROM.h  \/\/Inclusao da biblioteca para manipulacao das funcoes da memoria EEPROM\r\n#include OneWire.h  \/\/Inclusao da biblioteca para manipulacao das funcoes de dispositivos OneWire\r\n#include DallasTemperature.h  \/\/Inclusao da biblioteca para manipulacao das funcoes do sensor DS18B20\r\n\r\nconst int rs = 2, en = 3, d4 = 4, d5 = 5, d6 = 6, d7 = 7;\r\nLiquidCrystal lcd(rs, en, d4, d5, d6, d7);\r\n\r\n\/\/Fio de dados de temperatura \u00e9 conectado ao pino 11 no Arduino \r\n#define ONE_WIRE_BUS 8 \r\n\/********************************************************************\/\r\n\/\/Configura uma inst\u00e2ncia oneWire para se comunicar com qualquer dispositivo OneWire \r\nOneWire oneWire(ONE_WIRE_BUS); \r\n\/********************************************************************\/\r\n\r\n\/\/Endere\u00e7amento do dispositivo sensor DS18B20\r\nDeviceAddress sensor1;\r\n\r\n\/\/Passar nossa refer\u00eancia oneWire para Dallas Temperature.\r\nDallasTemperature sensors(oneWire);\r\n\r\n\/\/Variavel para verificar se o usu\u00e1rio j\u00e1 configurou a temperatura durante a inicializa\u00e7\u00e3o do sistema\r\nunsigned int verificador = 0;\r\n\r\n\/\/Variaveis utilizadas para realizar a leitura dos botoes de configuracao do sistema\r\nbool incremento, decremento, set = 0;\r\n\r\n\/\/Variaveis utilizadas para armazenar o estado de acionamento dos botoes\r\nbool EstadoIncremento = 0, EstadoDecremento = 0, EstadoSet = 0;\r\n\r\n\/\/Variavel para armazenar o valor de ajuste de temperatura\r\nunsigned int temperatura = 0;\r\n\r\n\/\/Variavel utilizada para armazenar o tempo de execucao atual do codigo\r\nunsigned long int tempo_atual = 0;\r\n\r\n\/\/Variavel utilizada para armazenar o ultimo valor armazenado na variavel tempo_atual\r\nunsigned long ultimo_tempo = 0; \r\n\r\nbyte ValorAnterior = 0;\r\n\r\n\/\/Definicao da palavra memoria para representar o valor 120\r\n#define EndVerif 120\r\n#define EndTemp  125\r\n\r\nvoid setup()\r\n{\r\n\r\n    Serial.begin(9600);\r\n    \/\/put your setup code here, to run once:\r\n    lcd.begin(16, 2);\r\n\r\n      delay(500);\r\n\r\n    lcd.setCursor(6,0);\r\n    lcd.print(\"Loja\");\r\n    lcd.setCursor(4,1);\r\n    lcd.print(\"UsinaInfo\");\r\n\r\n      delay(3000);\r\n\r\n      \/\/Inicializa\u00e7\u00e3o do funcionamento do Sensor DS18B20\r\n      sensors.begin();\r\n      lcd.clear();\r\n\r\n      pinMode(13, OUTPUT);\r\n      \r\n}\r\n\r\nvoid loop() \r\n{\r\n    \r\n         set = digitalRead(12);\r\n         \r\n         if(set == 1)\r\n         {\r\n\r\n           lcd.clear();\r\n           lcd.setCursor(2,0);\r\n           lcd.print(\"Reconfigurar?\");\r\n\r\n           lcd.setCursor(0,1);\r\n           lcd.print(\"Sim (+)  Nao (-)\");\r\n           \r\n           do\r\n           {\r\n           \r\n           incremento = digitalRead(10); \/\/Leitura do estado do pino digital do botao incremento\r\n           decremento = digitalRead(11); \/\/Leitura do estado do pino digital do botao decremento\r\n           \r\n           delay(50);\r\n\r\n              if(incremento == 1 &amp;&amp; decremento == 0)\r\n              {\r\n               verificador = 0;\r\n               EEPROM.write(EndVerif,0);\r\n              }\r\n              \r\n           }while(incremento == 0 &amp;&amp; decremento == 0);\r\n\r\n               delay(200);\r\n               lcd.clear();\r\n         }\r\n    \r\n          verificador = EEPROM.read(EndVerif);\r\n\r\n      if(verificador != 75)\r\n      {\r\n        \r\n        lcd.setCursor(3,0);\r\n        lcd.print(\"Configurar\");\r\n        lcd.setCursor(0,1);\r\n        lcd.print(\"Temperatura:\");\r\n\r\n              temperatura = EEPROM.read(EndTemp); \/\/Leitura do valor da posicao EndTemp\r\n        \r\n            do\r\n            {\r\n              incremento = digitalRead(10); \/\/Leitura do estado do pino digital do botao incremento\r\n              decremento = digitalRead(11); \/\/Leitura do estado do pino digital do botao decremento\r\n              set        = digitalRead(12); \/\/Leitura do estado do pino digital do botao set\r\n              \r\n                delay(50);\r\n\r\n                  if(incremento == 1 &amp;&amp; EstadoIncremento == 0)\r\n                  {\r\n                    temperatura++; \/\/Incrementa o valor da temperatura\r\n                    EstadoIncremento = 1; \/\/Armazena 1 na variavel incremento \r\n                    lcd.setCursor(13,1); \/\/Configura o cursor na posi\u00e7\u00e3o da segunda linha e coluna 13\r\n                    lcd.print(\"   \");\r\n                  }\r\n\r\n                  if(incremento == 0 &amp;&amp; EstadoIncremento == 1)\r\n                  {\r\n                    EstadoIncremento = 0; \/\/Armazena 0 na variavel decremento para indicar o estado atual do botao incremento - desacionado  \r\n                  }\r\n\r\n                  if(decremento == 1 EstadoDecremento == 0)\r\n                  {\r\n                    temperatura--; \/\/Decrementa o valor da temperatura\r\n                    EstadoDecremento = 1; \/\/Armazena 0 na variavel decremento para indicar o estado atual do botao decremento\r\n                    lcd.setCursor(13,1); \/\/Configura o cursor na posi\u00e7\u00e3o da segunda linha e coluna 13\r\n                    lcd.print(\"   \");    \r\n                  }\r\n\r\n                  if(decremento == 0 EstadoDecremento == 1)\r\n                  {\r\n                    EstadoDecremento = 0; \/\/Armazena 0 na variavel decremento para indicar o estado atual do botao decremento - desacionado\r\n                  }\r\n\r\n             lcd.setCursor(13,1); \/\/Configura o cursor na posi\u00e7\u00e3o da segunda linha e coluna 13\r\n             lcd.print(temperatura); \/\/Imprime o valor da temperatura na tela     \r\n\r\n            }while(set != 1);\r\n\r\n            lcd.clear();\r\n            EEPROM.write(EndVerif,75); \/\/Salva o valor 75 na posi\u00e7\u00e3o EndVerif\r\n            EEPROM.write(EndTemp, temperatura); \/\/Salva o valor da temperatura configurada na posi\u00e7\u00e3o EndTemp\r\n      }\r\n             \r\n             \/\/lcd.clear();\/\/Limpar a tela do LCD\r\n\r\n             \/\/Configurar o sensor DS18B20 e fazer a leitura do seu valor digital\r\n             Serial.print(\" Solicitando temperatura...\"); \r\n             sensors.requestTemperatures(); \/\/ Envia o comando para obter leituras de temperatura \r\n             Serial.println(\"Leitura realizada!\"); \r\n            \/********************************************************************\/\r\n             Serial.print(\"A Temperature e:\"); \r\n             Serial.println(sensors.getTempCByIndex(0)); \r\n             \/\/O Index e utilizado, pois pode existir mais de um sensor conectado ao barramento\r\n             \r\n             float TempSensor = sensors.getTempCByIndex(0);\r\n             \/\/float temperatura = sensors.getTempC(sensor1);\r\n                \r\n                if(TempSensor != ValorAnterior)\r\n                {\r\n                 lcd.setCursor(2,0);\r\n                 lcd.print(\"Temperatura\");\r\n                 lcd.setCursor(4,1);\r\n                 lcd.print(TempSensor);\r\n                 lcd.print((char)223);\r\n                 lcd.print(\"C\");\r\n             \r\n                 ValorAnterior = TempSensor;\r\n\r\n                  if(TempSensor = temperatura)\r\n                  {\r\n                    digitalWrite(13, HIGH);  \r\n                  }\r\n\r\n                  if(TempSensor temperatura)\r\n                  {\r\n                    digitalWrite(13, LOW);  \r\n                  }\r\n                }                         \r\n               \r\n \r\n}\r\n<\/pre>\n<h5><\/h5>\n<h4>L\u00f3gica de funcionamento na fun\u00e7\u00e3o loop do c\u00f3digo principal do termostato Arduino<\/h4>\n<p>No in\u00edcio, realizamos a leitura do pino do bot\u00e3o de configura\u00e7\u00e3o (Linha 068). Isto serve para verificar se o usu\u00e1rio pressionou o bot\u00e3o e, consequentemente, entrar no menu de configura\u00e7\u00e3o da temperatura.<\/p>\n<p>&nbsp;<\/p>\n<h4>Tela de Menu para ajuste de temperatura do termostato<\/h4>\n<p>Ent\u00e3o, caso o usu\u00e1rio pressione o bot\u00e3o (Linha 070), o sistema apresentar\u00e1 uma mensagem. Ent\u00e3o, aparecer\u00e1 a mensagem Reconfigurar o Sistema com duas op\u00e7\u00f5es Sim e N\u00e3o (Linhas 073 a 078). A tela de reconfigura\u00e7\u00e3o \u00e9 apresentada na Figura 3.<\/p>\n<div id=\"attachment_2996\" style=\"width: 1290px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/05\/WhatsApp-Image-2019-05-24-at-16.11.48.jpeg\" data-rel=\"lightbox-image-2\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-2996\" class=\"size-full wp-image-2996\" src=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/05\/WhatsApp-Image-2019-05-24-at-16.11.48.jpeg\" alt=\"\" width=\"1280\" height=\"960\" srcset=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/05\/WhatsApp-Image-2019-05-24-at-16.11.48.jpeg 1280w, https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/05\/WhatsApp-Image-2019-05-24-at-16.11.48-300x225.jpeg 300w, https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/05\/WhatsApp-Image-2019-05-24-at-16.11.48-768x576.jpeg 768w, https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/05\/WhatsApp-Image-2019-05-24-at-16.11.48-1024x768.jpeg 1024w, https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/05\/WhatsApp-Image-2019-05-24-at-16.11.48-322x242.jpeg 322w, https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/05\/WhatsApp-Image-2019-05-24-at-16.11.48-320x240.jpeg 320w\" sizes=\"auto, (max-width: 1280px) 100vw, 1280px\" \/><\/a><p id=\"caption-attachment-2996\" class=\"wp-caption-text\">Figura 3 \u2013 Tela de Reconfigura\u00e7\u00e3o da Temperatura do Sistema.<\/p><\/div>\n<p>Portanto, o usu\u00e1rio poder\u00e1 configurar a temperatura ou sair do menu, caso tenha pressionado o bot\u00e3o de forma acidental.<\/p>\n<p>Ap\u00f3s pressionar o bot\u00e3o e a mensagem for impressa, o sistema fica em loop no la\u00e7o (Linhas 080 a 093). Nesse momento, realizar\u00e1 o processo de leituras dos bot\u00f5es incremento e decremento.<\/p>\n<p>Al\u00e9m de utilizar esses bot\u00f5es como valor de ajuste, tamb\u00e9m utilizamos com outra finalidade, para reduzir a quantidade de bot\u00f5es. Isto torna a interface do usu\u00e1rio mais simples!<\/p>\n<p>Logo ap\u00f3s a leitura dos bot\u00f5es (Linhas 083 e 084), realizamos o tratamento de debounce com um delay (Linha 086). Por fim, analisamos uma condi\u00e7\u00e3o (Linha 088), para verificar se o bot\u00e3o incremento est\u00e1 pressionado e o decremento n\u00e3o pressionado.<\/p>\n<p>Portanto, caso a condi\u00e7\u00e3o seja verdade, o valor 0 ser\u00e1 salvo na posi\u00e7\u00e3o EndVerif (120) da mem\u00f3ria EEPROM. Em seguida, sair\u00e1 do la\u00e7o, j\u00e1 que a condi\u00e7\u00e3o de perman\u00eancia ser\u00e1 falsa. A outra forma de sa\u00edda do la\u00e7o \u00e9 quando o bot\u00e3o decremento (N\u00e3o) \u00e9 pressionado pelo usu\u00e1rio (Linha 093).<\/p>\n<p>&nbsp;<\/p>\n<h4>Import\u00e2ncia do uso da EEPROM em m\u00e1quinas com ajustes de par\u00e2metros<\/h4>\n<p>Conforme \u00e9 poss\u00edvel observar na linha 90, gravamos o valor 0 na posi\u00e7\u00e3o de mem\u00f3ria EndVerif(120). Afinal, por que gravar este valor na mem\u00f3ria EEPROM ?<\/p>\n<p>Este procedimento est\u00e1 presente em muitas m\u00e1quinas. Ele \u00e9 \u00fatil quando ocorre um processo de desligamento da m\u00e1quina. Dessa forma, os dados de par\u00e2metros permanecer\u00e3o armazenados e ser\u00e3o lidos quando a m\u00e1quina for ligada novamente.<\/p>\n<p>Portanto, sempre que o dispositivo for ligado, ele verifica se o ajuste de temperatura da m\u00e1quina j\u00e1 foi realizado (Linha 098).<\/p>\n<p>Ele faz a leitura do valor da posi\u00e7\u00e3o EndVerif (120) da mem\u00f3ria EEPROM (Linha 098). Caso o valor lido seja diferente de 75, automaticamente o sistema entrar\u00e1 na condi\u00e7\u00e3o (Linha 101). Portanto, o usu\u00e1rio realizar\u00e1 o processo de ajuste da temperatura do termostato.<\/p>\n<p>O valor 75 foi escolhido de forma arbitr\u00e1ria. Logo, ele ser\u00e1 salvo quando o usu\u00e1rio configurar a temperatura ou sinalizar\u00e1 que o sistema j\u00e1 est\u00e1 configurado.<\/p>\n<p>\u00c9 importante garantir que o sistema entre automaticamente na condi\u00e7\u00e3o (Linha 100), na primeira vez que o equipamento for ligado. Dessa maneira, fa\u00e7a uma limpeza zerando todas as posi\u00e7\u00f5es de sua mem\u00f3ria EEPROM. Deste modo, o valor lido ser\u00e1 0, que \u00e9 diferente de 75.<\/p>\n<p>Diante disso, utilize este c\u00f3digo Clear EEPROM Memory para limpar a mem\u00f3ria EEPROM antes de gravar o c\u00f3digo do projeto, segue o c\u00f3digo:<\/p>\n<pre class=\"lang:c# decode:true \">\/*\r\n* EEPROM Clear\r\n*\r\n* Sets all of the bytes of the EEPROM to 0.\r\n* Please see eeprom_iteration for a more in depth\r\n* look at how to traverse the EEPROM.\r\n*\r\n* This example code is in the public domain.\r\n*\/\r\n\r\n#include &lt;EEPROM.h&gt;\r\n\r\nvoid setup() {\r\n\/\/ initialize the LED pin as an output.\r\npinMode(13, OUTPUT);\r\n\r\n\/***\r\nIterate through each byte of the EEPROM storage.\r\n\r\nLarger AVR processors have larger EEPROM sizes, E.g:\r\n- Arduno Duemilanove: 512b EEPROM storage.\r\n- Arduino Uno: 1kb EEPROM storage.\r\n- Arduino Mega: 4kb EEPROM storage.\r\n\r\nRather than hard-coding the length, you should use the pre-provided length function.\r\nThis will make your code portable to all AVR processors.\r\n***\/\r\n\r\nfor (int i = 0 ; i &lt; EEPROM.length() ; i++) {\r\nEEPROM.write(i, 0);\r\n}\r\n\r\n\/\/ turn the LED on when we're done\r\ndigitalWrite(13, HIGH);\r\n}\r\n\r\nvoid loop() {\r\n\/** Empty loop. **\/\r\n}<\/pre>\n<p>&nbsp;<\/p>\n<h4>Configura\u00e7\u00e3o do par\u00e2metro de temperatura do Termostato Arduino<\/h4>\n<p>Ap\u00f3s a entrada na condi\u00e7\u00e3o (Linha 100), aparecer\u00e1 a mensagem Configurar Temperatura (Linhas 103 a 106). Em seguida, \u00e9 realizada a leitura do valor de temperatura armazenada na posi\u00e7\u00e3o EndTemp (125) da mem\u00f3ria EEPROM.<\/p>\n<p>Logo ap\u00f3s a leitura, o valor lido ser\u00e1 0, pois a mem\u00f3ria EEPROM estar\u00e1 com todas as posi\u00e7\u00f5es zeradas inicialmente. Em seguida, o valor ser\u00e1 apresentado na tela, conforme apresentado na Figura 4.<\/p>\n<div id=\"attachment_2999\" style=\"width: 1042px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/05\/WhatsApp-Image-2019-05-24-at-16.29.59.jpeg\" data-rel=\"lightbox-image-3\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-2999\" class=\"size-full wp-image-2999\" src=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/05\/WhatsApp-Image-2019-05-24-at-16.29.59.jpeg\" alt=\"Tela de Configura\u00e7\u00e3o da Temperatura\" width=\"1032\" height=\"774\" srcset=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/05\/WhatsApp-Image-2019-05-24-at-16.29.59.jpeg 1032w, https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/05\/WhatsApp-Image-2019-05-24-at-16.29.59-300x225.jpeg 300w, https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/05\/WhatsApp-Image-2019-05-24-at-16.29.59-768x576.jpeg 768w, https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/05\/WhatsApp-Image-2019-05-24-at-16.29.59-1024x768.jpeg 1024w, https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/05\/WhatsApp-Image-2019-05-24-at-16.29.59-322x242.jpeg 322w, https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/05\/WhatsApp-Image-2019-05-24-at-16.29.59-320x240.jpeg 320w\" sizes=\"auto, (max-width: 1032px) 100vw, 1032px\" \/><\/a><p id=\"caption-attachment-2999\" class=\"wp-caption-text\">Figura 4 &#8211; Tela de Configura\u00e7\u00e3o de Temperatura.<\/p><\/div>\n<p>Caso a temperatura j\u00e1 tenha sido configurada outra vez, aparecer\u00e1 o \u00faltimo valor ajustado pelo usu\u00e1rio.<\/p>\n<p>Ent\u00e3o, o sistema ficar\u00e1 em loop realizando a leitura dos bot\u00f5es. A l\u00f3gica de leitura verifica o bot\u00e3o pressionado e armazena seu estado anterior, para evitar incrementar mais de uma vez. Portanto, essa l\u00f3gica simula um contador com incremento e decremento utilizando bot\u00f5es (Linhas 118 a 138).<\/p>\n<p>A partir da modifica\u00e7\u00e3o dos valores, o sistema apresenta o valor na tela.<\/p>\n<p>Quando o usu\u00e1rio pressiona o bot\u00e3o set, a condi\u00e7\u00e3o ser\u00e1 falsa e a execu\u00e7\u00e3o sair\u00e1 do loop (Linha 145). Ap\u00f3s isto, a tela do LCD ser\u00e1 limpa e o valor 75 ser\u00e1 salvo na posi\u00e7\u00e3o EndVerif da EEPROM. Logo, esse valor ser\u00e1 utilizado para sinalizar que a temperatura est\u00e1 ajustada no sistema.<\/p>\n<p>Em seguida, o valor de ajuste da temperatura \u00e9 salvo na posi\u00e7\u00e3o EndTemp (Linha 149). Isto serve para manter o valor salvo em caso de falta de energia. Portanto, evitar\u00e1 a perda da informa\u00e7\u00e3o, quando o sistema for ligado novamente. O valor salvo ser\u00e1 lido novamente na inicializa\u00e7\u00e3o do sistema (Linha 061).<\/p>\n<p>&nbsp;<\/p>\n<h4>Requisi\u00e7\u00e3o de Temperatura e acionamento do aquecedor do Termostato<\/h4>\n<p>Ap\u00f3s isto, o sistema voltar\u00e1 para execu\u00e7\u00e3o nomal. Desse modo, far\u00e1 a requisi\u00e7\u00e3o de temperatura e receber\u00e1 o valor pelo index 0. Este index representa o \u00fanico sensor utilizado (Linha 154).<\/p>\n<p>Por fim, apresentamos o valor da temperatura quando a condi\u00e7\u00e3o (Linhas 156) \u00e9 verdadeira, conforme apresentado na Figura 5. Esta condi\u00e7\u00e3o \u00e9 utilizada para evitar que o sistema apresente o mesmo valor anterior de temperatura.<\/p>\n<div id=\"attachment_2995\" style=\"width: 1290px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/05\/WhatsApp-Image-2019-05-24-at-16.09.03.jpeg\" data-rel=\"lightbox-image-4\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-2995\" class=\"size-full wp-image-2995\" src=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/05\/WhatsApp-Image-2019-05-24-at-16.09.03.jpeg\" alt=\"\" width=\"1280\" height=\"960\" srcset=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/05\/WhatsApp-Image-2019-05-24-at-16.09.03.jpeg 1280w, https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/05\/WhatsApp-Image-2019-05-24-at-16.09.03-300x225.jpeg 300w, https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/05\/WhatsApp-Image-2019-05-24-at-16.09.03-768x576.jpeg 768w, https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/05\/WhatsApp-Image-2019-05-24-at-16.09.03-1024x768.jpeg 1024w, https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/05\/WhatsApp-Image-2019-05-24-at-16.09.03-322x242.jpeg 322w, https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/05\/WhatsApp-Image-2019-05-24-at-16.09.03-320x240.jpeg 320w\" sizes=\"auto, (max-width: 1280px) 100vw, 1280px\" \/><\/a><p id=\"caption-attachment-2995\" class=\"wp-caption-text\">Figura 5 &#8211; Apresenta\u00e7\u00e3o da Temperatura do Sistema.<\/p><\/div>\n<p>Em seguida, ser\u00e1 verificado se o valor \u00e9 diferente do anterior. Portanto, se for verdade, apresentar\u00e1 a temperatura na tela do LCD 16 x 2. Em seguida, pegar\u00e1 o valor atual e guardar\u00e1 na vari\u00e1vel ValorAnterior para ser utilizada como refer\u00eancia na pr\u00f3xima compara\u00e7\u00e3o.<\/p>\n<p>Ap\u00f3s isto, o sistema compara a temperatura do ambiente com o valor de ajuste. Com base na compara\u00e7\u00e3o, ele acionar\u00e1 ou desligar\u00e1 o rel\u00e9 do aquecedor do sistema (Linhas 167 a 175).<\/p>\n<p>&nbsp;<\/p>\n<h2>Conclus\u00e3o<\/h2>\n<p>Finalmente, atrav\u00e9s do sistema desenvolvido para o Termostato Arduino com Sensor de Temperatura DS18B20, foi poss\u00edvel obter o resultado esperado e implementar diversas funcionalidades. Portanto, entre as funcionalidades, foi poss\u00edvel criar um dispositivo termostato inteligente com os seguintes recursos:<\/p>\n<ol>\n<li>Cria\u00e7\u00e3o de tela de confirma\u00e7\u00e3o, para altera\u00e7\u00e3o do valor da temperatura;<\/li>\n<li>Fun\u00e7\u00e3o para salvar o valor de temperatura ajustada pelo usu\u00e1rio, mesmo que o sistema desligue e ligue novamente;<\/li>\n<li>Cria\u00e7\u00e3o de um teclado para configurar o valor da temperatura, de modo a utilizar apenas 2 bot\u00f5es;<\/li>\n<li>Trabalhar com o sensor de temperatura DS18B20;<\/li>\n<li>Cria\u00e7\u00e3o de Menus no LCD 16 x 2.<\/li>\n<\/ol>\n<p>Logo, todos os requisitos do sistema foram implementados e podem ser modificados para cria\u00e7\u00e3o de um novo projeto.<\/p>\n<p>Conhe\u00e7a toda Linha de <a href=\"https:\/\/www.usinainfo.com.br\/arduino-e-eletroeletronica-74\" target=\"_blank\" rel=\"noopener noreferrer\">Produtos Arduino na UsinaInfo<\/a>.<\/p>\n<p>&nbsp;<\/p>\n<h4>Refer\u00eancias Bibliogr\u00e1ficas<\/h4>\n<p>Todas as refer\u00eancias utilizadas, encontram-se dispon\u00edveis em links ao longo do nosso artigo.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Termostato Arduino As prensas t\u00e9rmicas, chocadeiras e diversos equipamentos que trabalham com sistema de aquecimento necessitam de um controle de temperatura. Esse controle \u00e9 utilizado, para manter a temperatura em um valor ajustado pelo usu\u00e1rio. Para isto, utilizamos um termostato. Por meio dele, realizamos o controle de temperatura e configuramos o valor de setpoint. O setpoint \u00e9 um valor de refer\u00eancia para controle da temperatura do sistema. Quando o valor de temperatura do ambiente for maior ou igual ao setpoint, o sistema desativa o aquecedor. Caso seja menor, o sistema liga o aquecedor. De acordo com seu funcionamento, desenvolveremos um termostato ON\/OFF com Arduino, a fim de realizar o controle do sistema. Assim como, utilizaremos o sensor de temperatura DS18B20, [&hellip;]<\/p>\n","protected":false},"author":13,"featured_media":2994,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10,1],"tags":[59,61,60],"class_list":["post-2801","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-arduino","category-projetos","tag-como-fazer-um-termostato-com-arduino","tag-como-nao-perder-os-parametros-de-uma-maquina-apos-o-desligamento","tag-como-utilizar-o-sensor-ds18b20-com-arduino"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Termostato Arduino com Sensor DS18B20 e Rel\u00e9 - Blog UsinaInfo<\/title>\n<meta name=\"description\" content=\"Termostado Arduino, Construa o seu com o Sensor de Temperatura ds18b20 e Aprenda T\u00e9cnicas para Desenvolver Dispositivos Inteligentes no Blog UsinaInfo.\" \/>\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\/termostato-arduino-com-sensor-de-temperatura-ds18b20-e-rele\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Construa seu Termostato ON\/OFF com Arduino\" \/>\n<meta property=\"og:description\" content=\"Voc\u00ea sabe como construir um termostato ON\/OFF inteligente e com uma interface homem-m\u00e1quina, para configura\u00e7\u00e3o de seus par\u00e2metros ? Saiba tudo em nosso artigo!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.usinainfo.com.br\/blog\/termostato-arduino-com-sensor-de-temperatura-ds18b20-e-rele\/\" \/>\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=\"2019-05-27T13:00:54+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-06-18T20:12:44+00:00\" \/>\n<meta name=\"author\" content=\"Diego Moreira\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/05\/IMG_2918.jpg\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Diego Moreira\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. tempo de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"14 minutos\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Termostato Arduino com Sensor DS18B20 e Rel\u00e9 - Blog UsinaInfo","description":"Termostado Arduino, Construa o seu com o Sensor de Temperatura ds18b20 e Aprenda T\u00e9cnicas para Desenvolver Dispositivos Inteligentes no Blog UsinaInfo.","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\/termostato-arduino-com-sensor-de-temperatura-ds18b20-e-rele\/","og_locale":"pt_BR","og_type":"article","og_title":"Construa seu Termostato ON\/OFF com Arduino","og_description":"Voc\u00ea sabe como construir um termostato ON\/OFF inteligente e com uma interface homem-m\u00e1quina, para configura\u00e7\u00e3o de seus par\u00e2metros ? Saiba tudo em nosso artigo!","og_url":"https:\/\/www.usinainfo.com.br\/blog\/termostato-arduino-com-sensor-de-temperatura-ds18b20-e-rele\/","og_site_name":"Blog Usinainfo","article_publisher":"https:\/\/pt-br.facebook.com\/faceusinainfo\/","article_published_time":"2019-05-27T13:00:54+00:00","article_modified_time":"2021-06-18T20:12:44+00:00","author":"Diego Moreira","twitter_card":"summary_large_image","twitter_image":"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/05\/IMG_2918.jpg","twitter_misc":{"Escrito por":"Diego Moreira","Est. tempo de leitura":"14 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.usinainfo.com.br\/blog\/termostato-arduino-com-sensor-de-temperatura-ds18b20-e-rele\/","url":"https:\/\/www.usinainfo.com.br\/blog\/termostato-arduino-com-sensor-de-temperatura-ds18b20-e-rele\/","name":"Termostato Arduino com Sensor DS18B20 e Rel\u00e9 - Blog UsinaInfo","isPartOf":{"@id":"https:\/\/www.usinainfo.com.br\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.usinainfo.com.br\/blog\/termostato-arduino-com-sensor-de-temperatura-ds18b20-e-rele\/#primaryimage"},"image":{"@id":"https:\/\/www.usinainfo.com.br\/blog\/termostato-arduino-com-sensor-de-temperatura-ds18b20-e-rele\/#primaryimage"},"thumbnailUrl":"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/05\/IMG_2918.jpg","datePublished":"2019-05-27T13:00:54+00:00","dateModified":"2021-06-18T20:12:44+00:00","author":{"@id":"https:\/\/www.usinainfo.com.br\/blog\/#\/schema\/person\/6a2c71301c6713469112b908c657d563"},"description":"Termostado Arduino, Construa o seu com o Sensor de Temperatura ds18b20 e Aprenda T\u00e9cnicas para Desenvolver Dispositivos Inteligentes no Blog UsinaInfo.","breadcrumb":{"@id":"https:\/\/www.usinainfo.com.br\/blog\/termostato-arduino-com-sensor-de-temperatura-ds18b20-e-rele\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.usinainfo.com.br\/blog\/termostato-arduino-com-sensor-de-temperatura-ds18b20-e-rele\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.usinainfo.com.br\/blog\/termostato-arduino-com-sensor-de-temperatura-ds18b20-e-rele\/#primaryimage","url":"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/05\/IMG_2918.jpg","contentUrl":"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/05\/IMG_2918.jpg","width":1620,"height":1080},{"@type":"BreadcrumbList","@id":"https:\/\/www.usinainfo.com.br\/blog\/termostato-arduino-com-sensor-de-temperatura-ds18b20-e-rele\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"In\u00edcio","item":"https:\/\/www.usinainfo.com.br\/blog\/"},{"@type":"ListItem","position":2,"name":"Termostato Arduino com Sensor de Temperatura DS18B20 e Rel\u00e9"}]},{"@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\/6a2c71301c6713469112b908c657d563","name":"Diego Moreira","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.usinainfo.com.br\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/a4f3d375404c760b6cb56ca06b22c0bd19efe18c0741c9da6259a4e62b33bd21?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a4f3d375404c760b6cb56ca06b22c0bd19efe18c0741c9da6259a4e62b33bd21?s=96&d=mm&r=g","caption":"Diego Moreira"},"description":"T\u00e9cnico em Automa\u00e7\u00e3o Industrial e graduando do curso de Tecnologia em Mecatr\u00f4nica Industrial pelo Instituto Federal do Cear\u00e1. E, atualmente, trabalha como desenvolvedor de projetos, sistemas inteligentes e criador de conte\u00fado por meio da empresa Sil\u00edcios Lab para o seu canal e para o blog da UsinaInfo. Nas horas livres, desenvolve alguns projetos com Microcontroladores e Arduino.","sameAs":["https:\/\/www.silicioslab.com.br\/"],"url":"https:\/\/www.usinainfo.com.br\/blog\/author\/diego-moreira\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.usinainfo.com.br\/blog\/wp-json\/wp\/v2\/posts\/2801","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\/13"}],"replies":[{"embeddable":true,"href":"https:\/\/www.usinainfo.com.br\/blog\/wp-json\/wp\/v2\/comments?post=2801"}],"version-history":[{"count":70,"href":"https:\/\/www.usinainfo.com.br\/blog\/wp-json\/wp\/v2\/posts\/2801\/revisions"}],"predecessor-version":[{"id":5976,"href":"https:\/\/www.usinainfo.com.br\/blog\/wp-json\/wp\/v2\/posts\/2801\/revisions\/5976"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.usinainfo.com.br\/blog\/wp-json\/wp\/v2\/media\/2994"}],"wp:attachment":[{"href":"https:\/\/www.usinainfo.com.br\/blog\/wp-json\/wp\/v2\/media?parent=2801"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.usinainfo.com.br\/blog\/wp-json\/wp\/v2\/categories?post=2801"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.usinainfo.com.br\/blog\/wp-json\/wp\/v2\/tags?post=2801"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}