collapse

* Posts Recentes

Amplificador - Rockboard HA 1 In-Ear por almamater
[Ontem às 19:13]


O que é isto ? por KammutierSpule
[26 de Março de 2024, 19:35]


Bateria - Portátil por almamater
[25 de Março de 2024, 22:14]


Emulador NES em ESP32 por dropes
[13 de Março de 2024, 21:19]


Escolher Osciloscópio por jm_araujo
[06 de Fevereiro de 2024, 23:07]


TP4056 - Dúvida por dropes
[31 de Janeiro de 2024, 14:13]


Leitura de dados por Porta Serie por jm_araujo
[22 de Janeiro de 2024, 14:00]


Distancia Cabo por jm_araujo
[08 de Janeiro de 2024, 16:30]


Meu novo robô por josecarlos
[06 de Janeiro de 2024, 16:46]


Laser Engraver - Alguém tem? por almamater
[16 de Dezembro de 2023, 14:23]

Autor Tópico: [AJUDA ]Automação Residencial com DTMF  (Lida 7428 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline r16

  • Mini Robot
  • *
  • Mensagens: 339
[AJUDA ]Automação Residencial com DTMF
« em: 01 de Dezembro de 2011, 21:00 »
Olá estou a iniciar (a tentar) um projecto de automacao residencial via DTMF..

So que para começar ja tou aqui com um dilema...

Estou a usar este codigo que esta neste site :

http://arduino-ce.blogspot.com/

So que o meu inicial problema é, quando envio o codigo para o arduino... e quando conecto o primeiro fio no pin7 nao percebo porque raio no SERIAL MONITOR me ta sempre a dizer em forma de loop:

RECEBIDO 2
RECEBIDO 2
RECEBIDO 2
...

Depois outra duvida, todos os telefones enviam tons dtmf?

Aguardo respostas, e quem quiser aproveitar para montar tambem aproveitem o site.


Offline JPTuga

  • Mini Robot
  • *
  • Mensagens: 125
Re: [AJUDA ]Automação Residencial com DTMF
« Responder #1 em: 02 de Dezembro de 2011, 00:10 »
Sim, desde á muito tempo que os telefones utilizam os dmtf [dual-tone multi-frequency]. Provavelmente podes usar o teu... ;D

Agora falando do código, qual o arduino que estás a usar? O Mega?

Offline r16

  • Mini Robot
  • *
  • Mensagens: 339
Re: [AJUDA ]Automação Residencial com DTMF
« Responder #2 em: 02 de Dezembro de 2011, 00:41 »
Bom tou a usar um nokia 8210 como receiver dos tons dtmf e tou a usar um 2610 para envia os tons...

Desmontei todo o circuito e voltei a montar...


No serial monitor esta a sempre a aparecer RECEBIDO:RECEBIDO:RECEBIDO:

Nao passa dai... quando deveria aparecer

Recebido :1
Recebido 2 etc etc consoante a tecla que marco no 2610...parece que nao ta haver comunicacao ja revi todo o circuito e nada.... o CI e novo ja desconfio dele...

Alguem que perceba do codigo e me diga o que esta mal...

Tou a usar um UNO no autor do esquema diz que funciona com o uno que a pinagem e codigo e igual ao do mega.

tou a desmorecer...

Offline JPTuga

  • Mini Robot
  • *
  • Mensagens: 125
Re: [AJUDA ]Automação Residencial com DTMF
« Responder #3 em: 02 de Dezembro de 2011, 11:46 »
Eu dei uma vista de olhos ao código e concluí que é problema ao nível de hardware. Vê se a placa do relê está bem conectada com o arduino, ou se simplesmente os telefones fazem conecção entre eles. Porque ele para te dar recebido, recebido, recebido está a receber valores, mas  simplesmente não é o que tu pretendes.  ;)

Depois manda algo a confirmar, se te continuar a dar o mesmo erro eu faço uma simulação.

Jean-Pierre Carvalho
[/sub]

Offline r16

  • Mini Robot
  • *
  • Mensagens: 339
Re: [AJUDA ]Automação Residencial com DTMF
« Responder #4 em: 02 de Dezembro de 2011, 12:24 »
Ola Jp olha eu nao tenho o rele ligado ou seja nao tenho o pino 2 conectado. tou so a testar as restantes teclas a ver se ha comunicacao e efectivamente nao ha. agora nao sei se o problema e dos telemoveis. nem sei como testar pois o cabo ta bem conectado.

Offline r16

  • Mini Robot
  • *
  • Mensagens: 339
Re: [AJUDA ]Automação Residencial com DTMF
« Responder #5 em: 02 de Dezembro de 2011, 19:35 »
Bom, hoje tentei novamente, e o que e certo e que agora ja nao aparece aquela mensagem maluca de recebido... parece ja tar tudo ok... mas nao ha comunicacao entre os telemoveis...

Estou seriamente convencido que estes dois telemoveis nao devem suportar DTMF...

Pelo menos o que ta ligado ao arduino... sera que nem todos os nokias recebem tons  a dtmf...
enviar tem a opcao... mas receber...tou na duvida.. podem me esclarecer?


Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: [AJUDA ]Automação Residencial com DTMF
« Responder #6 em: 02 de Dezembro de 2011, 19:38 »
É impossivel não ter DTMF, é que sem DTMF é impossivel a operadora saber que numero marcaste, eles podem é não dar som quando carregas nas teclas, mas isso é outra coisa..
Avr fanboy

Offline r16

  • Mini Robot
  • *
  • Mensagens: 339
Re: [AJUDA ]Automação Residencial com DTMF
« Responder #7 em: 02 de Dezembro de 2011, 20:40 »
Enviar , ele envia... pois os nokias que aqui tenho durante a chamada têm o menu : ENVIAR DTMF , agora receber tenho serias duvidas que todos deem.
Ao ver na net... todos os projectos dtmf aparecem telemoveis com atendedor automatico... para alem de aparecer sempre quase o mesmo modelo de telemovel nesses projectos.

Posso nao ter razao nenhuma no que tou a dizer... mas ainda nao li nada que me provasse o contrario.

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: [AJUDA ]Automação Residencial com DTMF
« Responder #8 em: 02 de Dezembro de 2011, 20:47 »
É muito facil, agarras no telemovel e carregas nas teclas, tem que fazer barulho, outro caso é estares a usar o fio errado, e teres o chip ligado ao microfone em vez de á coluna.
Avr fanboy

Offline r16

  • Mini Robot
  • *
  • Mensagens: 339
Re: [AJUDA ]Automação Residencial com DTMF
« Responder #9 em: 02 de Dezembro de 2011, 21:06 »
Senso,
Vou te dizer dois testes que fiz:

Sem auricular ligado... quando ligo para o telemovel e carrego nas teclas do EMISSOR oico o APITO no telemovel receptor.

Com o auricular ligado... nao oico nada no telemovel receptor..nem no emissor. vou tentar com um jack mono.... a ver.

Offline r16

  • Mini Robot
  • *
  • Mensagens: 339
Re: [AJUDA ]Automação Residencial com DTMF
« Responder #10 em: 02 de Dezembro de 2011, 21:24 »
bom tentei ligar um jack mono, assim que conecto ao telemovel o telemovel diz acessorio nao suportado...

que  raio de sorte a minha,...nao atino com isto nao recebe os comandos.

Offline r16

  • Mini Robot
  • *
  • Mensagens: 339
Re: [AJUDA ]Automação Residencial com DTMF
« Responder #11 em: 04 de Dezembro de 2011, 22:10 »
Bom, tenho progressos....

Hoje comprei um jack stereo, liguei ao telemovel e ja consigo comunicacao entre o telemovel e o arduino...

mas as teclas nao combinam conforme o codigo indica...


Quando carrego na tecla 5 ele acusa 4 se carrego 9 acusa 2 etc as teclas nao combinam...ou seja parece que o chip nao reconhece bem o tom...

o que sera?

Offline almamater

  • Mini Robot
  • *
  • Mensagens: 1.918
    • GrcByte - Projectos
Re: [AJUDA ]Automação Residencial com DTMF
« Responder #12 em: 05 de Dezembro de 2011, 13:43 »
Parece muito interessante o projecto sim, a nível de custos é o preço da chamada normal de um telefone para o outro certo? a partir dela é que se identificam os tons, é isso não é?

Offline r16

  • Mini Robot
  • *
  • Mensagens: 339
Re: [AJUDA ]Automação Residencial com DTMF
« Responder #13 em: 21 de Fevereiro de 2012, 22:22 »
voltando ao topico preciso de uma ajuda... o que tenho que alterar no codigo para que quando eu meta o codigo 1234 se ligue o led no pin 13 e nao o que esta acontecer agora.. que é que ele liga logo o led13 quando presso a tecla 1 do telemovel.

Eu quero nesta sequencia:

ligo para o telemovel
meto o meu codigo pessoal 1234
pressiono a tecla1
e ele acende o led13

alguem me pode ajudar?


#define RELE1 13
#define PASSWORD 1234 // Define a senha


int RELE1_STATE = LOW;




//=======================================================
// ENTRADAS DTMF DIGITAIS
//=======================================================
int pinBit01 = 8;
int pinBit02 = 9;
int pinBit03 = 10;
int pinBit04 = 11;
int pinBitSts= 12;


int bit01 = 0;   
int bit02 = 0;   
int bit03 = 0;   
int bit04 = 0; 
int bitSts= 0; 




boolean proceed = false; //Fag que habilita o funcionamento dos comandos mediante senha digitada corretamente - inicializa falso!


String tmpPass =' '; //Armazenamento da senha digitada no telemóvel!


String password = "1234"; // Defina sua senha aqui - pode ser de quaisquer número de dígitos!


void setup() { 
 
  Serial.begin(9600);
 
  pinMode(RELE1, OUTPUT); 
 
  digitalWrite(RELE1, LOW); 
 


  Serial.println("Aguardando comando...");
}




void loop() { 
 
bitSts= digitalRead(pinBitSts);
bit01 = digitalRead(pinBit01);   
bit02 = digitalRead(pinBit02);   
bit03 = digitalRead(pinBit03);   
bit04 = digitalRead(pinBit04);   


numero   = (bit01 * 1) + (bit02 * 2) + (bit03 * 4) + (bit04 * 8);


if (bitSts == HIGH && numero < 13) { 
 
Serial.print("Recebido: ");   
switch (numero){
      case 1:
        Serial.println("1");
        tmpPass += '1'; //Adiciona o número digitado em tmpPass
       
        /* COMANDO PARA RELE1 */
        if (proceed == true) // Se proceed é verdadeiro (a senha foi digitada corretamente) comando é executado!
        {
          RELE1_STATE = !RELE1_STATE; // Troca de estado (HIGH/LOW) cada vez que pressionar o botão.
          digitalWrite(RELE1, RELE1_STATE); //Liga-desliga Relé.
        }       
        break;
       
      case 2:
        Serial.println("2");
        tmpPass += '2'; //Adiciona o número digitado em tmpPass
        break;
       
      case 3:
        Serial.println("3");
        tmpPass += '3'; //Adiciona o número digitado em tmpPass
        break;
       
      case 4:
        Serial.println("4");
        tmpPass += '4'; //Adiciona o número digitado em tmpPass
        break;
       
      case 5:
        Serial.println("5");
        tmpPass += '5'; //Adiciona o número digitado em tmpPass
        break;
       
      case 6:
        Serial.println("6");
        tmpPass += '6'; //Adiciona o número digitado em tmpPass
        break;
       
      case 7:
        Serial.println("7");
        tmpPass += '7'; //Adiciona o número digitado em tmpPass
        break;
       
      case 8:
        Serial.println("8");
        tmpPass += '8'; //Adiciona o número digitado em tmpPass
        break;
       
      case 9:
        Serial.println("9");
        tmpPass += '9'; //Adiciona o número digitado em tmpPass
        break;
       
      case 10:
        Serial.println("0");
        tmpPass += '0'; //Adiciona o número digitado em tmpPass
        break;
       
      case 11: // Caractere '*'
        Serial.println("*");
        tmpPass =' '; //Limpa para armazenar a senha novamente!
        proceed = false; //Desabilita todos os comandos até que a senha seja digitada novamente!
        break;
       
      case 12: // Caractere '#'
        Serial.println("#");
       
        tmpPass = tmpPass.trim();//Retira os espaços em branco - ver caractere '*'!
   
        if (tmpPass == password) { // Se a senha digitada for igual a senha armazenada...
          Serial.println("Senha correta!");
          proceed = true; //Habilita todos os comandos via telemóvel
        }else{
          Serial.println("Senha ERRADA!");
          proceed = false; //Desabilita todos os comandos via telemóvel
        }
       
        /*
        //Caso queira ver a saida da senha é só descomentar
        Serial.print("tmpPass= ");
        Serial.println(tmpPass);
        Serial.print("password= ");
        Serial.println(password);
        */
       
        break;   
  }


 
 
 // Zeram todas as variáveis
  numero = 0;
  bit01 = 0;   
  bit02 = 0;   
  bit03 = 0;   
  bit04 = 0;   
  bitSts= 0; 
  delay (500);
  }


}