Reduzir tamanho do código do arduino. - Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)2024-03-29T12:14:30Zhttps://labdegaragem.com/forum/topics/reduzir-tamanho-do-c-digo-do-arduino?commentId=6223006%3AComment%3A710853&xg_source=activity&feed=yes&xn_auth=noolá novamente Paulo.
S…tag:labdegaragem.com,2019-08-11:6223006:Comment:7154162019-08-11T16:53:04.216ZElcids Chagashttps://labdegaragem.com/profile/ElcidsChagas
<p><span style="font-size: 12pt;">olá novamente Paulo.</span></p>
<p></p>
<p><span style="font-size: 12pt;"> Sobre os pontos que vc mencionou:</span></p>
<p></p>
<p><span style="font-size: 12pt;"> <strong>1)</strong> acredito que vc esteja se referindo ao "<em><strong>if (Ok)</strong></em>" da função "<em><strong>le_Temperatura_Humidade</strong></em>". Aí na sua compilação, a variável "<em><strong>Ok</strong></em>" certamente estava ficando sempre com o valor…</span></p>
<p><span style="font-size: 12pt;">olá novamente Paulo.</span></p>
<p></p>
<p><span style="font-size: 12pt;"> Sobre os pontos que vc mencionou:</span></p>
<p></p>
<p><span style="font-size: 12pt;"> <strong>1)</strong> acredito que vc esteja se referindo ao "<em><strong>if (Ok)</strong></em>" da função "<em><strong>le_Temperatura_Humidade</strong></em>". Aí na sua compilação, a variável "<em><strong>Ok</strong></em>" certamente estava ficando sempre com o valor "<em><strong>false</strong></em>", e isto deve estar ocorrendo devido às diferenças entre a sua <strong>Biblioteca</strong> do <strong>DHT</strong> e a que eu usei. O importante é vc se certificar que os valores de <strong>temperatura</strong> e <strong>umidade</strong> estejam sempre corretos. Então tranquilo se vc excluiu o tal "<strong>if</strong>" como vc relatou, pois o importante são os valores estarem corretos.</span></p>
<p></p>
<p><span style="font-size: 12pt;"> <strong>2)</strong> sobre a <strong>URL</strong> (endereço do link) que fica no <strong>Navegador</strong> quando vc clica em um dos botões, isto é de competência exclusiva do Navegador. É ele quem decide qual URL irá ficar ali. Você pode confirmar isso olhando a função que envia a <strong>Página HTML</strong> no código do Arduino. O que há lá, são os textos a serem retornados quando vc clica no botão, e isto tem que ser assim, pra que o "<em>decodificador</em>" executando no <strong>Arduino</strong> saiba o que fazer quando se clica em um ou outro botão.</span></p>
<p><span style="font-size: 12pt;"> Ainda sobre isto, veja que os Navegadores mais populares (<em><strong>Chrome</strong></em>, <em><strong>Firefox</strong></em>, <em><strong>Internet Explorer</strong></em>, etc), permitem vc colocar um item de favorito na barra de Navegação. Então basta vc clicar neste item, que a página inicial será sempre chamada.</span></p>
<p></p>
<p><span style="font-size: 12pt;"> Bem, isto são conjecturas e discussões sobre as <em><strong>funcionalidades</strong></em> do <em><strong>HTML</strong></em>, que é uma coisa muito ampla e fora do contexto pra tratar aqui neste tópico.</span></p>
<p></p>
<p><span style="font-size: 12pt;"> Uma coisa que espero que seja útil, é o <em><strong>Mecanismo</strong> <strong>Gerenciador</strong> <strong>de</strong></em> <em><strong>Páginas HTML</strong></em> (na verdade este mecanismo funciona com qualquer protocolo dentro do <em><strong>TCP/IP</strong></em>), o qual eu criei justamente para "automatizar" e simplificar o gerenciamento de diversas páginas HTML. Se vc entender como usá-lo, ele será uma mão na roda pra se fazer um Sistema com diversas Páginas HTML, acrescentando um nível de "sofisticação" ao seu Sistema.</span></p>
<p></p>
<p><span style="font-size: 12pt;"> Abrçs,</span></p>
<p></p>
<p><span style="font-size: 12pt;"> Elcids</span></p> Bom dia, amigo.
Estudei basta…tag:labdegaragem.com,2019-08-02:6223006:Comment:7146062019-08-02T13:32:16.758ZPaulo Varjalhttps://labdegaragem.com/profile/PauloVarjal
<p>Bom dia, amigo.</p>
<p>Estudei bastante o seu código. Ele é fantástico. Consegui entender a maior parte dele. Não tinha noção que era assim que se fazia (sou hobista).</p>
<p>Precisei fazer um ajuste na leitura do DHT... estava acontecendo o tempo todo o erro de leitura, levando os valores a 0 e 99 (umidade e temperatura)... depois eu ficava atualizando a página para ver se corrigia e nada... tirei o "if" que vc colocou e deixei simplesmente fazendo a leitura. fiz vários testes e ele…</p>
<p>Bom dia, amigo.</p>
<p>Estudei bastante o seu código. Ele é fantástico. Consegui entender a maior parte dele. Não tinha noção que era assim que se fazia (sou hobista).</p>
<p>Precisei fazer um ajuste na leitura do DHT... estava acontecendo o tempo todo o erro de leitura, levando os valores a 0 e 99 (umidade e temperatura)... depois eu ficava atualizando a página para ver se corrigia e nada... tirei o "if" que vc colocou e deixei simplesmente fazendo a leitura. fiz vários testes e ele atualiza os valores sem erro aparente.</p>
<p>Mexi um pouco no html: mudei os h1 para h2 e inclui um novo título com o h1.</p>
<p>Pensei em incluir um botão para atualizar a página: digamos que cliquei em "Liga Ar". O endereço no navegador muda para "<a href="http://192.168.100.40/AR-on">http://192.168.100.40/AR-on</a>". A partir daí, se usar o atualizar do navegador, estarei sempre enviando o comando para ligar o ar... Incluir o botão eu sei (copiando dos que vc fez). Tb consigo Incluir no "IF" que recebe o comando do navegador um outro "else if", mas não sei que código escrevo para atualizar a página (em uma outra biblioteca eu usava client.flush(), eu acho).</p>
<p>Uma outra alternativa a esse botão atualizar seria fazer o navegador voltar para o endereço inicial (192.168.100.40) depois de enviar o comando.</p> ok Paulo.
A forma de v…tag:labdegaragem.com,2019-07-20:6223006:Comment:7137122019-07-20T02:55:49.982ZElcids Chagashttps://labdegaragem.com/profile/ElcidsChagas
<p><span style="font-size: 12pt;">ok Paulo.</span></p>
<p></p>
<p><span style="font-size: 12pt;"> A forma de vc retribuir, é ler com atenção as orientações que coloquei no post anterior. Claro, provavelmente vão ter coisas que poderão ser tecnicamente mais inacessíveis. Mas procure seguir rigorosamente minhas orientações.</span></p>
<p></p>
<p><span style="font-size: 12pt;"> Se tiver alguma dúvida, não vá pela sorte. Pergunte aqui.</span></p>
<p></p>
<p><span style="font-size: 12pt;"> …</span></p>
<p><span style="font-size: 12pt;">ok Paulo.</span></p>
<p></p>
<p><span style="font-size: 12pt;"> A forma de vc retribuir, é ler com atenção as orientações que coloquei no post anterior. Claro, provavelmente vão ter coisas que poderão ser tecnicamente mais inacessíveis. Mas procure seguir rigorosamente minhas orientações.</span></p>
<p></p>
<p><span style="font-size: 12pt;"> Se tiver alguma dúvida, não vá pela sorte. Pergunte aqui.</span></p>
<p></p>
<p><span style="font-size: 12pt;"> Abrçs</span></p>
<p></p>
<p><span style="font-size: 12pt;"> Elcids</span></p> Elcids, Agradeço muito por to…tag:labdegaragem.com,2019-07-19:6223006:Comment:7137112019-07-19T21:55:37.206ZPaulo Varjalhttps://labdegaragem.com/profile/PauloVarjal
<p>Elcids, Agradeço muito por toda a ajuda. Sei que vc teve que gastar algumas horas de seu tempo para me ajudar com este código. Testarei e tentarei entender tudo que vc fez no fim de semana. Espero poder te retribuir um dia. Abraço.</p>
<p>Elcids, Agradeço muito por toda a ajuda. Sei que vc teve que gastar algumas horas de seu tempo para me ajudar com este código. Testarei e tentarei entender tudo que vc fez no fim de semana. Espero poder te retribuir um dia. Abraço.</p> olá Paulo.
Estou publ…tag:labdegaragem.com,2019-07-18:6223006:Comment:7134452019-07-18T21:58:23.112ZElcids Chagashttps://labdegaragem.com/profile/ElcidsChagas
<p><span style="font-size: 12pt;">olá Paulo.</span></p>
<p><span style="font-size: 12pt;"> </span></p>
<p><span style="font-size: 12pt;"> Estou publicando a implementação do seu Sistema para o <strong><em>Controle do Ar-Condicionado</em></strong>.</span></p>
<p><span style="font-size: 12pt;"> O Sistema foi testado em um <strong>Arduino UNO</strong> (que tem as limitações de <strong>memória RAM</strong> que estavam causando sua dor de cabeça).…</span></p>
<p></p>
<p><span style="font-size: 12pt;">olá Paulo.</span></p>
<p><span style="font-size: 12pt;"> </span></p>
<p><span style="font-size: 12pt;"> Estou publicando a implementação do seu Sistema para o <strong><em>Controle do Ar-Condicionado</em></strong>.</span></p>
<p><span style="font-size: 12pt;"> O Sistema foi testado em um <strong>Arduino UNO</strong> (que tem as limitações de <strong>memória RAM</strong> que estavam causando sua dor de cabeça).</span></p>
<p><span style="font-size: 12pt;"> Procurei deixar o Sistema o mais flexível possível, de forma que vc pode facilmente alterar os parâmetros conforme deseje (falarei sobre isso mais adiante).</span></p>
<p><span style="font-size: 12pt;"> O resultado final do uso de memória, pode ser visto na figura a seguir:</span></p>
<p style="text-align: center;"><span style="font-size: 12pt;"> </span><span style="font-size: 10pt;"><strong><em>(clique na figura para "zoom")</em></strong></span></p>
<p><a href="https://storage.ning.com/topology/rest/1.0/file/get/3341901862?profile=original" target="_blank" rel="noopener"><img src="https://storage.ning.com/topology/rest/1.0/file/get/3341901862?profile=RESIZE_710x" class="align-center" width="775" height="659"/></a></p>
<p></p>
<p><span style="font-size: 12pt;"> </span><span style="font-size: 12pt;"> Como pode ver, o uso de <strong>RAM</strong> está em <strong>581 bytes</strong> (<strong>28%</strong> do total). Note que "sobram" <strong>1467 bytes</strong> e isso é muito importante, pois o Sistema precisa de pelo menos uns <strong><em>800 bytes livres</em></strong> (anteriormente eu tinha dito 600, mas redimensionei e recalculei, chegando a esse novo valor). Então ele executará sem falhas de estabilidade (as quais poderiam fazer o <strong>Arduino</strong> reiniciar ou funcionar de forma "estranha").</span></p>
<p><span style="font-size: 12pt;"> </span></p>
<p><span style="font-size: 12pt;"> Note também, que a <strong>memória de código</strong> está usando <strong>18476 bytes</strong>, ou seja <strong>57%</strong> do total do <strong>Arduino UNO</strong>. Assim está sobrando mais de <strong>13k bytes</strong> de <strong>memória de código</strong>. Com isso, vc poderá acrescentar outras características mais sofisticadas à sua <strong>página HTML</strong>, ou mesmo acrescentar mais páginas (muitas mesmo). Ou então acrescentar outras funcionalidades (se fizer isso, <strong>NÃO</strong> use o "<strong><em>delay</em></strong>" do <strong>Arduino</strong>, pois este é um <strong>Sistema</strong> de "<strong><em>tempo real</em></strong>", e o "<strong><em>delay</em></strong>" usado em qualquer lugar irá corromper as temporizações!!!).</span></p>
<p><span style="font-size: 12pt;"> </span></p>
<p><span style="font-size: 12pt;"> Sobre esta questão das <strong>páginas HTML</strong>, há uma funcionalidade marcante neste Sistema: criei um Mecanismo que permite facilmente a utilização e o gerenciamento de diversas páginas HTML (inclusive "encadeadas", tipo página "pai", página "filho", etc). Este Mecanismo (vamos chamá-lo de "<strong>Gerenciador de Páginas</strong>"), já está sendo usado neste Sistema, embora ali atualmente só exista uma página (a da <strong><em>Interface de Controle do Ar</em></strong>). Inclusive testei o Mecanismo também no <strong>ESP8266</strong> e no <strong>ESP32</strong>.</span></p>
<p><span style="font-size: 12pt;"> O Mecanismo é extremamente simples de usar, mas bastante "sofisticado". No código (além dos arquivos de "include"), há descrições que auxiliam a entender o Mecanismo e seu uso. Se vc vier a tentar usar este Mecanismo para gerenciar mais páginas HTML, e não entender como isso deve ser feito, pergunte e eu postarei um exemplo.</span></p>
<p><span style="font-size: 12pt;"> </span><span style="font-size: 12pt;"> </span></p>
<p><span style="font-size: 12pt;"> Sobre o funcionamento do código, ele está exatamente como vc descreveu antes, inclusive com aquelas funcionalidades relacionadas ao controle de ligar o <strong><em>Ar-Condicionado</em></strong>. Por exemplo: quando se deve ligar o Ar, o Sistema sempre envia o comando "desligar" pelo <strong><em>Controle IR</em></strong>, aguarda um tempo (neste caso os 8 segundos que vc estabeleceu), então envia o comando "ligar". No entanto, os comandos enviados pelo <strong><em>Controle IR</em></strong>, são repetidos "<strong>n</strong>" <strong>vezes</strong>, e atualmente "<strong>n</strong>" <strong>=</strong> <strong>3</strong> no código. Assim quando o Ar tiver que ser ligado, a sequência que o Sistema fará será essa: envia 3 vezes o controle IR "desligar", espera 8 segundos, então envia 3 vezes o controle IR "ligar". Claro, entre os 3 envios consecutivos, há também um <strong><em>intervalo de tempo</em></strong>, que atualmente está em <strong><em>2 segundos</em></strong>. Você pode facilmente alterar qualquer desses parâmetros, pois eles estão definidos no início do código, todos identificados (não tenha preguiça de ler!!!).</span></p>
<p><span style="font-size: 12pt;"> </span></p>
<p><span style="font-size: 12pt;"> Ainda sobre o funcionamento, existe um <strong>controle</strong> da <strong><em>Temperatura Mínima</em></strong>, exatamente como aquele da <strong><em>Temperatura Máxima</em></strong> que vc já tinha implementado. Mas este controle pode ser facilmente desabilitado. Para isso basta alterar o <strong><em>#define</em></strong> do valor "<strong>habilita_TEMP_min</strong>", que está definido no início do código. Se vc colocar "<strong>1</strong>", habilitará o controle. Se colocar "<strong>0</strong>", desabilitará. Claro, se vc desabilitar este controle, automaticamente não terá mais efeito o valor "<strong>TEMP_min</strong>" que especifica qual é a <strong><em>Temperatura Mínima</em></strong>.</span></p>
<p><span style="font-size: 12pt;"> </span></p>
<p><span style="font-size: 12pt;"> Logo no início do código, existem várias observações importantes. Leia estas, pois são muito relevantes. Por exemplo, sobre como devem terminar as <strong>Tabelas</strong> com <strong>códigos</strong> "<strong>RAW</strong>".</span></p>
<p><span style="font-size: 12pt;"> </span><span style="font-size: 12pt;"> </span></p>
<p><span style="font-size: 12pt;"> Existem inúmeras características novas implementadas no código, mas não dá pra falar de todas aqui, pois isto alongaria demais a coisa.</span></p>
<p><span style="font-size: 12pt;"> Mas há uma delas que é bem interessante ao menos mencionar: para aquele controle "doido" do <strong>Ar</strong> (que descrevi acima), implementei uma <strong>Máquina de Estados</strong>, pois esta é a forma mais simples e confiável de fazer. Não vai dar pra falar sobre os detalhes aqui, mas vc pode ver como a Máquina funciona através do <strong>Diagrama de Estados</strong>, que está na figura a seguir:</span></p>
<p style="text-align: center;"><span style="font-size: 10pt;"><strong><em>(clique na figura para "zoom")</em></strong></span></p>
<p><span style="font-size: 12pt;"><a href="https://storage.ning.com/topology/rest/1.0/file/get/3341950897?profile=original" target="_blank" rel="noopener"><img src="https://storage.ning.com/topology/rest/1.0/file/get/3341950897?profile=RESIZE_710x" class="align-center" width="903" height="871"/></a> </span></p>
<p><span style="font-size: 12pt;"> Além de ser confiável e simples de implementar, A <strong>Máquina de Estados</strong> tem outra característica muito relevante: é possível facilmente e rapidamente alterar seu funcionamento, caso se deseje isso. Uma curiosidade: primeiro fazemos o <strong>Diagrama de Estados</strong>, e depois que ele está "ok", basta segui-lo pra poder implementar a <strong>Máquina de Estados</strong>.</span></p>
<p><span style="font-size: 12pt;"> </span><span style="font-size: 12pt;"> </span></p>
<p><span style="font-size: 12pt;"> No código, deixei a possibilidade de se habilitar um "<strong>Debug</strong>" do Sistema. Você pode habilitá-lo se quiser, alterando o valor do "<strong>SYS_DEBUG_ON</strong>". Ele é o primeiro <strong><em>#define</em></strong> logo no início do código. Colocando "<strong>1</strong>" habilita o Debug. Colocando "<strong>0</strong>", desabilita. O importante é saber que usei para o <strong>Debug</strong>, a <strong><em>Serial padrão do Arduino</em></strong>, e quando a Serial é usada (Debug habilitado) então ela já consome cerca de <strong>200 bytes</strong> da <strong>memória RAM</strong>. Então no seu caso Paulo, acredito que vc não vá querer habilitar o Debug. Mas Debug usamos para desenvolvimento e testes, então não precisa estar habilitado no uso final.</span></p>
<p><span style="font-size: 12pt;"> O <strong><em>#define</em></strong> do <strong>Debug</strong> é usado também nos arquivos de "<strong>include</strong>", por isso no código este <strong><em>#define</em></strong> tem que estar <em><u>antes</u></em> dos "<strong>includes</strong>".</span></p>
<p><span style="font-size: 12pt;"> </span><span style="font-size: 12pt;"> </span></p>
<p><span style="font-size: 12pt;"> Também testei a <strong>página HTML</strong> atual. A que eu deixei é simples, e vc pode ver a "carinha" dela na figura a seguir:</span></p>
<p style="text-align: center;"><span style="font-size: 10pt;"><strong><em>(clique na figura para "zoom")</em></strong></span></p>
<p><span style="font-size: 12pt;"><a href="https://storage.ning.com/topology/rest/1.0/file/get/3341974966?profile=original" target="_blank" rel="noopener"><img src="https://storage.ning.com/topology/rest/1.0/file/get/3341974966?profile=RESIZE_710x" class="align-center" width="471" height="398"/></a> </span></p>
<p><span style="font-size: 12pt;"> </span><span style="font-size: 12pt;"> Claro, como o código está totalmente organizado e fácil de mexer, você poderá alterar a <strong>página HTML</strong> facilmente. Mas siga a técnica que usei, pois isso é absolutamente necessário para não consumir a <strong>memória RAM</strong>. É fácil seguir a ideia, basta olhar com atenção. Senão vai voltar sua dor de cabeça por causa da falta de memória.</span></p>
<p><span style="font-size: 12pt;"> </span><span style="font-size: 12pt;"> </span></p>
<p><span style="font-size: 12pt;"> Segue o código: <em><strong><a href="https://storage.ning.com/topology/rest/1.0/file/get/3341986331?profile=original" target="_blank" rel="noopener">AR_Cond_Varjal_02.zip</a></strong></em></span></p>
<p><span style="font-size: 12pt;"> </span></p>
<p><span style="font-size: 12pt;"> <em><u>Nota</u></em>: a pasta que tem o <strong>Diagrama de Estados</strong>, não é usada na compilação. Ela está ali apenas para documentação.</span></p>
<p><span style="font-size: 12pt;"> </span><span style="font-size: 12pt;"> </span></p>
<p><span style="font-size: 12pt;"> Caso tenha alguma dúvida ou comentário, não deixe de postar aqui.</span></p>
<p><span style="font-size: 12pt;"> </span></p>
<p><span style="font-size: 12pt;"> Abrçs,</span></p>
<p></p>
<p><span style="font-size: 12pt;"> Elcids</span></p>
<p><span style="font-size: 12pt;"> </span></p> Grato.tag:labdegaragem.com,2019-07-17:6223006:Comment:7133752019-07-17T00:21:01.658ZPaulo Varjalhttps://labdegaragem.com/profile/PauloVarjal
<p>Grato.</p>
<p>Grato.</p> Fico aguardando. Gratotag:labdegaragem.com,2019-07-15:6223006:Comment:7132392019-07-15T19:56:06.804ZPaulo Varjalhttps://labdegaragem.com/profile/PauloVarjal
<p>Fico aguardando. Grato</p>
<p>Fico aguardando. Grato</p> Sim, muito bom. Vc consegue e…tag:labdegaragem.com,2019-07-13:6223006:Comment:7130262019-07-13T14:57:37.182ZPaulo Varjalhttps://labdegaragem.com/profile/PauloVarjal
<p>Sim, muito bom. Vc consegue entender muito rápido o meu objetivo e consegue propor melhorias que eu nem havia pensado.... podemos enviar mais de uma vez para aumentar a chance de funcionar corretamente... O controle de temperatura que incluí foi justamente pq não temos como saber se o ar esta funcionando.... ninguém fica nesta sala... então se a sala esquentar é pq o ar não está funcionando.</p>
<p></p>
<p>Sim, muito bom. Vc consegue entender muito rápido o meu objetivo e consegue propor melhorias que eu nem havia pensado.... podemos enviar mais de uma vez para aumentar a chance de funcionar corretamente... O controle de temperatura que incluí foi justamente pq não temos como saber se o ar esta funcionando.... ninguém fica nesta sala... então se a sala esquentar é pq o ar não está funcionando.</p>
<p></p> Ah, sobre a segunda questão,…tag:labdegaragem.com,2019-07-13:6223006:Comment:7131392019-07-13T14:49:20.943ZElcids Chagashttps://labdegaragem.com/profile/ElcidsChagas
<p><span style="font-size: 12pt;">Ah, sobre a segunda questão, talvez possa ser feito de outra forma mais confiável:</span></p>
<p><span style="font-size: 12pt;"> Quando se clicar em ligar, poderia-se enviar pelo <strong>Controle IR</strong>, o <strong>comando</strong> "<strong>ligar</strong>" <span style="text-decoration: underline;"><em>mais de uma vez</em></span> (em intervalos que vc escolhe, tipo 1 segundo, 2 segundos, etc). Neste caso, vc define no código, quantas vezes o comando…</span></p>
<p><span style="font-size: 12pt;">Ah, sobre a segunda questão, talvez possa ser feito de outra forma mais confiável:</span></p>
<p><span style="font-size: 12pt;"> Quando se clicar em ligar, poderia-se enviar pelo <strong>Controle IR</strong>, o <strong>comando</strong> "<strong>ligar</strong>" <span style="text-decoration: underline;"><em>mais de uma vez</em></span> (em intervalos que vc escolhe, tipo 1 segundo, 2 segundos, etc). Neste caso, vc define no código, quantas vezes o comando "ligar" seria enviado (1, 2, 3, etc). Claro, antes de se enviar o primeiro "ligar", envia-se o "desligar", espera-se 8 segundos, e então envia-se o "ligar" a quantidade de vezes definida no código. Que acha?</span></p>
<p></p>
<p><span style="font-size: 12pt;"> Abrçs,</span></p>
<p></p>
<p><span style="font-size: 12pt;"> Elcids</span></p>
<p></p> Elcids,
Como te falei no pri…tag:labdegaragem.com,2019-07-13:6223006:Comment:7132042019-07-13T14:47:22.479ZPaulo Varjalhttps://labdegaragem.com/profile/PauloVarjal
<p>Elcids, </p>
<p>Como te falei no privado, neste primeiro momento eu não precisaria me preocupar com temperatura mínima. Preciso apenas garantir que o ar fique sempre ligado.</p>
<p>Sobre o comando "html" de ligar, vc esta certo: Seria mais confiável se fosse enviado um comando de desligar e apos uns segundo o comando de ligar...</p>
<p>Grato</p>
<p>Elcids, </p>
<p>Como te falei no privado, neste primeiro momento eu não precisaria me preocupar com temperatura mínima. Preciso apenas garantir que o ar fique sempre ligado.</p>
<p>Sobre o comando "html" de ligar, vc esta certo: Seria mais confiável se fosse enviado um comando de desligar e apos uns segundo o comando de ligar...</p>
<p>Grato</p>