[RESOLVIDO] O Nelson toshio Resolveu perfeitamente ....agradeço leandro e outros criar um botão na pagina web

gente tentei o domingo inteiro e nao consegui .

venho novamente solicitar a ajuda de vocês nesse projeto .

onde eu preciso ligar desligar um led. mas tem que pressionar para menter ligado e soltar para desligar 

com esse codigo  no --------pastebin  --------  http://pastebin.com/KYM3eMHG

esse meu codigo está ligando e desligando basta clicar.

mas não quero clicar e sim pressionar para ligar e soltar para desligar 

exemplo igual uma campainha de residencial 

codigo abaixo no --------pastebin  --------  http://pastebin.com/KYM3eMHG

Exibições: 1324

Responder esta

Respostas a este tópico

Olha Moises, eu acho que terá que usar javascript. Tu vai ter que estudar eventos em javascript, especialmente os eventos: onmousedown, onmouseup e onclick. Depois vai ter que estudar como rodar o JS dentro do arduino.

Bom dia Moises,  mais uma modificada agora utilizando o exemplo button.

Anexos

boa tarde amigo Nelson .

nem sei como te agradecer sua ajuda . mas deus sim.

esse codigo faz o mesmo . ele liga desliga como se tivesse um delay(200);

eu tava imaginando que  o fato dele não ficar pressionado tivesse a ver com essa função aqui da foto.

porque aqui diz onClicK  então e um click   para ser botão de pressionar tinha que alterar essas função 

e so palpite rsrsrs.desculpe se tiver errado 

Boa noite Moises, talves voce tem razao , tente mudar colocando "press" na frente para ver ou outra palavra "onPress"  ou  de uma pesquisada na internet sobre isso.

coloquei 'onPress' e 'Press' não deu certo.

pesquisei tudo que tava no meu bem limitado conhecimento e não deu conta.

você acha que deve abandonar o projeto.

porque esta difícil demais 

Boa noite Moises, tive pesquisando na internet e encontrei , tive tentando adaptar no codigo , ainda nao consegui , da uma pesquisada em "onmousedown" que voce acha, no YouTube tambem voce acha,

em anexo o html,

e tambem o codigo que estava mexendo, ainda falta adaptar.

Anexos

Olá montei esse aqui baseado no exemplo do Nelson veja se funciona 

#include <SPI.h>
#include <Ethernet.h>

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; //physical mac address
byte ip[] = { 192, 168, 1, 188 }; // ip in lan
byte gateway[] = { 192, 168, 1, 1 }; // internet access via router
byte subnet[] = { 255, 255, 255, 0 }; //subnet mask
EthernetServer server(8089); //server port

String readString;

const int ledPin = 8;
int buttonState = 0;

void setup(){


pinMode(8, OUTPUT); //pin selected to control
//start Ethernet
Ethernet.begin(mac, ip, gateway, gateway, subnet);
server.begin();

//enable serial data print
Serial.begin(9600);
Serial.println("server multi pin button test 1.0"); // so I can keep track of what is loaded
}

void loop(){
// Create a client connection
EthernetClient client = server.available();
if (client) {
while (client.connected()) {
if (client.available()) {
char c = client.read();

//read char by char HTTP request
if (readString.length() < 100) {

//store characters to string
readString += c;
//Serial.print(c);
}

//if HTTP request has ended
if (c == '\n') {

///////////////
Serial.println(readString); //print to serial monitor for debuging

client.println("HTTP/1.1 200 OK"); //send new page
client.println("Content-Type: text/html");
client.println();

client.println("<HTML>");
client.println("<HEAD>");
client.println("<TITLE>Arduino</TITLE>");
client.println("</HEAD>");
client.println("<BODY>");

client.println("<H1><center>ARDUINO PRESS BUTTON</center></H1>");

client.println("<br>");

// custom buttons

client.print("<table align='center' border=10 bgcolor='green' ><th><h2><div onmousedown=mDown(this) onmouseup=mUp(this) style.bgcolor='blue';width:130px;height:30px;padding:10px;>LIGA</div></table>>");

client.println("<script>function mDown(obj){obj.style.bgcolor='red';obj.innerHTML='ACESO';window.location.href = '?=1';}function mUp(obj){obj.style.bgcolor='green';obj.innerHTML='APAGADO';window.location.href = '?=2';}</script>>");

client.println("</BODY>");
client.println("</HTML>");

int val;
if (readString.indexOf("0") != -1)
digitalWrite(ledPin, HIGH);
else if (readString.indexOf("1") != -1)
digitalWrite(ledPin, LOW);
else {
Serial.println("invalid request");
client.stop();
return;
}

//clearing string for next read
readString="";

}
}
}
}
}

ao clicar no botão o led pisca 3 vezes e para. tipo se tivesse 3 delay(200); seguido .

e na pagina aparece 3 botões veja a foto da pagina 

nossa quase levantei da minha cadeira de roda rsrs esse aqui 

funciona do jeito que preciso só não liga desliga led .

estou pesquisando de tudo mas meu conhecimentos e limitado 

muito obrigado mesmo. se vc pode ajudar mais fico grato.

Não vai ligar e desligar nada porque só está programado para mudar a cor e o texto!

Eu já havia falado sobre essas funções em JS mas não recebi, ao menos, um obrigado. Como ela roda no lado cliente, eu acredito que ela não vai funcionar dessa forma que estão programando... na verdade nem sei se vai funcionar dentro do arduino. Mas daí vem a pergunta: essa página tem que estar dentro do arduino ou pode estar em um servidor?

Se pode estar num servidor (no seu pc por exemplo) e quiser usar javascript, pode usar node.js.

Obs.: Os primeiros exemplos não funcionavam porque ao clicar o botão havia um recarregamento da página e com isso o botão "voltava ao estágio inicial que era de não clicado".

Olá Amanda obrigado pelas suas considerações!, elas ajudaram muito !, acredito que possa funcionar sim, a noite vou tentar fazer e mando, o primeiro codigo realmente so muda o botão html porem no segundo que refiz, nao sei se vc percebeu mas tem isso (window.location.href = '?=1) e (window.location.href = '?=0), testando eu posto pra vcs, Moises agora ficou pessoal uhauhauha!

window.location.href muda o endereço na url, certo? consequentemente acontece a atualização da página (no caso a mesma página, mas atualiza porque mudou a url). Sendo assim, o botão é "construído" novamente e se perde a "condição de clicado". Eu acredito que acontece isso. Teria que ser algo como: clicou e segurou dispara o comando para ligar o relé (sem atualizar a página), soltou o botão dispara o comando para desligar o relé.

Mas algo importante seria saber por qual motivo tem que funcionar assim, se não tem uma forma mais simples de resolver o problema.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço