Olá pessoal,
criei uma pagina HTML, usando o Arduíno, para ser a interface de programação dos parâmetros de um sistema temporizado. Nesta página adicionei um combobox com os valores de tempo pré definidos.
A questão é gostaria de recuperar os valores selecionados e utilizar como parâmetros em que um relé ficará acionado.
Alguém pode me ajudar?
Tags:
Cara, eu fiz isso mas dentro da programação do arduino, achei mais facil criar um contador dentro do programa com o tempo que eu quero que o relê fique acionado
no caso de uma programação de tempo diária em um hora específica vc pode usar o RTC externo.
Entendo Rafael, o caso é que o tempo realmente vai rodar dentro do arduino, por exemplo com um delay, a a informação de quanto tempo deve vir do html...
Então a diferença é que com delay vc pausa o programa e com contador vc pode fazer outros acionamentos simultaneamente.
Tipo enquanto conta o tempo o programa fica disponivel para receber outro comando
Poderia ver o código do arduino que vc fez?
Rafael,
criei um formulario drop down com o seguinte codigo:
client.print("<center><span style=\"color: #00ff00;\"><form>Tempo: <form action= method= > <select name= temp1 ><option value= 60>1 minuto</option><option value= 120>2 minutos</option></select></form> ");
e preciso recuperar o value do da seleção e armazenar em uma variavel de tempo para ser usada no arduino.
Então deixa eu ver se entendi:
Vc tem a variável Value que define o minuto, e oque vc quer é guarda o estado atual dela para temporizar o relê, tipo se ela guardou 1 min, o relê vai ligar por 1min certo?
Se for isso eu tenho uma idéia, quando vc mudar essa variável Value a página precisa atualizar, assim ele vai guardar o valor atual. Por exemplo ela atualizou em 2 min.
Oque teria que fazer é ter uma variavel State que vai guardar o valor atual de Value tipo State==Value
Cria um if de comparação tipo if(State = 2); cria o contador e deixa pra 2 min
e outro if para 1 min, caso vc não consiga criar esse contador eu tenho um exemplo que posso te passar.
Algumas coisas o arduino não consegue executar dentro do html então talvez esse "tempo" que vc quer acionar o relê precise ficar fora da estrutura HTML.
É exatamente isto!
Eu também prefiro rodar o tempo no Arduíno. Gostaria de ver seu exemplo, se não for incomodo. Estou tendo dificuldades na sintaxe do codigo HTML para o Arduíno, não sei os comandos para extrair a variável. Conheço um pouco em HTML mas parece ser um pouco diferente...
Nesse código por exemplo quando eu aciono o portapiscina = 2;
Ele vai ficar ligado no máximo 35min que é a bomba da piscina
Eu posso desligar antes, mas caso esqueça ele vai desligar sózinho
Hicaro, boa tarde.
Você está usando somente html? O HTML é uma linguagem estática, para fazer esse tipo de interação, como receber valores carrega-los é necessário trabalhar com alguma variável, dai pra isso você pode usar javascript, PHP, ASP, esse tipo de linguagem.
Se eu entendi sua necessidade é de na combo box você coloca uma opção de 2 minutos, se você fechar o navegador e abrir de novo, você desejar mostrar na combo box o numero 2, correto ? É isso?
Abraço
Michael,
so estou usando o HTML. A função seria mais ou menos essa, eu quero usar o valor do combo box para temporizar um rele...
#define LED_Amarelo 5 //Define LED_Amarelo como 5
#define LED_Vermelho 6 //Define LED_Vermelho como 6
#define LED_Verde 7 //Define LED_Verde como 7
#define Rele 8 //Define rele de acionamento como 8
#include <SPI.h> //Inclui a biblioteca SPI.h
#include <Ethernet.h> //Inclui a biblioteca Ethernet.h
// Configurações para o Ethernet Shield
byte mac[] = { 0x90, 0xA2, 0xDA, 0x0D, 0x83, 0xEA }; // Entre com o valor do MAC
IPAddress ip(192,168,0,2); // Configure um IP válido
byte gateway[] = { 192 , 168, 0, 1 }; //Entre com o IP do Computador onde a Câmera esta instalada
byte subnet[] = { 255, 255, 255, 0 }; //Entre com a Máskara de Subrede
EthernetServer server(80); //Inicializa a biblioteca EthernetServer com os valores de IP acima citados e configura a porta de acesso(80)
int temp1 = 0;
int temp2 = 0;
int temp3 = 0;
int temp4 = 0;
void setup()
{
pinMode(LED_Amarelo,OUTPUT); //Define o pino 5 como saída
pinMode(LED_Vermelho,OUTPUT); //Define o pino 6 como saída
pinMode(LED_Verde,OUTPUT); //Define o pino 7 como saída
pinMode(Rele,OUTPUT); //Define o pino 8 como saída
Ethernet.begin(mac, ip);// Inicializa o Server com o IP e Mac atribuido acima
}
void loop()
{
acionamentos(); //Vai para a função que executa o acionamento do rele
EthernetClient client = server.available();// Verifica se tem alguém conectado
if (client)
{
boolean currentLineIsBlank = true; // A requisição HTTP termina com uma linha em branco Indica o fim da linha
String valPag;
while (client.connected())
{
if (client.available())
{
char c = client.read(); //Variável para armazenar os caracteres que forem recebidos
valPag.concat(c); // Pega os valor após o IP do navegador ex: 192.168.1.2/0001
if (c == '\n' && currentLineIsBlank)
{
//Inicia página HTML
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println();
client.print("<HTML> ");
//=========================================================================================================================
client.print("<BR>");
//Primeiro dropdown referente ao tempo 1
client.print("<center><span style=\"color: #00ff00;\"><form>Tempo 1: <select><option value= 60>1 minuto</option><option value= 120>2 minutos</option></select></form> ");
temp1 = ("<option selected>");
//segundo dropdown referente ao tempo 2
client.print("<center><span style=\"color: #00ff00;\"><form>Tempo 2: <select><option value= 60>1 minuto</option><option value= 120>2 minutos</option></select></form> ");
//temp2 = ("<option selected>");
//terceiro dropdown referente ao tempo 3
client.print("<center><span style=\"color: #00ff00;\"><form>Tempo 3: <select><option value= 60>1 minuto</option><option value= 120>2 minutos</option></select></form> ");
("<option selected>");
//temp3 = ("<option selected>");
//quarto dropdown referente ao tempo 4
client.print("<center><span style=\"color: #00ff00;\"><form>Tempo 4: <select><option value= 60>1 minuto</option><option value= 120>2 minutos</option></select></form> ");
("<option selected>");
//temp4 = ("<option selected>");
client.println("</HTML>");
break;
} //Fecha if (c == '\n' && currentLineIsBlank)
} //Fecha if (client.available())
} //Fecha While (client.connected())
delay(3);// Espera um tempo para o navegador receber os dados
client.stop(); // Fecha a conexão
} //Fecha if(client)
} //Fecha loop
void acionamentos()
{ //Abre função acionamento()
digitalWrite(8, HIGH);
delay(temp1);
digitalWrite(8, LOW);
delay(temp2);
digitalWrite(8, HIGH);
delay(temp3);
digitalWrite(8, LOW);
delay(temp4);
digitalWrite(8, HIGH);
}
Acima e anexo o codigo arduino.
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por