Tenho realizado muitas pesquisas a respeito dessas duas tecnologias, e tenho notado que a dificuldade que estou passando não é só minha. Estou em projeto onde desenvolvi uma interface web em html e javascript. Porque o javascript? Porque para o design do site necessito usa-lo. Porém na hora de fazer a conexão com o arduino encontro uma enorme dificuldade, neste caso gostaria de receber e enviar dados para o arduino. Por favor se alguém souber alguma solução para este problema serei muito grato.
Se você está tentando fazer a comunicação via javascript com o arduino e Ethernet Shield, provavelmente deve ser com ajax,
Então deve desenvolver as funções no arduino da mesma forma como em um "servidor web", respondendo as suas solicitações, tanto "POST ou GET".
Ta muito amplo, tente ser mais claro e especifico quanto as dificuldades.
O código é esse:
:) AUTO HOME :) body { background-image: url(); } #div_qrt_casal { position: absolute; width: 194px; height: 131px; z-index: 1; left: 378px; top: 125px; } #div_sala_estar { position: absolute; width: 196px; height: 133px; z-index: 2; left: 378px; top: 263px; } #div_banheiro { position: absolute; width: 196px; height: 133px; z-index: 3; top: 137px; left: 1px; } #div_qrt_bb { position: absolute; width: 194px; height: 131px; z-index: 3; left: 582px; top: 125px; } #div_sala_jantar { position: absolute; width: 194px; height: 131px; z-index: 4; top: 138px; left: 0px; } #div_office { position: absolute; width: 194px; height: 131px; z-index: 5; top: 275px; } #div_qrt_solteiro { position: absolute; width: 194px; height: 131px; z-index: 4; left: 204px; top: -275px; } #div_cozinha { position: absolute; width: 194px; height: 131px; z-index: 5; left: 204px; top: -137px; } #div_lavanderia { position: absolute; width: 194px; height: 131px; z-index: 4; left: 786px; top: 400px; } #div_garagem { position: absolute; width: 344px; height: 75px; z-index: 5; left: 626px; top: 541px; }*
Nas funções acender e apagar é onde eu quero ter o código que vai conversar com o arduino. Este código que não estou sabendo._
Você já usou ajax no javascript?
Dá uma olhada nisso aqui:
http://www.joni.com.br/blog/2009/06/02/178/
Ele mostra como criar um objeto ajax em javascript, e como fazer para executar uma chamada com a uma determinada URL, e que no retorno, vai dar um alert() com o texto que o servidor vai retornar com da
URL, então você deve fazer um código no Arduino que responda "Acesso" ou "Apagado".
Dentro da função aceder ou apagar ( que na verdade poderia ser só uma função tipo altera_status()) eu queria enviar um vetor para o arduino onde cada posição desse vetor representaria uma lampada. Você teria alguma sugestão para isso?
Bom sugestão eu tenho, mas você entende alguma coisa de javascript ou de programação para web?
assim, o sua chamada por ajax seria algo assim:
url="http://servidor:porta/acoes.html?Array[0]=1&Array[1]=0&Array[2]=1";
ajax.open("POST", "url", true);
No código do arduino você leria a variavel POST[] que é um array e faria as ações determinadas.
Acho legal você olhar os milhares de exemplos de arduino + ethernet shield, pois deve haver alguma que faça exatamente o que você quer, pois aparentemente, você não tem conhecimento suficiente nas tecnologias
que quer usar, para desenvolver o sua própria solução, olhando elas você pode aprender como fazem, ai depois tentar desenvolver a sua própria solução.
Bom, programação web eu não manjo muito. Mas nesse exemplo que você me deu eu não consegui entender como vou me conectar ao arduino através dessa url se no arduino eu não vou ter nenhuma página html hospedada?
Bom, vou assumir que você não tem um ethernet shield é isso?
Então, na máquina que vai rodar suas páginas html você vai precisar de algum programa feito em PHP, JAVA, C# para se comunicar com o arduino.
Basicamente você terá um servidor de internet, que ser comunica com o arduino.
Eu tenho um ethernet Shield w5100 e um arduino mega 2560. O código que eu postei é a página que vai se comunicar com o ethernet shield. Se fosse possível gostaria que vc me mandasse um código ajax para conexão com arduino que realmente funcione porque todos que eu vejo na internet e até mesmo aqui no forum não funcionam. Obrigado pela atenção.
Você já fez a parte do Arduino como webserver?
O código em javascrit ficaria assim:
<script language="javascript">
function ajaxInit() {
if (window.XMLHttpRequest) { // Mozilla, Safari,...
ajax = new XMLHttpRequest();
if (ajax.overrideMimeType) {
ajax.overrideMimeType('text/xml');
}
}
else if (window.ActiveXObject) { // IE
try {
ajax = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e) {
try {
ajax = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e) {}
}
}
return ajax;
}
function AcenderApagar(comodo, LigaDesliga)
{
url = "http://seuserver/suapagina.html?comodo=" + comodo + "&LigaDesliga=" + LigaDesliga;
ajax = ajaxInit();
if(ajax) {
ajax.open("POST", "url", true);
ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
ajax.send("dados=" + dadosenviados);
ajax.onreadystatechange = function() {
if(ajax.readyState == 4) {
if(ajax.status == 200) {
alert(ajax.responseText);
} else {
alert(ajax.statusText);
}
}
}
}
}
</script>
Isso é basicamente o que você vai usar
nas suas funções apagar vc vai por
function apagar(comodo)
{
AcenderApagar(comodo, 0)
}
function acender(comodo)
{
AcenderApagar(comodo, 1)
}
Essa é a parte em javascript que você vai usar, o resto é o arduino/webshield interpretar suas chamadas
Beleza, entendi o seu código. Mas só tenho uma dúvida, pelo pouco que entendo de programação web na parte url vc aponta para um arquivo Html, este arquivo vai estar gravado no Arduino? E no caso tem como eu fazer apontando para uma url assim \192.168.0.1:8080?
Slipguedes:
Beleza, entendi o seu código. Mas só tenho uma dúvida, pelo pouco que entendo de programação web na parte url vc aponta para um arquivo Html, este arquivo vai estar gravado no Arduino? E no caso tem como eu fazer apontando para uma url assim \192.168.0.1:8080?
seuserver: vc substitui pelo endereço IP e pela porta que vc configurou no código que roda no arduino + ethernet shield
suapagina.htm: vc substitui pela página que vai responder pelo web server que vai rodar no arduino + ethernet shield
Você entendeu que o Arduino + Ethernet shield tem que funcionar como um servidor de web, como um IIS ou Apache né???
Certo, e essa página ficara dentro do arduino. O arduino tem memória para isso ou tenho que gravar em um cartão sd?
Slipguedes:
Certo, e essa página ficara dentro do arduino. O arduino tem memória para isso ou tenho que gravar em um cartão sd?
Eu acredito que como vai hospedar a sua página em outro servidor, a resposta em html não terá mais que algumas centenas de bytes, dizendo apenas que recebeu o comando, eu não tenho ethernet shield para te responder como seria o mais indicado, por isso deve olhar os exemplos na net e ver como o pessoal implementa as respostas do arduino ou alguém que fez algo parecido aqui no forum pode responder a você, eu estou limitado a parte do javascript / html do cliente.