Fórum


Classifique este tópicoPéssimoRuimMedianoBomÓtimo
Ir para página 1 2 3  Next
Autor
Mensagem
3
rauppluizfr

Level 0
276400 xp

Registrado em:
16/12/2013





Mensagens:
5
3
rauppluizfr

Responder com citações
Mensagem Seg Dez 16, 2013 8:54 am
Acionando ar-condicionado
Ola,

Interessei-me muito pelo projeto e inclusive pretendo implementa-lo em minha residencia, contudo antes de realizar a compra dos modulos, principalmente do X-bee, estou fazendo uma prova de conceito com um Arduino Uno que tinha perdido aqui em casa.

Estive tentando acionar um ar-condicionado (consul linha bem-estar) sem sucesso. OS controles de TV e demais aparelhos IR que tenho aqui em casa nao tive qualquer problema, contudo quanto ao ar-condicionado nem por decreto consigo enviar um comando reconhecivel pelo mesmo. Estive usando a Biblioteca IRemote e a mesma reconhece o codigo como NEC, inclusive ja tentei enviar o codigo bruto (raw) tambem sem sucesso...

Alguma sugestao do que poderria estar acontecendo, pesquisando no google percebi que é um problem recorrente, mas não encontrei nenhuma solucao que se adeque a minha situação. So falta definir essa questao para adquirir os modulos x-bee e comecar de fato a automacao.

BeatSlayer
Moderator
Level 43
43488582 xp

Registrado em:
29/11/2012





Mensagens:
1303

BeatSlayer
Moderator
Responder com citações
Mensagem Seg Dez 16, 2013 10:26 am
Acionando ar-condicionado
Códigos que usaste para enviar?

_________________
Aceitam-se doações.
Twisted Evil De preferência de um Arduino Shield - Ethernet R3 Twisted Evil
3
rauppluizfr

Level 0
276400 xp

Registrado em:
16/12/2013





Mensagens:
5
3
rauppluizfr

Responder com citações
Mensagem Seg Dez 16, 2013 10:41 am
Acionando ar-condicionado
BeatSlayer Escreveu:
Códigos que usaste para enviar?
No momento estou usando o exemplo da biblioteca IRemote, o IRecorde ...
Comentário:
/* * IRrecord: record and play back IR signals as a minimal * An IR detector/demodulator must be connected to the input RECV_PIN. * An IR LED must be connected to the output PWM pin 3. * A button must be connected to the input BUTTON_PIN; this is the * send button. * A visible LED can be connected to STATUS_PIN to provide status. * * The logic is: * If the button is pressed, send the IR code. * If an IR code is received, record it. * * Version 0.11 September, 2009 * Copyright 2009 Ken Shirriff * http://arcfn.com */ #include <IRremote.h> int RECV_PIN = 11; int BUTTON_PIN = 12; int STATUS_PIN = 13; IRrecv irrecv(RECV_PIN); IRsend irsend; decode_results results; void setup() { Serial.begin(9600); irrecv.enableIRIn(); // Start the receiver pinMode(BUTTON_PIN, INPUT); pinMode(STATUS_PIN, OUTPUT); } // Storage for the recorded code int codeType = -1; // The type of code unsigned long codeValue; // The code value if not raw unsigned int rawCodes[RAWBUF]; // The durations if raw int codeLen; // The length of the code int toggle = 0; // The RC5/6 toggle state // Stores the code for later playback // Most of this code is just logging void storeCode(decode_results *results) { codeType = results->decode_type; int count = results->rawlen; if (codeType == UNKNOWN) { Serial.println("Received unknown code, saving as raw"); codeLen = results->rawlen - 1; // To store raw codes: // Drop first value (gap) // Convert from ticks to microseconds // Tweak marks shorter, and spaces longer to cancel out IR receiver distortion for (int i = 1; i <= codeLen; i++) { if (i % 2) { // Mark rawCodes[i - 1] = results->rawbuf[i]*USECPERTICK - MARK_EXCESS; Serial.print(" m"); } else { // Space rawCodes[i - 1] = results->rawbuf[i]*USECPERTICK + MARK_EXCESS; Serial.print(" s"); } Serial.print(rawCodes[i - 1], DEC); } Serial.println(""); } else { if (codeType == NEC) { Serial.print("Received NEC: "); if (results->value == REPEAT) { // Don't record a NEC repeat value as that's useless. Serial.println("repeat; ignoring."); return; } } else if (codeType == SONY) { Serial.print("Received SONY: "); } else if (codeType == RC5) { Serial.print("Received RC5: "); } else if (codeType == RC6) { Serial.print("Received RC6: "); } else { Serial.print("Unexpected codeType "); Serial.print(codeType, DEC); Serial.println(""); } Serial.println(results->value, HEX); codeValue = results->value; codeLen = results->bits; } } void sendCode(int repeat) { if (codeType == NEC) { if (repeat) { irsend.sendNEC(REPEAT, codeLen); Serial.println("Sent NEC repeat"); } else { irsend.sendNEC(codeValue, codeLen); Serial.print("Sent NEC "); Serial.println(codeValue, HEX); } } else if (codeType == SONY) { irsend.sendSony(codeValue, codeLen); Serial.print("Sent Sony "); Serial.println(codeValue, HEX); } else if (codeType == RC5 || codeType == RC6) { if (!repeat) { // Flip the toggle bit for a new button press toggle = 1 - toggle; } // Put the toggle bit into the code to send codeValue = codeValue & ~(1 << (codeLen - 1)); codeValue = codeValue | (toggle << (codeLen - 1)); if (codeType == RC5) { Serial.print("Sent RC5 "); Serial.println(codeValue, HEX); irsend.sendRC5(codeValue, codeLen); } else { irsend.sendRC6(codeValue, codeLen); Serial.print("Sent RC6 "); Serial.println(codeValue, HEX); } } else if (codeType == UNKNOWN /* i.e. raw */) { // Assume 38 KHz irsend.sendRaw(rawCodes, codeLen, 3Cool; Serial.println("Sent raw"); } } int lastButtonState; void loop() { // If button pressed, send the code. int buttonState = digitalRead(BUTTON_PIN); if (lastButtonState == HIGH && buttonState == LOW) { Serial.println("Released"); irrecv.enableIRIn(); // Re-enable receiver } if (buttonState) { Serial.println("Pressed, sending"); digitalWrite(STATUS_PIN, HIGH); sendCode(lastButtonState == buttonState); digitalWrite(STATUS_PIN, LOW); delay(50); // Wait a bit between retransmissions } else if (irrecv.decode(&results)) { digitalWrite(STATUS_PIN, HIGH); storeCode(&results); irrecv.resume(); // resume receiver digitalWrite(STATUS_PIN, LOW); } lastButtonState = buttonState; }

BeatSlayer
Moderator
Level 43
43488582 xp

Registrado em:
29/11/2012





Mensagens:
1303

BeatSlayer
Moderator
Responder com citações
Mensagem Seg Dez 16, 2013 11:09 am
Acionando ar-condicionado
Esse código consegue ler mas não repetir. É isso?

Qual o código do controle (o hex referente ao código NEC)?

Já experimentaste repetir algumas vezes o mesmo código?

_________________
Aceitam-se doações.
Twisted Evil De preferência de um Arduino Shield - Ethernet R3 Twisted Evil
3
rauppluizfr

Level 0
276400 xp

Registrado em:
16/12/2013





Mensagens:
5
3
rauppluizfr

Responder com citações
Mensagem Ter Dez 17, 2013 1:57 pm
Acionando ar-condicionado
BeatSlayer Escreveu:
Esse código consegue ler mas não repetir. É isso? Qual o código do controle (o hex referente ao código NEC)? Já experimentaste repetir algumas vezes o mesmo código?
Entao, ontem aumentei o buffer da bilbioteca do IRemote de 100 para 250 e pelo menos assim consegui comandar o ar enviando diretamente o codigo raw lido, contudo, mandando o NEC os comandos simplesmente nao funcionam. No momento ateh dah para ir tocando o projeto para o que eu pretendo fazer em casa, mas sem enviar o comando NEC vai ser complicado mais para frente saber o que eh informacao de temperatura, de velocidade, essas coisas, somente olhando aquele monte de dado do codigo raw, sem falar no consumo de memoria para armazenar um buffer desse tamanho. Pensei em fazer uma rotina para ler os codigos diretamente do cartao SD, mas nao sei se o tempo de leitura e conversão dos dados vai atrapalhar o envio do raw (vou ver se testo essa semana).

BeatSlayer
Moderator
Level 43
43488582 xp

Registrado em:
29/11/2012





Mensagens:
1303

BeatSlayer
Moderator
Responder com citações
Mensagem Ter Dez 17, 2013 6:11 pm
Acionando ar-condicionado
Funciona sim pelo SD até já fiz algum código para isso tem bastante tempo, e também para ler da PROGMEM.

_________________
Aceitam-se doações.
Twisted Evil De preferência de um Arduino Shield - Ethernet R3 Twisted Evil

Lenz
Site Admin
Level 20
20539407 xp

Registrado em:
08/05/2004



Equipe:
RC Teste

Mensagens:
907

Lenz
Site Admin
Responder com citações
Mensagem Sab Jan 04, 2014 11:20 am
Acionando ar-condicionado
O Albatross consegue controlar Ar-Condicionado sem problemas, porém devido ao tamanho do comando IR utilizado pelos ar-condicionados, além das bibliotecas desenvolvidas para o Albatross, é necessário utilizar um Arduino Mega.

Lembre que para controle de aparelhos IR, não é necessário utilizar módulos escravos e consequentemente não há necessidade dos XBees, apenas o Albatross Master é necessário.
3
cwds.al

Level 0
0 xp

Registrado em:
27/02/2014





Mensagens:
1
3
cwds.al

Responder com citações
Mensagem Qui Fev 27, 2014 8:56 pm
Acionando ar-condicionado
BeatSlayer Escreveu:
Funciona sim pelo SD até já fiz algum código para isso tem bastante tempo, e também para ler da PROGMEM.
BeatSlayer, Sou novo com o arduino e gostaria se possível, postasse um exemplo de código que buscasse do SD a informação do código raw e enviasse para o equipamento.

leotronica

Level 13
13191501 xp

Registrado em:
02/01/2005



Equipe:
Mecatron

Mensagens:
291

leotronica

Responder com citações
Mensagem Sab Mar 15, 2014 8:55 pm
Acionando ar-condicionado
Pessoal, eu vi que o Albatross disponibilizado pela Robocore consegue controlar ar condicionado como dito na citação abaixo.

Comentário:
O Albatross consegue controlar Ar-Condicionado sem problemas, porém devido ao tamanho do comando IR utilizado pelos ar-condicionados, além das bibliotecas desenvolvidas para o Albatross, é necessário utilizar um Arduino Mega.
Dai queria sabe o que o arduino mega tem de especial em relação ao uno? Ja tentei enviar o codigo do ar usando raw e tambem modificando o rawbuffer mais não da certo. Também tentei usar a função PROGMEM mas também não funcionou. Qual é o mistério por trás do ar-condicionado?
3
Servio

Level 0
802913 xp

Registrado em:
22/09/2013





Mensagens:
15
3
Servio

Responder com citações
Mensagem Seg Mar 17, 2014 6:41 pm
Acionando ar-condicionado
Boa tarde Pessoal, 

Estou usando o Albatross junto ao TouchOsc para controle do ar condicionado via IR. Até aí tudo bem...funciona perfeitamente assim como a tv, o relés Xbee e o home theater. Acrescentei ao código do Albatross um LDR e um LM35, minha ideia é que entre uma faixa de valores de temperatura o código enviasse sinais IR para diminuir ou aumentar a temperatura do ar condicionado. Como faço para que caso uma condição do IF ele mande o sinal IR? 

Abraços.
Mostrar mensagens desde a última:
Ir para página 1 2 3  Next




Ir para:  
Todos os horários são GMT - 3 HorasVocê não tem permissão para escrever novas mensagens
v não tem permissão para responder às mensagens
Você não tem permissão para editar suas mensagens
Você não tem permissão para deletar suas mensagens
Você não tem permissão para classificar tópicos
Você não tem permissão para classificar mensagens
Você não tem permissão para votar em enquetes
Anexar downloads : Proibido
Fazer Download de Arquivos: Proibido
Powered by phpBB © 2001 phpBB Group