Código Arduino Pulso - Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)2024-03-29T15:53:50Zhttps://labdegaragem.com/forum/topics/c-digo-arduino-pulso?commentId=6223006%3AComment%3A708946&xg_source=activity&feed=yes&xn_auth=noObrigado, José, exatamente is…tag:labdegaragem.com,2019-05-20:6223006:Comment:7088452019-05-20T00:55:35.418ZRoberto Corteshttps://labdegaragem.com/profile/RobertoCortes
<p>Obrigado, José, exatamente isso, funcionou!!!</p>
<p>Obrigado, José, exatamente isso, funcionou!!!</p> ola eu analisei seu código. p…tag:labdegaragem.com,2019-05-20:6223006:Comment:7089502019-05-20T00:37:45.697ZJosé de Sousa britohttps://labdegaragem.com/profile/JosedeSousabrito
<p>ola eu analisei seu código. parece que ja tem o que vc ta querendo..o pino seria (32) -> (06.PORTAO FRENTE) o comando quando vc for colocar no apk seria (6) pra acionar ele..</p>
<p></p>
<p>ola eu analisei seu código. parece que ja tem o que vc ta querendo..o pino seria (32) -> (06.PORTAO FRENTE) o comando quando vc for colocar no apk seria (6) pra acionar ele..</p>
<p></p> Ok obrigado José!!!tag:labdegaragem.com,2019-05-20:6223006:Comment:7089482019-05-20T00:11:05.875ZRoberto Corteshttps://labdegaragem.com/profile/RobertoCortes
<p>Ok obrigado José!!!</p>
<p>Ok obrigado José!!!</p> kkkkkkk ola RC tente apaga es…tag:labdegaragem.com,2019-05-19:6223006:Comment:7087612019-05-19T23:58:35.612ZJosé de Sousa britohttps://labdegaragem.com/profile/JosedeSousabrito
<p>kkkkkkk ola RC tente apaga esse pequeno código que vc colocou pq fica ate difícil de chegar ate o final.. e faça o anexo.. qualquer duvida faça a consulta de como postar ( <a href="http://labdegaragem.com/forum/topics/sugest-o-de-como-postar" target="_blank">http://labdegaragem.com/forum/topics/sugest-o-de-como-postar</a>)</p>
<p>kkkkkkk ola RC tente apaga esse pequeno código que vc colocou pq fica ate difícil de chegar ate o final.. e faça o anexo.. qualquer duvida faça a consulta de como postar ( <a href="http://labdegaragem.com/forum/topics/sugest-o-de-como-postar" target="_blank">http://labdegaragem.com/forum/topics/sugest-o-de-como-postar</a>)</p> abaixo o código, obrigado pel…tag:labdegaragem.com,2019-05-19:6223006:Comment:7089462019-05-19T23:50:19.475ZRoberto Corteshttps://labdegaragem.com/profile/RobertoCortes
<p>abaixo o código, obrigado pela atenção!</p>
<p></p>
<p> </p>
<p>#include <Ethernet.h></p>
<p>#include <SPI.h></p>
<p>#include <EEPROM.h></p>
<p>/////////////////////////////////////////////<br></br>//CONFIGURATION<br></br>////////////////////////////////////////////</p>
<p>//IP manual settings</p>
<p>byte ip[] = {192, 168, 15, 150 }; //AQUI VC COLOCA SEU IP</p>
<p>byte gateway[] = {192, 168, 15, 1 }; //AQUI VC COLOCA SEU IP</p>
<p>byte subnet[] = {255, 255, 255, 0 }; //AQUI VC…</p>
<p>abaixo o código, obrigado pela atenção!</p>
<p></p>
<p> </p>
<p>#include <Ethernet.h></p>
<p>#include <SPI.h></p>
<p>#include <EEPROM.h></p>
<p>/////////////////////////////////////////////<br/>//CONFIGURATION<br/>////////////////////////////////////////////</p>
<p>//IP manual settings</p>
<p>byte ip[] = {192, 168, 15, 150 }; //AQUI VC COLOCA SEU IP</p>
<p>byte gateway[] = {192, 168, 15, 1 }; //AQUI VC COLOCA SEU IP</p>
<p>byte subnet[] = {255, 255, 255, 0 }; //AQUI VC COLOCA SEU IP</p>
<p>byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };</p>
<p>//Ethernet Port</p>
<p>EthernetServer server = EthernetServer(80); //default html port 80</p>
<p>//O número de saídas vai ser comutado.</p>
<p>int outputQuantity = 19; //não deve exceder 19</p>
<p>//Inverta a saída dos leds</p>
<p>boolean outputInverted = true; //true or false</p>
<p>// Isso é feito no caso a placa de relé acionar o relé em negativo, ao invés de positivo<br/>//Html page refresh</p>
<p>int refreshPage = 40; //default is 50sec.</p>
<p>//Tenha em atenção que, se conseguir que a atualização seja muito rápida, a página pode ficar inacessível</p>
<p>//Exibir ou ocultar os botões "Ativar todos os pinos" na parte inferior da página</p>
<p>int switchOnAllPinsButton = true; //true or false</p>
<p>int outputAddress[19] = {22,24,26,28,30,32,34,36,38,40,42,44,46,48,49,47,43,41,45}; //Nenhum cliente por mais de um minuto - Escrevendo status para Eprom 22,24,26,28,30,32,34,36,38,40,42,44,46,48,49,47,43,41,45</p>
<p><br/>String buttonText[19] = {</p>
<p>"01.CORREDOR RUIVA","02.VENTILADOR RUIVA","03.RUIVA","04.FRENTE/FUNDOS","05.FRENTE","06.PORTAO FRENTE","07.LATERAL","08.VARANDA","09.SNOW","10.CHURRASQUEIRA","11.PORTAO GARAGEM","12.ALEMAO","13.CAIXA D'AGUA","14.ESCRITORIO","15.AREA","16.LIVRE","17.LIVRE","18.LIVRE","19.COMANDO GERAL"};</p>
<p>// Defina a saída para manter o último status após a falta de energia.</p>
<p>int retainOutputStatus[19] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};//1-reter o último status. 0-será desligado após o corte de energia.</p>
<p>////////////////////////////////////////////////////////////////////////</p>
<p>//VARIABLES DECLARATION</p>
<p>////////////////////////////////////////////////////////////////////////</p>
<p>int outp = 0;</p>
<p>boolean printLastCommandOnce = false;</p>
<p>boolean printButtonMenuOnce = false;</p>
<p>boolean initialPrint = true;</p>
<p>String allOn = "";</p>
<p>String allOff = "";</p>
<p>boolean reading = false;</p>
<p>boolean outputStatus[19]; //Crie uma matriz booleana para a quantidade máxima.</p>
<p>String rev = "";</p>
<p>unsigned long timeConnectedAt;</p>
<p>boolean writeToEeprom = false;</p>
<p>/////////////////////////////////////////////////</p>
<p>// Leitura Relacionada à Temperatura</p>
<p>const int tempInPin = A1;</p>
<p>int tempInValue = 0; //leitura de temperatura</p>
<p>int tempScaleOutValue = 0; //temperatura formatada</p>
<p>int tempOutValue = 0; //temperatura formatada</p>
<p>float tempOutDeg = 0.0;</p>
<p>////////////////////////////////////////////////////////////////////////</p>
<p>//RUN ONCE</p>
<p>////////////////////////////////////////////////////////////////////////</p>
<p>//Beginning of Program //Sensor de presença</p>
<p>int pinoled1 = 8; //Pino ligado ao led vermelho<br/>int pinoled2 = 9; //Pino ligado ao led amarelo<br/>int pinoled3 = 19; //Pino ligado ao led verde<br/>int pinoled4 = 10; //Pino ligado ao led azul</p>
<p>int pinopir1 = 2; //Pino ligado ao sensor PIR<br/>int pinopir2 = 3; //Pino ligado ao sensor PIR<br/>int pinopir3 = 4; //Pino ligado ao sensor PIR<br/>int pinopir4 = 5; //Pino ligado ao sensor PIR<br/>int acionamento; //Variavel para guardar valor do sensor</p>
<p>void setup(){</p>
<p>Serial.begin(9600);</p>
<p>initEepromValues();</p>
<p>readEepromValues();</p>
<p>//Set pins as Outputs</p>
<p>boolean currentState = false;</p>
<p>int var;</p>
<p>for (int i = 0; i < outputQuantity; i++){<br/> <br/> pinMode(pinoled1, OUTPUT); //Define pino como saida<br/> pinMode(pinopir1, INPUT); //Define pino sensor como entrada</p>
<p>pinMode(pinoled2, OUTPUT); //Define pino como saida<br/> pinMode(pinopir2, INPUT); //Define pino sensor como entrada</p>
<p>pinMode(pinoled3, OUTPUT); //Define pino como saida<br/> pinMode(pinopir3, INPUT); //Define pino sensor como entrada</p>
<p>pinMode(pinoled4, OUTPUT); //Define pino como saida<br/> pinMode(pinopir4, INPUT); //Define pino sensor como entrada</p>
<p><br/>pinMode(outputAddress[i], OUTPUT);</p>
<p>var = outputAddress[i];</p>
<p>//Aciona todas as saídas para ligado ou desligado na inicialização (true ou false)</p>
<p>if(outputInverted == false) {</p>
<p>//digitalWrite(outputAddress[var], LOW);</p>
<p>if(outputStatus[i] == 0){currentState = true;}else{currentState = false;} //verifique o status da saída se desligado, comute a saída em conformidade<br/>digitalWrite(var, currentState);</p>
<p>}</p>
<p>else{</p>
<p>//digitalWrite(outputAddress[var], LOW);</p>
<p>if(outputStatus[i] == 0){currentState = false;}else{currentState = true;} //verifique o status da saída se desligado, comute a saída em conformidade</p>
<p>digitalWrite(var, currentState);</p>
<p>}</p>
<p>}</p>
<p>//Setting up the IP address. Comment out the one you dont need.</p>
<p>//Ethernet.begin(mac); //for DHCP address. (Address will be printed to serial.)</p>
<p>Ethernet.begin(mac, ip, gateway, subnet); //for manual setup. (Address is the one configured above.)</p>
<p>server.begin();</p>
<p>Serial.print("Server started at ");</p>
<p>Serial.println(Ethernet.localIP());</p>
<p>}</p>
<p>////////////////////////////////////////////////////////////////////////</p>
<p>//LOOP</p>
<p>////////////////////////////////////////////////////////////////////////</p>
<p>//Run once</p>
<p></p>
<p>void loop(){</p>
<p>acionamento = digitalRead(pinopir1); //Le o valor do sensor PIR<br/> if (acionamento == LOW) //Sem movimento, mantem led azul ligado<br/> {<br/> digitalWrite(pinoled1, LOW);<br/> }<br/> else //Caso seja detectado um movimento, aciona o led vermelho<br/> {<br/> digitalWrite(pinoled1, HIGH); <br/> }</p>
<p>acionamento = digitalRead(pinopir2); //Le o valor do sensor PIR<br/> if (acionamento == LOW) //Sem movimento, mantem led azul ligado<br/> {<br/> digitalWrite(pinoled2, LOW);<br/> }<br/> else //Caso seja detectado um movimento, aciona o led vermelho<br/> {<br/> digitalWrite(pinoled2, HIGH);<br/>}</p>
<p>acionamento = digitalRead(pinopir3); //Le o valor do sensor PIR<br/> if (acionamento == LOW) //Sem movimento, mantem led azul ligado<br/> {<br/> digitalWrite(pinoled3, LOW);<br/> }<br/> else //Caso seja detectado um movimento, aciona o led vermelho<br/> {<br/> digitalWrite(pinoled3, HIGH);<br/> }<br/> <br/> acionamento = digitalRead(pinopir4); //Le o valor do sensor PIR<br/> if (acionamento == LOW) //Sem movimento, mantem led azul ligado<br/> {<br/> digitalWrite(pinoled4, LOW);<br/> }<br/> else //Caso seja detectado um movimento, aciona o led azul<br/> {<br/> digitalWrite(pinoled4, HIGH); <br/> }</p>
<p>//Read Temperature Sensor</p>
<p>tempInValue = analogRead(tempInPin);</p>
<p>// Connecting a 10K3 Thermistor to the Arduino Input</p>
<p>// +5V �—————————[10Kohms]—————————[Thermistor]——� 0V</p>
<p>// To Arduino IP �———————————|</p>
<p>tempScaleOutValue = map(tempInValue, 0, 1023, 1023, 0); //Arduino value and NTC of the 10K3 Thermistor</p>
<p>tempOutValue = map(tempScaleOutValue, 130, 870, -170, 730); //range of Arduino Value compared with Temperature</p>
<p>tempOutValue = tempOutValue -45; //Adjustments</p>
<p>tempOutDeg = tempOutValue / 10.0;</p>
<p>checkForClient();</p>
<p>}</p>
<p>////////////////////////////////////////////////////////////////////////</p>
<p>//checkForClient Function</p>
<p>////////////////////////////////////////////////////////////////////////</p>
<p>//</p>
<p>void checkForClient(){</p>
<p>EthernetClient client = server.available();</p>
<p>if (client) {</p>
<p>boolean currentLineIsBlank = true;</p>
<p>boolean sentHeader = false;</p>
<p>int temp,temp1;</p>
<p>while (client.connected()) {</p>
<p>if (client.available()) {</p>
<p>char c = client.read();</p>
<p>if(c == '*'){</p>
<p>printHtmlHeader(client); //call for html header and css</p>
<p>printLoginTitle(client);</p>
<p>printHtmlFooter(client);</p>
<p>break;</p>
<p>}</p>
<p>if(!sentHeader){</p>
<p>printHtmlHeader(client); //call for html header and css</p>
<p>printHtmlButtonTitle(client); //print the button title</p>
<p>sentHeader = true;</p>
<p>}</p>
<p>if(reading && c == ' '){</p>
<p>reading = false;</p>
<p>}</p>
<p>if(c == '?') {</p>
<p>reading = true; //found the ?, begin reading the info</p>
<p>}</p>
<p>if(reading){</p>
<p>//if user input is H set output to 1</p>
<p>if(c == 'H') {</p>
<p>outp = 1;</p>
<p>}</p>
<p>if(c == 'L') {</p>
<p>outp = 0;</p>
<p>}</p>
<p>// Serial.println(c); //print the value of c to serial communication</p>
<p>//---------------------------------------------------------------------------------------------</p>
<p>// ? H 1 0</p>
<p>// ^ ^ ^ ^</p>
<p>// | | | |____________read 4 ( 10,11,12,13....)</p>
<p>// | | |______________read 3 ( 1....9)</p>
<p>// | |________________read 2 if user input is H set output to L</p>
<p>// |__________________read 1</p>
<p>//---------------------------------------------------------------------------------------------</p>
<p>if( c == '1'){</p>
<p>char c = client.read();</p>
<p>switch (c) {</p>
<p>case '0':</p>
<p>triggerPin(outputAddress[10], client, outp);</p>
<p>break;</p>
<p>case '1':</p>
<p>triggerPin(outputAddress[11], client, outp);</p>
<p>break;</p>
<p>case '2':</p>
<p>triggerPin(outputAddress[12], client, outp);</p>
<p>break;</p>
<p>case '3':</p>
<p>triggerPin(outputAddress[13], client, outp);</p>
<p>break;</p>
<p>case '4':</p>
<p>triggerPin(outputAddress[14], client, outp);</p>
<p>break;</p>
<p>case '5':</p>
<p>triggerPin(outputAddress[15], client, outp);</p>
<p>break;</p>
<p>case '6':</p>
<p>triggerPin(outputAddress[16], client, outp);</p>
<p>break;</p>
<p>case '7':</p>
<p>triggerPin(outputAddress[17], client, outp);</p>
<p>break;</p>
<p>case '8':</p>
<p>triggerPin(outputAddress[18], client, outp);</p>
<p>break;</p>
<p>case '9':</p>
<p>triggerPin(outputAddress[19], client, outp);</p>
<p>break;</p>
<p>default:</p>
<p>char c = client.read();</p>
<p>triggerPin(outputAddress[1], client, outp);</p>
<p>}</p>
<p>}</p>
<p>else {</p>
<p>switch (c) {</p>
<p>case '0':</p>
<p>triggerPin(outputAddress[0], client, outp);</p>
<p>//break;</p>
<p>//case '1':</p>
<p>//triggerPin(outputAddress[1], client, outp);</p>
<p>break;</p>
<p>case '2':</p>
<p>triggerPin(outputAddress[2], client, outp);</p>
<p>break;</p>
<p>case '3':</p>
<p>//add code here to trigger on 3</p>
<p>triggerPin(outputAddress[3], client, outp);</p>
<p>break;</p>
<p>case '4':</p>
<p>//add code here to trigger on 4</p>
<p>triggerPin(outputAddress[4], client, outp);</p>
<p>break;</p>
<p>case '5':</p>
<p>//add code here to trigger on 5</p>
<p>triggerPin(outputAddress[5], client, outp);</p>
<p>//printHtml(client);</p>
<p>break;</p>
<p>case '6':</p>
<p>//add code here to trigger on 6</p>
<p>triggerPin(outputAddress[6], client, outp);</p>
<p>break;</p>
<p>case '7':</p>
<p>//add code here to trigger on 7</p>
<p>triggerPin(outputAddress[7], client, outp);</p>
<p>break;</p>
<p>case '8':</p>
<p>//add code here to trigger on 8</p>
<p>triggerPin(outputAddress[8], client, outp);</p>
<p>break;</p>
<p>case '9':</p>
<p>//add code here to trigger on 9</p>
<p>triggerPin(outputAddress[9], client, outp);</p>
<p>break;</p>
<p>} //end of switch case</p>
<p>}</p>
<p>}//end of switch switch the relevant output</p>
<p>//if user input was blank</p>
<p>if (c == '\n' && currentLineIsBlank){</p>
<p>printLastCommandOnce = true;</p>
<p>printButtonMenuOnce = true;</p>
<p>triggerPin(777, client, outp); //Call to read input and print menu. 777 is used not to update any outputs</p>
<p>break;</p>
<p>}</p>
<p>}</p>
<p>}</p>
<p>printHtmlFooter(client); //Prints the html footer</p>
<p>}</p>
<p>else{</p>
<p>if (millis() > (timeConnectedAt + 60000)){</p>
<p>if (writeToEeprom == true){</p>
<p>writeEepromValues(); //write to EEprom the current output statuses</p>
<p>Serial.println("No Clients for more then a minute - Writing statuses to Eeprom.");</p>
<p>writeToEeprom = false;</p>
<p>}</p>
<p>}</p>
<p>}</p>
<p>}// END</p>
<p>////////////////////////////////////////////////////////////////////////</p>
<p>//triggerPin Function</p>
<p>////////////////////////////////////////////////////////////////////////</p>
<p>//</p>
<p>void triggerPin(int pin, EthernetClient client, int outp){</p>
<p>if (pin != 777){</p>
<p>// Serial.println(pin);</p>
<p>if(outp == 1) {</p>
<p>if (outputInverted ==false){</p>
<p>digitalWrite(pin, HIGH);</p>
<p>}</p>
<p>else{</p>
<p>digitalWrite(pin, LOW);</p>
<p>}</p>
<p>}</p>
<p>if(outp == 0){</p>
<p>if (outputInverted ==false){</p>
<p>digitalWrite(pin, LOW);</p>
<p>}</p>
<p>else{</p>
<p>digitalWrite(pin, HIGH);</p>
<p>}</p>
<p>}</p>
<p>}</p>
<p>//Refresh the reading of outputs</p>
<p>readOutputStatuses();</p>
<p>//Prints the buttons</p>
<p>if (printButtonMenuOnce == true){</p>
<p>printHtmlButtons(client);</p>
<p>printButtonMenuOnce = false;</p>
<p>}</p>
<p>}</p>
<p>////////////////////////////////////////////////////////////////////////</p>
<p>//printHtmlButtons Function</p>
<p>////////////////////////////////////////////////////////////////////////</p>
<p>//print the html buttons to switch on/off channels</p>
<p>void printHtmlButtons(EthernetClient client){</p>
<p>//Start to create the html table</p>
<p>client.println("");</p>
<p>//client.println("<p>");</p>
<p>client.println("<FORM>");</p>
<p>client.println("<table border=\"0\" align=\"center\">");</p>
<p>//Printing the Temperature</p>
<p>client.print("<tr>\n");</p>
<p>client.print("<td><h4>");</p>
<p>client.print("Temperature");</p>
<p>client.print("</h4></td>\n");</p>
<p>client.print("<td></td>");</p>
<p>client.print("<td>");</p>
<p>client.print("<h3>");</p>
<p>client.print(tempOutDeg);</p>
<p>client.print(" °C</h3></td>\n");</p>
<p>client.print("<td></td>");</p>
<p>client.print("</tr>");</p>
<p>//Start printing button by button</p>
<p>for (int var = 0; var < outputQuantity; var++) {</p>
<p>//set command for all on/off</p>
<p>allOn += "H";</p>
<p>allOn += outputAddress[var];</p>
<p>allOff += "L";</p>
<p>allOff += outputAddress[var];</p>
<p>//Print begining of row</p>
<p>client.print("<tr>\n");</p>
<p>//Prints the button Text</p>
<p>client.print("<td><h4>");</p>
<p>client.print(buttonText[var]);</p>
<p>client.print("</h4></td>\n");</p>
<p>//Prints the ON Buttons+++++++++++++++++++++++++++++++++++++++++++++++</p>
<p>client.print("<td>");</p>
<p>client.print("<INPUT TYPE=\"button\" VALUE=\"ON ");</p>
<p>client.print("\" onClick=\"parent.location='/?H");</p>
<p>client.print(var);</p>
<p>client.print("'\"></td>\n");</p>
<p>//Prints the OFF Buttons ---------------------------------------------</p>
<p>client.print(" <td><INPUT TYPE=\"button\" VALUE=\"OFF");</p>
<p>client.print("\" onClick=\"parent.location='/?L");</p>
<p>client.print(var);</p>
<p>client.print("'\"></td>\n");</p>
<p>//Invert the LED display if output is inverted.</p>
<p>if (outputStatus[var] == true ){ //If Output is ON</p>
<p>if (outputInverted == false){ //and if output is not inverted</p>
<p>client.print(" <td><div class='green-circle'><div class='glare'></div></div></td>\n"); //Print html for ON LED</p>
<p>}</p>
<p>else{ //else output is inverted then</p>
<p>client.print(" <td><div class='black-circle'><div class='glare'></div></div></td>\n"); //Print html for OFF LED</p>
<p>}</p>
<p>}</p>
<p>else //If Output is Off</p>
<p>{</p>
<p>if (outputInverted == false){ //and if output is not inverted</p>
<p>client.print(" <td><div class='black-circle'><div class='glare'></div></div></td>\n"); //Print html for OFF LED</p>
<p>}</p>
<p>else{ //else output is inverted then</p>
<p>client.print(" <td><div class='green-circle'><div class='glare'></div></div></td>\n"); //Print html for ON LED</p>
<p>}</p>
<p>}</p>
<p>//Print end of row</p>
<p>client.print("</tr>\n");</p>
<p>}</p>
<p>//Display or hide the Print all on Pins Button</p>
<p>if (switchOnAllPinsButton == true ){</p>
<p>//Prints the ON All Pins Button</p>
<p>client.print("<tr>\n<td><INPUT TYPE=\"button\" VALUE=\"ON");</p>
<p>client.print("\" onClick=\"parent.location='/?");</p>
<p>client.print(allOn);</p>
<p>client.print("'\"></td>\n");</p>
<p>//Prints the OFF All Pins Button</p>
<p>client.print("<td><INPUT TYPE=\"button\" VALUE=\"OFF");</p>
<p>client.print("\" onClick=\"parent.location='/?");</p>
<p>client.print(allOff);</p>
<p>client.print("'\"></td>\n<td></td>\n<td></td>\n</tr>\n");</p>
<p>}</p>
<p>//Closing the table and form</p>
<p>client.println("</table>");</p>
<p>client.println("</FORM>");</p>
<p>//client.println("</p>");</p>
<p>}</p>
<p>////////////////////////////////////////////////////////////////////////</p>
<p>//readOutputStatuses Function</p>
<p>////////////////////////////////////////////////////////////////////////</p>
<p>//Reading the Output Statuses</p>
<p>void readOutputStatuses(){</p>
<p>for (int var = 0; var < outputQuantity; var++) {</p>
<p>outputStatus[var] = digitalRead(outputAddress[var]);</p>
<p>//Serial.print(outputStatus[var]);</p>
<p>}</p>
<p>}</p>
<p>////////////////////////////////////////////////////////////////////////</p>
<p>//readEepromValues Function</p>
<p>////////////////////////////////////////////////////////////////////////</p>
<p>//Read EEprom values and save to outputStatus</p>
<p>void readEepromValues(){</p>
<p>for (int adr = 0; adr < outputQuantity; adr++) {</p>
<p>outputStatus[adr] = EEPROM.read(adr);</p>
<p>}</p>
<p>}</p>
<p>////////////////////////////////////////////////////////////////////////</p>
<p>//writeEepromValues Function</p>
<p>////////////////////////////////////////////////////////////////////////</p>
<p>//Write EEprom values</p>
<p>void writeEepromValues(){</p>
<p>for (int adr = 0; adr < outputQuantity; adr++) {</p>
<p>EEPROM.write(adr, outputStatus[adr]);</p>
<p>}</p>
<p>}</p>
<p>////////////////////////////////////////////////////////////////////////</p>
<p>//initEepromValues Function</p>
<p>////////////////////////////////////////////////////////////////////////</p>
<p>//Initialiaze EEprom values</p>
<p>//if eeprom values are not the correct format ie not euqual to 0 or 1 (thus greater then 1) initialize by putting 0</p>
<p>void initEepromValues(){</p>
<p>for (int adr = 0; adr < outputQuantity; adr++){</p>
<p>if (EEPROM.read(adr) > 1){</p>
<p>EEPROM.write(adr, 0);</p>
<p>}</p>
<p>}</p>
<p>}</p>
<p>////////////////////////////////////////////////////////////////////////</p>
<p>//htmlHeader Function</p>
<p>////////////////////////////////////////////////////////////////////////</p>
<p>//Prints html header</p>
<p>void printHtmlHeader(EthernetClient client){</p>
<p>// Serial.print("Serving html Headers at ms -");</p>
<p>timeConnectedAt = millis(); //Record the time when last page was served.</p>
<p>// Serial.print(timeConnectedAt); // Print time for debbugging purposes</p>
<p>writeToEeprom = true; // page loaded so set to action the write to eeprom</p>
<p>// send a standard http response header</p>
<p>client.println("HTTP/1.1 200 OK");</p>
<p>client.println("Content-Type: text/html");</p>
<p>client.println("Connnection: close");</p>
<p>client.println();</p>
<p>client.println("<!DOCTYPE HTML>");</p>
<p>client.println("<head>");</p>
<p>// add page title</p>
<p>client.println("<title>Painel</title>");</p>
<p>client.println("<meta name=\"description\" content=\"CORTES\"/>");</p>
<p>// add a meta refresh tag, so the browser pulls again every x seconds:</p>
<p>client.print("<meta http-equiv=\"refresh\" content=\"");</p>
<p>client.print(refreshPage);</p>
<p>client.println("; url=/\">");</p>
<p>// add other browser configuration</p>
<p>client.println("<meta name=\"apple-mobile-web-app-capable\" content=\"yes\">");</p>
<p>client.println("<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"default\">");</p>
<p>client.println("<meta name=\"viewport\" content=\"width=device-width, user-scalable=no\">");</p>
<p>//inserting the styles data, usually found in CSS files.</p>
<p>client.println("<style type=\"text/css\">");</p>
<p>client.println("");</p>
<p>//This will set how the page will look graphically</p>
<p>client.println("html { height:100%; }");</p>
<p>client.println(" body {");</p>
<p>client.println(" height: 100%;");</p>
<p>client.println(" margin: 0;");</p>
<p>client.println(" font-family: helvetica, sans-serif;");</p>
<p>client.println(" -webkit-text-size-adjust: none;");</p>
<p>client.println(" }");</p>
<p>client.println("");</p>
<p>client.println("body {");</p>
<p>client.println(" -webkit-background-size: 100% 21px;");</p>
<p>client.println(" background-color: #c5ccd3;");</p>
<p>client.println(" background-image:");</p>
<p>client.println(" -webkit-gradient(linear, left top, right top,");</p>
<p>client.println(" color-stop(.75, transparent),");</p>
<p>client.println(" color-stop(.75, rgba(255,255,255,.1)) );");</p>
<p>client.println(" -webkit-background-size: 7px;");</p>
<p>client.println(" }");</p>
<p>client.println("");</p>
<p>client.println(".view {");</p>
<p>client.println(" min-height: 100%;");</p>
<p>client.println(" overflow: auto;");</p>
<p>client.println(" }");</p>
<p>client.println("");</p>
<p>client.println(".header-wrapper {");</p>
<p>client.println(" height: 44px;");</p>
<p>client.println(" font-weight: bold;");</p>
<p>client.println(" text-shadow: rgba(0,0,0,0.7) 0 -1px 0;");</p>
<p>client.println(" border-top: solid 1px rgba(255,255,255,0.6);");</p>
<p>client.println(" border-bottom: solid 1px rgba(0,0,0,0.6);");</p>
<p>client.println(" color: #fff;");</p>
<p>client.println(" background-color: #8195af;");</p>
<p>client.println(" background-image:");</p>
<p>client.println(" -webkit-gradient(linear, left top, left bottom,");</p>
<p>client.println(" from(rgba(255,255,255,.4)),");</p>
<p>client.println(" to(rgba(255,255,255,.05)) ),");</p>
<p>client.println(" -webkit-gradient(linear, left top, left bottom,");</p>
<p>client.println(" from(transparent),");</p>
<p>client.println(" to(rgba(0,0,64,.1)) );");</p>
<p>client.println(" background-repeat: no-repeat;");</p>
<p>client.println(" background-position: top left, bottom left;");</p>
<p>client.println(" -webkit-background-size: 100% 21px, 100% 22px;");</p>
<p>client.println(" -webkit-box-sizing: border-box;");</p>
<p>client.println(" }");</p>
<p>client.println("");</p>
<p>client.println(".header-wrapper h1 {");</p>
<p>client.println(" text-align: center;");</p>
<p>client.println(" font-size: 20px;");</p>
<p>client.println(" line-height: 44px;");</p>
<p>client.println(" margin: 0;");</p>
<p>client.println(" }");</p>
<p>client.println("");</p>
<p>client.println(".group-wrapper {");</p>
<p>client.println(" margin: 9px;");</p>
<p>client.println(" }");</p>
<p>client.println("");</p>
<p>client.println(".group-wrapper h2 {");</p>
<p>client.println(" color: #4c566c;");</p>
<p>client.println(" font-size: 17px;");</p>
<p>client.println(" line-height: 0.8;");</p>
<p>client.println(" font-weight: bold;");</p>
<p>client.println(" text-shadow: #fff 0 1px 0;");</p>
<p>client.println(" margin: 20px 10px 12px;");</p>
<p>client.println(" }");</p>
<p>client.println("");</p>
<p>client.println(".group-wrapper h3 {");</p>
<p>client.println(" color: #4c566c;");</p>
<p>client.println(" font-size: 12px;");</p>
<p>client.println(" line-height: 1;");</p>
<p>client.println(" font-weight: bold;");</p>
<p>client.println(" text-shadow: #fff 0 1px 0;");</p>
<p>client.println(" margin: 20px 10px 12px;");</p>
<p>client.println(" }");</p>
<p>client.println("");</p>
<p>client.println(".group-wrapper h4 {"); //Text for description</p>
<p>client.println(" color: #212121;");</p>
<p>client.println(" font-size: 14px;");</p>
<p>client.println(" line-height: 1;");</p>
<p>client.println(" font-weight: bold;");</p>
<p>client.println(" text-shadow: #aaa 1px 1px 3px;");</p>
<p>client.println(" margin: 5px 5px 5px;");</p>
<p>client.println(" }");</p>
<p>client.println("");</p>
<p>client.println(".group-wrapper table {");</p>
<p>client.println(" background-color: #fff;");</p>
<p>client.println(" -webkit-border-radius: 10px;");</p>
<p>client.println(" -moz-border-radius: 10px;");</p>
<p>client.println(" -khtml-border-radius: 10px;");</p>
<p>client.println(" border-radius: 10px;");</p>
<p>client.println(" font-size: 17px;");</p>
<p>client.println(" line-height: 20px;");</p>
<p>client.println(" margin: 9px 0 20px;");</p>
<p>client.println(" border: solid 1px #a9abae;");</p>
<p>client.println(" padding: 11px 3px 12px 3px;");</p>
<p>client.println(" margin-left:auto;");</p>
<p>client.println(" margin-right:auto;");</p>
<p>client.println(" -moz-transform :scale(1);"); //Code for Mozilla Firefox</p>
<p>client.println(" -moz-transform-origin: 0 0;");</p>
<p>client.println(" }");</p>
<p>client.println("");</p>
<p>//how the green (ON) LED will look</p>
<p>client.println(".green-circle {");</p>
<p>client.println(" display: block;");</p>
<p>client.println(" height: 23px;");</p>
<p>client.println(" width: 23px;");</p>
<p>client.println(" background-color: #0f0;");</p>
<p>//client.println(" background-color: rgba(60, 132, 198, 0.8);");</p>
<p>client.println(" -moz-border-radius: 11px;");</p>
<p>client.println(" -webkit-border-radius: 11px;");</p>
<p>client.println(" -khtml-border-radius: 11px;");</p>
<p>client.println(" border-radius: 11px;");</p>
<p>client.println(" margin-left: 1px;");</p>
<p>client.println(" background-image: -webkit-gradient(linear, 0% 0%, 0% 90%, from(rgba(46, 184, 0, 0.8)), to(rgba(148, 255, 112, .9)));@");</p>
<p>client.println(" border: 2px solid #ccc;");</p>
<p>client.println(" -webkit-box-shadow: rgba(11, 140, 27, 0.5) 0px 10px 16px;");</p>
<p>client.println(" -moz-box-shadow: rgba(11, 140, 27, 0.5) 0px 10px 16px; /* FF 3.5+ */");</p>
<p>client.println(" box-shadow: rgba(11, 140, 27, 0.5) 0px 10px 16px; /* FF 3.5+ */");</p>
<p>client.println(" }");</p>
<p>client.println("");</p>
<p>//how the black (off)LED will look</p>
<p>client.println(".black-circle {");</p>
<p>client.println(" display: block;");</p>
<p>client.println(" height: 23px;");</p>
<p>client.println(" width: 23px;");</p>
<p>client.println(" background-color: #040;");</p>
<p>client.println(" -moz-border-radius: 11px;");</p>
<p>client.println(" -webkit-border-radius: 11px;");</p>
<p>client.println(" -khtml-border-radius: 11px;");</p>
<p>client.println(" border-radius: 11px;");</p>
<p>client.println(" margin-left: 1px;");</p>
<p>client.println(" -webkit-box-shadow: rgba(11, 140, 27, 0.5) 0px 10px 16px;");</p>
<p>client.println(" -moz-box-shadow: rgba(11, 140, 27, 0.5) 0px 10px 16px; /* FF 3.5+ */");</p>
<p>client.println(" box-shadow: rgba(11, 140, 27, 0.5) 0px 10px 16px; /* FF 3.5+ */");</p>
<p>client.println(" }");</p>
<p>client.println("");</p>
<p>//this will add the glare to both of the LEDs</p>
<p>client.println(" .glare {");</p>
<p>client.println(" position: relative;");</p>
<p>client.println(" top: 1;");</p>
<p>client.println(" left: 5px;");</p>
<p>client.println(" -webkit-border-radius: 10px;");</p>
<p>client.println(" -moz-border-radius: 10px;");</p>
<p>client.println(" -khtml-border-radius: 10px;");</p>
<p>client.println(" border-radius: 10px;");</p>
<p>client.println(" height: 1px;");</p>
<p>client.println(" width: 13px;");</p>
<p>client.println(" padding: 5px 0;");</p>
<p>client.println(" background-color: rgba(200, 200, 200, 0.25);");</p>
<p>client.println(" background-image: -webkit-gradient(linear, 0% 0%, 0% 95%, from(rgba(255, 255, 255, 0.7)), to(rgba(255, 255, 255, 0)));");</p>
<p>client.println(" }");</p>
<p>client.println("");</p>
<p>//and finally this is the end of the style data and header</p>
<p>client.println("</style>");</p>
<p>client.println("</head>");</p>
<p>//now printing the page itself</p>
<p>client.println("<body>");</p>
<p>client.println("<div class=\"view\">");</p>
<p>client.println(" <div class=\"header-wrapper\">");</p>
<p>client.println(" <h1>AUTOMACAO</h1>");</p>
<p>client.println(" </div>");</p>
<p>//////</p>
<p>} //end of htmlHeader</p>
<p>////////////////////////////////////////////////////////////////////////</p>
<p>//htmlFooter Function</p>
<p>////////////////////////////////////////////////////////////////////////</p>
<p>//Prints html footer</p>
<p>void printHtmlFooter(EthernetClient client){</p>
<p>//Set Variables Before Exiting</p>
<p>printLastCommandOnce = false;</p>
<p>printButtonMenuOnce = false;</p>
<p>allOn = "";</p>
<p>allOff = "";</p>
<p>//printing last part of the html</p>
<p>client.println("\n<h3 align=\"center\">ROBERTO CORTES");</p>
<p>client.println(rev);</p>
<p>client.println("</h3></div>\n</div>\n</body>\n</html>");</p>
<p>delay(1); // give the web browser time to receive the data</p>
<p>client.stop(); // close the connection:</p>
<p>Serial.println(" - Done, Closing Connection.");</p>
<p>delay (2); //delay so that it will give time for client buffer to clear and does not repeat multiple pages.</p>
<p>} //end of htmlFooter</p>
<p>////////////////////////////////////////////////////////////////////////</p>
<p>//printHtmlButtonTitle Function</p>
<p>////////////////////////////////////////////////////////////////////////</p>
<p>//Prints html button title</p>
<p>void printHtmlButtonTitle(EthernetClient client){</p>
<p>client.println("<div class=\"group-wrapper\">");</p>
<p>client.println(" <h2></h2>");</p>
<p>client.println();</p>
<p>}</p>
<p>////////////////////////////////////////////////////////////////////////</p>
<p>//printLoginTitle Function</p>
<p>////////////////////////////////////////////////////////////////////////</p>
<p>//Prints html button title</p>
<p>void printLoginTitle(EthernetClient client){</p>
<p>// client.println("<div class=\"group-wrapper\">");</p>
<p>client.println(" <h2>Please enter the user data to login.</h2>");</p>
<p>client.println();</p>
<p>}</p> hum entendi.. pois anexa seu…tag:labdegaragem.com,2019-05-19:6223006:Comment:7086502019-05-19T23:43:19.010ZJosé de Sousa britohttps://labdegaragem.com/profile/JosedeSousabrito
<p>hum entendi.. pois anexa seu código pra me ve ele..</p>
<p></p>
<p>hum entendi.. pois anexa seu código pra me ve ele..</p>
<p></p> Boa noite José,
Eu não tenho…tag:labdegaragem.com,2019-05-19:6223006:Comment:7088412019-05-19T23:40:37.496ZRoberto Corteshttps://labdegaragem.com/profile/RobertoCortes
<p>Boa noite José,</p>
<p> Eu não tenho um botão ligado fisicamente a placa, todos acionamentos que eu faço é pelo celular.</p>
<p></p>
<p> Tem um arquivo anexado automação.png que vai te mostrar os acionamentos.</p>
<p></p>
<p> Obrigado</p>
<p>Boa noite José,</p>
<p> Eu não tenho um botão ligado fisicamente a placa, todos acionamentos que eu faço é pelo celular.</p>
<p></p>
<p> Tem um arquivo anexado automação.png que vai te mostrar os acionamentos.</p>
<p></p>
<p> Obrigado</p> Boa noite.. RC mais e tão sim…tag:labdegaragem.com,2019-05-19:6223006:Comment:7087562019-05-19T23:31:20.560ZJosé de Sousa britohttps://labdegaragem.com/profile/JosedeSousabrito
<p>Boa noite.. RC mais e tão simples seu código que vc msm consegui fazer isso.. o nosso amigo JV ja colocou ai em cima e só segui as instruções .. so pra fixa mais so fazer isso..</p>
<p>const int botao = 8; //Botão fisicamente ligado a porta digital 8</p>
<p>int rele = 3; // pino onde esta o rele</p>
<p>void setup(){</p>
<p>pinMode(botao,INPUT);</p>
<p>pinMode(rele,OUTPUT);</p>
<p>}</p>
<p>void…</p>
<p>Boa noite.. RC mais e tão simples seu código que vc msm consegui fazer isso.. o nosso amigo JV ja colocou ai em cima e só segui as instruções .. so pra fixa mais so fazer isso..</p>
<p>const int botao = 8; //Botão fisicamente ligado a porta digital 8</p>
<p>int rele = 3; // pino onde esta o rele</p>
<p>void setup(){</p>
<p>pinMode(botao,INPUT);</p>
<p>pinMode(rele,OUTPUT);</p>
<p>}</p>
<p>void loop(){</p>
<p>if(digitalRead(botao)==HIGH)</p>
<p>{</p>
<p> digitalWrite(relé,HIGH);</p>
<p>}</p>
<p>else{</p>
<p>digitalWrite(rele,LOW);</p>
<p>}</p> Olá João Vitor,
Muito obriga…tag:labdegaragem.com,2019-05-19:6223006:Comment:7088372019-05-19T23:18:20.403ZRoberto Corteshttps://labdegaragem.com/profile/RobertoCortes
<p>Olá João Vitor,</p>
<p> Muito obrigado pela sua resposta, pode ser até simples adicionar os códigos que você passou, mas, infelizmente não tenho conhecimento para isso, até tentei rsrs, mas, não obtive um resultado favorável. </p>
<p></p>
<p> Não querendo ser abusivo, mas se eu colocar o código aqui, você poderia dar uma verificada pra mim?</p>
<p></p>
<p> Eu uso um Arduino Mega, o código funciona direitinho, no inicio tive alguns problemas mas, consegui…</p>
<p>Olá João Vitor,</p>
<p> Muito obrigado pela sua resposta, pode ser até simples adicionar os códigos que você passou, mas, infelizmente não tenho conhecimento para isso, até tentei rsrs, mas, não obtive um resultado favorável. </p>
<p></p>
<p> Não querendo ser abusivo, mas se eu colocar o código aqui, você poderia dar uma verificada pra mim?</p>
<p></p>
<p> Eu uso um Arduino Mega, o código funciona direitinho, no inicio tive alguns problemas mas, consegui acertar.</p>
<p></p>
<p> Obrigado</p>
<p></p>
<p> </p>
<p></p>
<p> </p> 1) Adicione ao seu códig…tag:labdegaragem.com,2019-05-18:6223006:Comment:7087272019-05-18T17:06:59.661ZJoao Vitorhttps://labdegaragem.com/profile/jvsilvictor
<p></p>
<p> <strong> 1) Adicione ao seu código a variável global referente ao botão e a porta em que este está conectado:</strong></p>
<p> Exemplo:</p>
<p> const int botao = 8; //Botão fisicamente ligado a porta digital 8.</p>
<p></p>
<p> <strong>2) No setup, defina as propriedades do seu botão:</strong></p>
<p> Exemplo:</p>
<p> pinMode(botao,INPUT); //O botão será uma entrada para o sistema</p>
<p></p>
<p> <strong>3) No seu programa…</strong></p>
<p></p>
<p> <strong> 1) Adicione ao seu código a variável global referente ao botão e a porta em que este está conectado:</strong></p>
<p> Exemplo:</p>
<p> const int botao = 8; //Botão fisicamente ligado a porta digital 8.</p>
<p></p>
<p> <strong>2) No setup, defina as propriedades do seu botão:</strong></p>
<p> Exemplo:</p>
<p> pinMode(botao,INPUT); //O botão será uma entrada para o sistema</p>
<p></p>
<p> <strong>3) No seu programa (loop), faça as leituras e as ações conforme desejar</strong></p>
<p> Exemplo:</p>
<p> if(digitalRead(botao)==0)</p>
<p> {</p>
<p> //código para acionar o portão</p>
<p> }</p>
<p></p>
<p></p>
<p></p>
<p> </p>