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?

Exibições: 1049

Responder esta

Respostas a este tópico

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

Anexos

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.

Anexos

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço