Pages: [1] 2 3   Go Down
Author Topic: arduino e website (Resolvido)  (Read 6157 times)
0 Members and 1 Guest are viewing this topic.
Portugal
Offline Offline
Full Member
***
Karma: 0
Posts: 113
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ola a todos,

Estou com um pequeno problema... estou a desenvolver um site em html + java e durante esse processo veio-me à cabeça a seguinte questão...
Como é que eu consigo com que o website possa ir buscar os valores de variaveis? e consoante esse valores fazer determinada acção?

neste caso, quando abro o website ele deverá ler a partir do arduino se a luz esta ligada ou nao, e se estiver ligada o icon deverá aparecer ligado, se estiver desligado o icon aparecerá desligado...

 Eu sei que o html nao trabalha com variaveis nem é possivel efectuar calculos... terei de fazer um bd para guardar os valores? deverei programar o website com php?

O que me sugerem?

Obrigado
« Last Edit: May 24, 2012, 03:08:39 pm by Maks » Logged

central nervous system
Offline Offline
Full Member
***
Karma: 0
Posts: 135
Causing havoc inside your brain since 1980
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Faça com que o Arduino devolva tipo MIME application/json via EtherShield.

Code:
void loop() {
    Client client = server.available();

    if (client == true) {
        server.println("HTTP 1.1/200 OK");
        server.println("Content-Type: application/json");
        server.println();

        // agora vem os dados

        byte principal;
        principal = digitalRead(PINO_PRINCIPAL) == LOW? 0: 1;
        byte despensa;
        despensa = digitalRead(PINO_DESPENSA) == LOW? 0: 1;
        byte varanda;
        varanda = digitalRead(PINO_VARANDA) == LOW? 0: 1;

        server.print("{ { 'local': 'cozinha', 'principal': ");
        server.print(principal, DEC);
        server.print(", 'despensa': ");
        server.print(despensa, DEC);
        server.print(", 'varanda': ");
        server.print(varanda, DEC);
        server.println(" } }");
    }
}

Depois, na sua página web, você trata os dados em json com ajax, isto é, em modo assíncrono, enviando requisições para o Arduino e recebendo de volta o json.
Logged

Portugal
Offline Offline
Full Member
***
Karma: 0
Posts: 113
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

deculpa mas nao consegui perceber...

eu percebo pouco de java, ou melhor, quase nada de java e nao estou a entender como é que o site em html vai conseguir ir buscar os valores das variaveis ao arduino e mostrar o site consoante um valor especifico.
Se o arduino tiver guardado que a lampada A está ligada, a imagem dessa lampada devera ser (digamos) ligado.png, caso contrario mostra a imagem desligado.png...

Será possivel dares-me um exemplo? eu ja andei a procura e nao consigo encontrar...

Obrigado e Abraços

PS. Titulo corrigido
Logged

Portugal
Offline Offline
Full Member
***
Karma: 0
Posts: 113
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

por exemplo, eu tenho este codigo...

Code:
<li><a href="#sala_luz"><img src="images/luz_on.png" alt="Iluminação" /></a><p><span style="padding-left:40px">Iluminação</li>
Como podes verificar ele mostra como se a luz estivesse on.
o que eu queria fazer seria tipo:
Code:
if luz_on = true then
       <li><a href="#sala_luz"><img src="images/luz_on.png" alt="Iluminação" /></a><p><span style="padding-left:40px">Iluminação</li>
else
       <li><a href="#sala_luz"><img src="images/luz_off.png" alt="Iluminação" /></a><p><span style="padding-left:40px">Iluminação</li>
end if
mas em html nao posso fazer ifs...

Não sei se fui claro, espero que sim smiley-wink

Obrigado
Logged

Aveiro
Offline Offline
Newbie
*
Karma: 0
Posts: 7
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Boas,

Gosto imenso do teu layout deve ser um projeto interessante que deves ter que fazer!

Vamos por partes!

O que o "neuron_upheaval" escreveu é o que o arduino te vai devolver, ou seja uma string em JSON com os dados que precisas para validar o que pretendes fazer!

Portanto o que tens é apenas html?!

Vais precisar de uma framework javascript por exemplo jQquery, isto para não teres que utilizar PHP ou ASP.
Portanto vais ter que te entender um pouco com isto se quiseres ver o que pretendes, porque em hml não podes fazer IF... ELSE... END IF

algumas ideias e ajudas para começar e usando o exemplo fornecido para o Arduino pelo "neuron_upheaval".

Usando o shield Ethernet que deverá ter um IP e uma porta!!!

Para veres o que é devolvido pelo Arduino usando então o JQuery:

Code:
<script type="text/javascript">
    $(function(){
        $("button")
            .click(function(){
                $.getJSON('http://ipdoarduino:porta', function(data){
                    var markup = '<strong>Local:</strong> ' + data.local +
                        '<br/><strong>Principal:</strong> ' + data.principal +
                        '<br/><strong>Despensa:</strong> ' + data.despensa +
                        '<br/><strong>Varanda:</strong> ' + data.varanda +;
                    $("#content").html(markup);
                });
            });
    });
</script>

isto vai ler o que o arduino está a "ver" e mostrar o estado de cada ligação Principal, Despensa, Varanda.

A tua página para além do jquery carregado tem que ter este conteúdo para veres a informação:

Code:
<div id="content">Clique no botão!</div>
<p>
    <button>Atualizar conteúdo</button>
</p>

Portanto sempre que carregares no botão Atualizar, vais ver o resultado devolvido pelo Arduino.

Agora com mais umas pesquisas no Google e alguma imaginação vais conseguir colocar o Jquery a guardar os valores devolvidos e a alterar o estado das imagens, para veres se a iluminação está ligada ou desligada.

Espero ter ajudado mais um pouco!

http://api.jquery.com/jQuery.getJSON/ tens aqui mais informações.


Logged

Portugal
Offline Offline
Full Member
***
Karma: 0
Posts: 113
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ola mais uma vez, eu agradeço a resposta e estive a tentar perceber o vosso codigo e nao consegui provavelmente porque nao conheço essa linguagem...
talvez com um exemplo a funcionar eu consiga entender... enfim, como não quero ficar parado continuei com o projecto como consegui...

Eu tenho este código:
Index.php (a variavel teste irá ser o valor que o arduino vai enviar no load da página...)
Code:
<?php
$teste 
"2";
if (
$teste == "1") {
echo 
$teste;
include (
"liga.php");
}
else {
echo 
$teste;
include (
"desliga.php");
}
?>

liga.php
Code:
<script type="text/javascript">  
var luzcoz1=true;
function lcoz1() {
var floatimg = document.getElementById("lcoz1");
if ( luzcoz1== true){
floatimg.src="../images/luz_on.png"
luzcoz1=false;
} else {
floatimg.src="../images/luz_off.png"
luzcoz1=true;
}
    }
</script>
    <a href="#"><input alt="" src="images/luz_off.png" onclick="lcoz1();" id="lcoz1" style="float: right; width: 50px; height: 50px; " type="image" /></a>
<h1 style="float: right; width: 320px; margin: 0 auto;">Principal</h1><p>&nbsp;</p><p>&nbsp;</p>
desliga.php
Code:
<script type="text/javascript">  
var luzcoz1=false;
function lcoz1() {
var floatimg = document.getElementById("lcoz1");
if ( luzcoz1== true){
floatimg.src="../images/luz_on.png"
luzcoz1=false;
} else {
floatimg.src="../images/luz_off.png"
luzcoz1=true;
}
    }
</script>


    <a href="#"><input alt="" src="images/luz_on.png" onclick="lcoz1();" id="lcoz1" style="float: right; width: 50px; height: 50px; " type="image" /></a>
<h1 style="float: right; width: 320px; margin: 0 auto;">Principal</h1><p>&nbsp;</p><p>&nbsp;</p>

qual a minha duvida... Quando eu clico no "botao" (imagem), ele muda de imagem e queria que ele enviasse essa informação ao arduino... eu estou a planear usar em php o socket_write para enviar para o arduino, mas se eu ponho isso no código que tenho de momento ele executa logo em vez de esperar que eu carrege no "botao"... que opçoes tenho?
« Last Edit: May 04, 2012, 10:22:07 am by Maks » Logged

Portugal
Offline Offline
Full Member
***
Karma: 0
Posts: 113
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

será que isto funciona?
Code:
<script type="text/javascript">  
var luzcoz1=true;
function lcoz1() {
var floatimg = document.getElementById("lcoz1");
if ( luzcoz1== true){
floatimg.src="../images/luz_on.png"
luzcoz1=false;
<?PHP socket_write(blablabla); ?>
} else {
floatimg.src="../images/luz_off.png"
luzcoz1=true;
}
    }
</script>

<a href="#"><input alt="" src="images/luz_off.png" onclick="lcoz1();" id="lcoz1" style="float: right; width: 50px; height: 50px; " type="image" /></a>
<h1 style="float: right; width: 320px; margin: 0 auto;">Principal</h1><p>&nbsp;</p><p>&nbsp;</p>


Eu sei que esta pergunta é um pouco parva, porque provavelmente devem estar a pensar, "porque nao testas?", e a minha resposta será, porque estou no trabalho e enquanto cá estou tenho adiantado serviço escrevendo codigo sempre que posso.
A minha pergunta é, usando o <?PHP socket_write(blablabla); ?> dentro do javascript, vai-me dar erro?
« Last Edit: May 04, 2012, 10:23:58 am by Maks » Logged

'round the world...
Offline Offline
Faraday Member
**
Karma: 41
Posts: 3113
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

A minha pergunta é, usando o <?PHP socket_write(blablabla); ?> dentro do javascript, vai-me dar erro?

Provavelmente não... mas também não vai funcionar. Estás a juntar alhos com bogalhos.
Logged

Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

Portugal
Offline Offline
Full Member
***
Karma: 0
Posts: 113
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ja tive oportunidade de testar e nada...
eu gosto muito do meu layout, e nao queria muda-lo smiley-sad
aqueles botoes html sao ridiculos
Logged

Portugal
Offline Offline
Full Member
***
Karma: 0
Posts: 113
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

pronto, finalmente já percebi que não vou conseguir, mesmo que mudasse os botões teria sempre de fazer refresh a pagina em cada click nos botões, e isso ir-me-ia fazer voltar à pagina inicial em vez do sitio onde estava a clicar. Agora fiquei encalhado...
Já tive horas a procura de soluções e não encontro...
nunoferreira e neuron_upheaval, tentei usar o vosso código e não consegui por funcionar...
já não sei o que mais fazer, nem onde procurar. Se eu tivesse um exemplo funcional, julgo que iria conseguir entender e adaptar ao meu caso, mas nem isso...

Eu sei que não devo estar a pedir pouco, mas alguém me consegue dar uma solução para o meu impasse?

EDIT: parece que as minhas pesquisas andaram muito ao lado... já encontrei mais informações e estou a analisa-las agora... ja informo como me safei smiley
« Last Edit: May 05, 2012, 12:05:47 pm by Maks » Logged

Aveiro
Offline Offline
Newbie
*
Karma: 0
Posts: 7
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Uma coisa o teu Arduino tem um shield ethernet?

Na realidade tudo o que apresentas é uma grande confusão de ideias o que eu compreendo mas tenta seguir o que te estamos a indicar!

O melhor será começares por descrever como tens o arduino configurado, que módulo tens, que shields tens, porque a ideia nós já estamos a ver, agora queres simplesmente ver o estado da ligação das luzes ou também queres poder enviar um comando para elas ligarem!?

Se queres fazes as duas coisas como tens o arduino para fazer isto?!

Eu que desenvolvo aplicações web dei-te uma sugestão para interagires com a ideia do JSON que é muito straight forward.
Mas já reparei que estás a tentar usar php, e vais usar sockets?

Terei todo o gosto em ajudar vai dizendo coisas concretas.
Logged

'round the world...
Offline Offline
Faraday Member
**
Karma: 41
Posts: 3113
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Complementando o que o nunoferreira disse, começa por criar um servidor com o Arduino. Para começar escusas de te preocupar com receber dados e fazer o parsing do pedido http e basta enviares uma resposta em ascii. Depois vê um exemplo da formatação json, e envia uma string nesse formato.

Quando o arduino fizer isto, começa com o javascript e o exemplo anterior.

Tens vários problemas que tens de te aperceber:

Não dominas algumas das linguagens e tecnologias, logo tens de "perder" algum tempo a experimentar exemplos funcionais mesmo que diferentes do que queres para aprender como fazer algo.

Estás com alguma pressa em obter resultados... Isto aliado ao facto de não dominares as tecnologias que vais usar, torna tudo pior pois um pequeno problema parece-te uma coisa enorme.

Não estás a dividir os teus problemas e queres que tudo funcione à primeira. Isso é difícil de conseguir, faz como te disse, resolve uma coisa de cada vez. Primeiro o arduino como servidor, depois o java script. Vais ver que num instante obténs resultados se te dedicares a apenas uma tarefa de cada vez.
Logged

Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

Portugal
Offline Offline
Full Member
***
Karma: 0
Posts: 113
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Uma coisa o teu Arduino tem um shield ethernet?

Na realidade tudo o que apresentas é uma grande confusão de ideias o que eu compreendo mas tenta seguir o que te estamos a indicar!

O melhor será começares por descrever como tens o arduino configurado, que módulo tens, que shields tens, porque a ideia nós já estamos a ver, agora queres simplesmente ver o estado da ligação das luzes ou também queres poder enviar um comando para elas ligarem!?

Se queres fazes as duas coisas como tens o arduino para fazer isto?!

Eu que desenvolvo aplicações web dei-te uma sugestão para interagires com a ideia do JSON que é muito straight forward.
Mas já reparei que estás a tentar usar php, e vais usar sockets?

Terei todo o gosto em ajudar vai dizendo coisas concretas.


Boas,

tenho um arduino mega 2560 e um ethernet shield w5100...
o que eu pretendo, é ligar e desligar as luzes atraves de um site que esta alojado aqui em casa, quero tambem saber o estado das luzes...
isto eu consigo atraves de php mas fica com um aspecto "mete nojo" na minha opinião. podes ver em
se quiseres o codigo desta pagina tambem te posso mandar. eu apenas usei o projecto de outra pessoa e alterei de forma a eu me entender mais facilmente.
sobre o aspecto, eu gostaria de manter o aspecto do meu site
mas o problema é que os meus botoes para ligar as lampadas são em javascript e JS apenas funciona no lado do cliente, ou seja, eu carrego na lampada, ela acende mas apenas no site, e nao tenho como fazer no javascript (lingua que practicamente nao conheço).
Estou a usar php porque é uma lingua que conheço, mesmo que nao seja aprofundadamente.
Estive a ler um pouco sobre JSON, e a estrutura fica em especie de blocos que sao comandados pelo URL (espero nao estar a dizer asneiras).
O bubulindo deve ter razão, a vontade de fazer as coisas e obter resultados é tanta que no meio de tanta coisa provavelmente simples parece complicada porque torna-se uma grande confusão na minha cabeça e juntamente com a confusão vem o stress e a frustação... :S

Enfim espero que tenha conseguido explicar melhor a situação

PS. Eu posso usar a linguagem que mais facilmente me consiga por isto a funcionar sem ter de abdicar do design do site que eu nao gostaria de perder, mas se tiver de ser la será. Se olhares para o site, consegues perceber que funcionalidades pretendo ter

Abraços


Complementando o que o nunoferreira disse, começa por criar um servidor com o Arduino. Para começar escusas de te preocupar com receber dados e fazer o parsing do pedido http e basta enviares uma resposta em ascii. Depois vê um exemplo da formatação json, e envia uma string nesse formato.

Quando o arduino fizer isto, começa com o javascript e o exemplo anterior.

Tens vários problemas que tens de te aperceber:

Não dominas algumas das linguagens e tecnologias, logo tens de "perder" algum tempo a experimentar exemplos funcionais mesmo que diferentes do que queres para aprender como fazer algo.

Estás com alguma pressa em obter resultados... Isto aliado ao facto de não dominares as tecnologias que vais usar, torna tudo pior pois um pequeno problema parece-te uma coisa enorme.

Não estás a dividir os teus problemas e queres que tudo funcione à primeira. Isso é difícil de conseguir, faz como te disse, resolve uma coisa de cada vez. Primeiro o arduino como servidor, depois o java script. Vais ver que num instante obténs resultados se te dedicares a apenas uma tarefa de cada vez.

o que queres dizer com começa por criar um servidor com o Arduino? esquecer o shield ethernet por enquanto e usar apenas o arduino?
amanha, vou começãr do zero para poder aprender os conceitos e funcionamento do json e tentar levar as coisas passo a passo...
Concordo contigo no paragrafo da pressa, é a mais completa verdade.

Abraços
« Last Edit: July 07, 2012, 08:17:41 am by Maks » Logged

'round the world...
Offline Offline
Faraday Member
**
Karma: 41
Posts: 3113
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

o que queres dizer com começa por criar um servidor com o Arduino? esquecer o shield ethernet por enquanto e usar apenas o arduino?
amanha, vou começãr do zero para poder aprender os conceitos e funcionamento do json e tentar levar as coisas passo a passo...
Concordo contigo no paragrafo da pressa, é a mais completa verdade.

Um computador (assume computador no sentido mais lato que imaginares, desde servidores da Google até ao teu arduino com o shield Ethernet) ligado em rede pode assumir dois papéis. Cliente e Servidor. O cliente liga-se a um servidor para fazer uma transaccão e o servidor aceita (ou não) a ligacão do cliente para essa transaccão. O mesmo dispositivo pode ser cliente e servidor ao mesmo tempo, no entanto o que é importante aqui é compreender o papel de cada um deles.

Depois se imaginares o teu JavaScript como foi escrito no exemplo do NunoFerreira, ele vai ser um cliente. Repara que o JavaScript vai ligar-se a um Servidor para obter os dados que pretende. Neste caso, o Servidor vai ser o Arduino.

Isto é importante porque, como também podes ver nos exemplos do Shield Ethernet, o código é diferente. Quando configuras um cliente, ele é a parte activa da ligacão. Liga-se a um IP e faz um pedido ao servidor. O servidor por seu lado é passivo e só responde e aceita ligacões.

Logo para esta aplicacão, tens de ter o Arduino configurado como servidor para responder ao JavaScript.
//isto é tirado dos exemplos no Arduino. Experimenta correr isto.
Code:
#include <SPI.h>
#include <Ethernet.h>

// Enter a MAC address and IP address for your controller below.
// The IP address will be dependent on your local network:
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192,168,1, 177);

// Initialize the Ethernet server library
// with the IP address and port you want to use
// (port 80 is default for HTTP):
EthernetServer server(80);

void setup()
{
  // start the Ethernet connection and the server:
  Ethernet.begin(mac, ip);
  server.begin();
}

void loop()
{
  // listen for incoming clients
  EthernetClient client = server.available();
  if (client) {
    // an http request ends with a blank line
    boolean currentLineIsBlank = true;
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
        // if you've gotten to the end of the line (received a newline
        // character) and the line is blank, the http request has ended,
        // so you can send a reply
        if (c == '\n' && currentLineIsBlank) {
          // send a standard http response header
          client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html");
          client.println();

          // output the value of each analog input pin
          for (int analogChannel = 0; analogChannel < 6; analogChannel++) {
            client.print("analog input ");
            client.print(analogChannel);
            client.print(" is ");
            client.print(analogRead(analogChannel));  //AQUI PODES COLOCAR O ESTADO DAS TUAS LÂMPADAS.
            client.println("<br />");
          }
          break;
        }
        if (c == '\n') {
          // you're starting a new line
          currentLineIsBlank = true;
        }
        else if (c != '\r') {
          // you've gotten a character on the current line
          currentLineIsBlank = false;
        }
      }
    }
    // give the web browser time to receive the data
    delay(1);
    // close the connection:
    client.stop();
  }
}

Depois tendo o Arduino colocado no teu router experimenta aceder a ele com um browser ou com telnet...
No caso do JSON, não precisas de HTML ou da resposta HTTP. smiley
Logged

Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

Portugal
Offline Offline
Full Member
***
Karma: 0
Posts: 113
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ha aqui uma coisa que eu ainda nao estou a comprender...
Eu ja vi como é a estrutura de json, e penso que devo ter de usar xmlhttprequest. A minha duvida é:
imaginando um fluxograma, como é que as coisas devem funcionar?
Ard --- server --- client
O arduino envia o estado dos interruptores ao server, o server envia para o cliente, o cliente ao carregar no botão vai enviar ao server que carregou no botão, o server envia para o arduino que por sua vez altera o estado e envia o novo estado para o server que envia para o cliente. Estou a falar mal?
Agora, o que é que vai comunicar? Tentando explicar melhor a minha pergunta...
O arduino trabalha com o seu codigo normal, usa ajax/javascript/html/json?
o servidor recebe e faz o pedido o pedido em que linguagem?

Eu sei o que quero e como deveriam funcionar as coisas, mas na minha cabeça continua uma confusão sobre o que tenho de usar e onde...
Alguma explicação para burros, que me possa guiar?

Obrigado e Abraços
Logged

Pages: [1] 2 3   Go Up
Jump to: