Automação residencial em módulos

Eu sempre tento reaproveitar as coisas por aqui, um belo dia eu estava usando uma fonte de celular ching ling e percebi oscilações consideráveis nas leituras das portas analógicas, perdi um bom tempo tentando perceber onde eu estava errando (circuito/programa), até que peguei uma fonte da sony que estava jogada em um canto. Como mágica o problema acabou, então desmontei ambas as fontes e lá estava, a simplicidade chinesa. Os chinocas poderiam pelo menos colocar um reguladorzinho de tensão, não é? Mesmo cobrando 1 dólar a mais o mercado ainda seria deles.

Mortis:
Os chinocas poderiam pelo menos colocar um reguladorzinho de tensão, não é? Mesmo cobrando 1 dólar a mais o mercado ainda seria deles.

O problema é que a China tem cerca de 1,354,040,000 pessoas (List of countries and dependencies by population - Wikipedia) e se, imaginemos metade delas, metessem um reguladorzinho e um condensadorzinho para ter um produto um pouco melhor, a outra metade continuaria como está e colocava o seu produto um dólar mais barato no mercado.
Consegues adivinhar qual das metades ia à falência?

O problema, na realidade, não está na China mas em todos nós. Hoje em dia muito pouca gente consegue dar valor às coisas... isto aliado à falta de humildade de algumas pessoas em admitir que não sabem tudo, causa a impressão que as pessoas estão a ser roubadas quando existe uma diferenca abismal entre os precos do que, à vista desarmada, parece ser a mesma coisa.

Achas sinceramente que os nossos avós, tendo possibilidade de comprar a sua mobília no Ikea ou num carpinteiro competente (como existem aos montes nas zonas de Pacos de Ferreira e Paredes em Portugal) iam ao Ikea? Ou que iam comprar aquele casaco de Inverno à Primark?

Neste aspecto das fontes de alimentacão eu, talvez devido à formacão que tenho, sempre evitei ao máximo usar fontes que não da marca (lembram-se quando os GPSs não traziam carregador de isqueiro mas de tomada? Design fail ao máximo nível.).
Lembro-me de ter um colega meu no seu projecto final de curso com problemas nos últimos dias porque não podia levar a fonte de alimentacão do laboratório para apresentar o seu projecto e decidiu alimentar aquilo com um carregador dos Chineses... O sistema não respondia e quando respondia era errático e como foi a única coisa que mudou, acabamos por tirar uma tardinha a "brincar" com a fonte.
Viemos a descobrir que a fonte estava marcada para 12V mas colocava 18V na saída em aberto (Não é problemático, para ser sincero). Com uma certa carga na saída a fonte aninhava para perto dos 12V... mas um pouco mais de carga e o ripple era mau. Ou seja a fonte era suficiente para algo com um consumo constante próximo do seu valor regulado.

Quando eventualmente os dispositivos passaram a ser carregados por USB, passei a usar carregadores de diferentes marcas mas todas elas reconhecidas entre alguns gadgets (tendo em conta a potência deles)... ou o computador. :slight_smile:

Para este projecto, que estava a pensar usar fontes USB, um dos pontos que tinha já planeados era comprar uma ou duas destas fontes e testar a qualidade das saídas e no desenho tentar minimizar o ripple com um condensador.

Tens razão quanto a placas só com sensores... acho que vou pesquisar um pouco mais a possibilidade de fazer um shield tipo protoboard com as ligacões para o nRF e talvez ligadores de parafuso (para alguns sensores dá um jeitaco) para alimentar sensores externos.

bubulindo:
O problema é que a China tem cerca de 1,354,040,000 pessoas (List of countries and dependencies by population - Wikipedia) e se, imaginemos metade delas, metessem um reguladorzinho e um condensadorzinho para ter um produto um pouco melhor, a outra metade continuaria como está e colocava o seu produto um dólar mais barato no mercado.
Consegues adivinhar qual das metades ia à falência?

O problema, na realidade, não está na China mas em todos nós. Hoje em dia muito pouca gente consegue dar valor às coisas... isto aliado à falta de humildade de algumas pessoas em admitir que não sabem tudo, causa a impressão que as pessoas estão a ser roubadas quando existe uma diferenca abismal entre os precos do que, à vista desarmada, parece ser a mesma coisa.

Ninguém sabe tudo, e não importa o quanto aprenda, cada pergunta respondida da origem a mais duas perguntas.

É verdade, na china a coisa é tensa! Eu não tinha pensado na relação entre concorrência e consumidores!

Todos sabemos que os chineses focam, primeiramente, o custo, quando compramos assumimos o risco!

Ainda assim eu adoro os chinocas, apesar de as vezes me dar mal rs (comprei um carregador para baterias de Li-Ion, que possuía dois canais, possuía porque um deles já morreu :grin:)!

Nem eu estou a dizer que a China é a culpada. Havendo procura, haverá sempre oferta. Os carregadores que foram exemplificados aqui saíram todos da China... muito mais coisas com qualidade saem da China... A Nikon tem uma fábrica de lentes lá... a Intel tem uma mega fábrica de processadores lá... e não é só em manufactura que eles são "bons". Se fores, por exemplo, à Seeedstudio.com vês electrónicas feitas na China com muito boa engenharia também.

O problema está do lado da procura não saber julgar valor. Só isso.

A questão de eu ter adotado esse carregador xing-ling é o tamanho dele.
Tenho vários carregadores originais aqui em casa, mas os componentes ocupam mais espaço.

Vou testar a questão da interferência. Se for alta demais aí terei que dar outro jeito...

Alguém conhece algum outro carregador mais ou menos do mesmo tamanho que estou adotando?

Não me importo de pagar um pouco mais para ter segurança e estabilidade nesse projeto.

Estou ainda quebrando a cabeça para fazer o RF24 funcionar...
Rodei alguns exemplos, porém somente um deles funcionou com uma taxa de sucesso de 2%.
Estou verificando a questão do clock do processador e outros fatores, quando o tiver funcional aí começarei a testar com o carregador xing-ling.

Já estou gostando da elecrow. Eles já mandaram uma foto da PCI pronta :D.

edit: estava pensando se não seria melhor eu remover a parte conversão de 12v para 5v da PCI... tipo, a ideia seria ter ter na caixa de automação principal duas fontes como essas, sendo uma de 5v e outra de 12v (na verdadade tem algumas fontes que já possuem as duas saídas, 12v e 5v). Minha dúvida fica em três pontos:

  • No início, não estava pensando em utilizar a alimentação diretamente em 5v porque tenho o receio de que com a fiação longa (sei lá, cerca de 100 m) a tensão possa diminuir e a placa e seus componentes não funcionem direito. Essa preocupação é válida?
  • No caso de eu utilizar 2 fontes (acho que sai mais barato do que uma dupla!), posso ligar os GND das duas, para ter somente 5 pinos no conector da PCI (12v, 5v, GND, A e B)?
  • Vi um datasheet de uma dessas fontes duplas e fiquei na dúvida no item Current Range de 5v, que é 2 ~ 12A. Isso quer dizer que não tenho como conseguir correntes menores que 2A? Isso pode queimar o sistema, se ligar somente em uma placa, por exemplo, já que o consumo será bem menor que 2A, correto?

CIMG3721.JPG

A sua preocupação de ter queda de tensão é válida. Tem um aplicativo para android chamado ElectroDroid (com vários mini-aplicativos, entre eles a Calculadora de Queda de Tensão) que faz esses cálculos baseado na distância, tensão, bitola do fio, material do fio e corrente consumida.

Exemplo de calculo:

material: cobre
bitola: 24 AWG
rede: DC
distância à carga: 20m
tensão: 5V
carga: 100mA
Queda de tensão: 346.24mV (6.92%)
Tensão no final do circuito: 4.654V
Seção transversal do fio: 404cmil (0.205mm2)
Diâmetro: 0.02 inch, 0.511mm

Já estou gostando da elecrow. Eles já mandaram uma foto da PCI pronta smiley-grin.

Sim eles dao muita atençao ao cliente e fazem sempre isso.
O tempo de produçao tambem é de todos o melhor dos fabricantes que ja usei.
Ao olhar para a tua placa reparo que deixaste um condensador sobre um conector?Foi de proposito?
Quando a uns posts atraz mostraste a placa no eagle observei o mesmo mas nao disse nada por pensar que inda nao estava acabada.
Eles "elecrow" até ja me avisaram uma vez sobre um silkscreen um pouco fora do lugar.Nao te disseram nada?
Porque motivo deixaste o condensador assim?

HugoPT:

Já estou gostando da elecrow. Eles já mandaram uma foto da PCI pronta smiley-grin.

Sim eles dao muita atençao ao cliente e fazem sempre isso.
O tempo de produçao tambem é de todos o melhor dos fabricantes que ja usei.
Ao olhar para a tua placa reparo que deixaste um condensador sobre um conector?Foi de proposito?
Quando a uns posts atraz mostraste a placa no eagle observei o mesmo mas nao disse nada por pensar que inda nao estava acabada.
Eles "elecrow" até ja me avisaram uma vez sobre um silkscreen um pouco fora do lugar.Nao te disseram nada?
Porque motivo deixaste o condensador assim?

Putz, nem prestei atenção nisso! Quando movi os conectores para poder colocar os parafusos os movi para cima do capacitor, que vacilo!

Tomara que dê para consertar isso, mas acho que não terei muitos problemas... já que esse é mais um protótipo mesmo (quase final, mas continua sendo um protótipo).

E não, a elecrow não me avisou nada... mas continuam com pontos comigo, afinal o erro foi meu.

ola LegendBR
a lib que criaste foi a MasterSlaveFuji.cpp
Dá para clocar aqui um exemplo para entender melhor o funcionamento

Cumps
holdman_2004

Dá só a partir do dia 15, pois estou embarcado, sem acesso aos códigos.

Mas vou ver se consigo postar um exemplo antes disso.

Ok. obridado

Holdman_2004

LegendBR:
...

  • Vi um datasheet de uma dessas fontes duplas e fiquei na dúvida no item Current Range de 5v, que é 2 ~ 12A. Isso quer dizer que não tenho como conseguir correntes menores que 2A? Isso pode queimar o sistema, se ligar somente em uma placa, por exemplo, já que o consumo será bem menor que 2A, correto?

Até onde sei a corrente que ele informa é o que a fonte suporta.
Quem vai ditar o uso da corrente é o dispositivo que a está usando.

Claro que se você ligar um led, como o led não possui resistor ele vai puxar toda a corrente disponível fazendo-o queimar, mas isso não ocorre com outros componentes, pelo menos até onde sei.
O problema seria se todo o circuito que você montou precisasse de mais corrente do que a fonte suporta, aí a fonte queimaria.

Uma forma fácil de você verificar essas coisas é com um voltímetro. É só medir a corrente que o seu circuito puxa, ligando em uma fonte com maior amperagem você vai verificar que o seu circuito não vai puxar mais corrente em função disso.

Me corrijam se eu estiver errado.

Concordo que normalmente seria isso, mas porque ele informa um range de corrente, e não somente a corrente máxima? Achei meio estranho, mas...

Também achei estranho citar o range.
Semana passada compramos duas fontes dessas para alimentar alguns equipamentos wireless no trabalho e o consumo não chega a 2A. Esta rodando sem problema.
Já tínhamos uma fonte semelhante (fisicamente pelo menos) a essa em um rack da Oi alimentando um bastidor com modems adsl. Apesar de termos reserva, nunca vi essas fontes darem defeito.
Uma outra alternativa mais barata e fácil de encontrar seria uma fonte de computador, nela você +12v, -12v, 5v e 3.3v com suporte até 20A de carga dependendo da fonte.

LegendBR:
Dá só a partir do dia 15, pois estou embarcado, sem acesso aos códigos.

Férias de luxo? Ou trabalho mesmo? :stuck_out_tongue:

bubulindo:

LegendBR:
Dá só a partir do dia 15, pois estou embarcado, sem acesso aos códigos.

Férias de luxo? Ou trabalho mesmo? :stuck_out_tongue:

hehehe, trabalho mesmo, plataforma de petróleo :P.

LOL Quem diria que estamos ligados pelo nosso trabalho também, hein???

Queres dizer o nome a ver se eu a conheco? :slight_smile:

icarop:
(...)
Uma forma fácil de você verificar essas coisas é com um voltímetro. É só medir a corrente que o seu circuito puxa, ligando em uma fonte com maior amperagem você vai verificar que o seu circuito não vai puxar mais corrente em função disso.

Me corrijam se eu estiver errado.

Até onde entendo (corrijam-me se me falta algo de entendimento), é exatamente isso.

Na fonte temos indicação da capacidade de fornecer corrente, "pode ser que" os 2A sejam referenciais e os 12A sejam a capacidade máxima, ou seja, se exigir mais que 12A do canal de o funcionamento fica comprometido. Normalmente temos a tabela de mínimo/tipico/máximo nos datasheets, o que deixa bem claro, neste caso creio que só o fabricante pode dizer com certeza.

Fiz uma alteração na biblioteca do RS485, mas como não tenho como testar (fiz somente no bloco de notas), vou colocar um exemplo de código Master - Slave utilizando ela (novamente, não tenho como testar, então se aparecer algum erro, me avisem!).

Primeiro vamos ao protocolo. A parte que nos interessa é a seguinte:

  • int id: ID do módulo de destino da mensagem;
  • char command: caracter do comando (por exemplo "L" para definir status das lâmpadas, "S" para informar valor de sensor, etc.);
  • int function: número do comando/função (por exemplo, S02 requisita o valor do sensor 2);
  • byte data1 ... byte data4: dados.

No exemplo abaixo o Master manda o Slave acender uma lâmpada ("L01") e 500 ms depois manda apagar, e depois de 500 ms manda acender novamente. Como é só uma lâmpada, para acender usarei os dados 0001 e apagar 0000:

#include "MasterSlaveFuji.h"

// Utilizarei o ID do Master como sendo 0
#define ID 0

// O pino 2 será utilizado para enable/disable do RS485
#define ENABLEPIN 2

MasterSlaveFuji *rs485;

void setup()
{
  pinMode(ENABLEPIN,OUTPUT);
  Serial.begin(9600);
  rs485 = new MasterSlaveFuji(ID, &Serial, ENABLEPIN);
}

void loop()
{
  // Envia comando L01 para o slave 02 para acender a lâmpada:
  rs485->sendENQ(2, 'L', 1, MasterSlaveFuji::Positive, '0', '0', '0', '1');
  
  // Aguarda confirmação de que o comando foi recebido, com 500 ms de time out:
  rs485->waitForMessage(500);
  
  // Verifica se houve resposta e se ela foi do tipo ACK (Acknowledgement). Se não for, tratar erro
  if ((!rs485->updated()) || (rs485->type != MasterSlaveFuji::ACK))
  {
    // Tratar erro
  }
  
  // Aguarda 500 ms
  delay(500);
  
  // Envia comando L01 para o slave 02 para apagar a lâmpada:
  rs485->sendENQ(2, 'L', 1, MasterSlaveFuji::Positive, '0', '0', '0', '0');
  
  // Aguarda confirmação de que o comando foi recebido, com 500 ms de time out:
  rs485->waitForMessage(500);
  
  // Verifica se houve resposta e se ela foi do tipo ACK (Acknowledgement). Se não for, tratar erro
  if ((!rs485->updated()) || (rs485->type != MasterSlaveFuji::ACK))
  {
    // Tratar erro
  }
  
  // Aguarda 500 ms
  delay(500);
  
}

O código do slave seria o seguinte (para a lâmpada usaremos o pino 13, aproveitando o LED do Arduino Uno):

#include "MasterSlaveFuji.h"

// Slave com ID 2
#define ID 2

// O pino 2 será utilizado para enable/disable do RS485
#define ENABLEPIN 2

// Pino da lâmpada
#define LEDPIN 13

MasterSlaveFuji *rs485;

void setup()
{
  pinMode(ENABLEPIN,OUTPUT);
  pinMode(LEDPIN,OUTPUT);
  Serial.begin(9600);
  rs485 = new MasterSlaveFuji(ID, &Serial, ENABLEPIN);
}

void loop()
{
  
  // Espera um comando:
  rs485->waitForMessage(500);
  
  // Verifica se tem uma nova mensagem/comando:
  if (rs485->updated())
  {
    // Verifica se o comando do tipo ENQ:
    if (rs485->type == ENQ)
    {
      // Verifica se o comando foi o F01:
      if ((rs485->command == 'F') && (rs485->function == 1))
      {
        // Acende ou apaga a lâmpada:
        digitalWrite (LEDPIN,rs485->data4 == '1');
        
        // Informa ao Master que o comando foi entendido e realizado:
        rs485->sendACK(0, 'F', 1, rs485->sign, rs485->data1, rs485->data2, rs485->data3, rs485->data4);

      }
      else
      {
        // Informa que a função não é reconhecida
        rs485->sendNAK(0, rs485->command, rs485->function, rs485->sign, rs485->data1, rs485->data2, rs485->data3, rs485->data4);
      }
    }
    else
    {
      // Trata se o comando não foi do tipo ENQ
    }
  }
}

Qualquer dúvida, podem perguntar!