Escolar Documentos
Profissional Documentos
Cultura Documentos
PARTE 1 – INTRODUÇÃO
A inspiração para este projeto era simples. Minha filha tem o hábito de esquecer sua chave de
casa, e nós tivemos resultados mistos com a garagem abridor de porta do teclado sem fio.
Tempo para uma nova solução. Além disso, é uma ótima desculpa para jogar com a eletrônica!
Ela tem um iPhone e ele nunca deixa seu lado, de modo que parecia uma interface razoável
usar. Além disso, se eu conectado à rede, eu poderia fazer algumas outras coisas interessantes,
como controle-lo do cargo.
Não seria prudente proceder sem ao menos olhar para ver como os outros tinham resolvido
este problema, quer com soluções comerciais, ou hacks. Mas, com toda a justiça, nós sabemos
onde isso vai dar, porque se eu encontrei algo que eu gostava, não haveria uma entrada de
blog aqui
Soluções comerciais:
Soluções Hacker:
Tenho certeza de que estas são soluções excelentes para alguns, mas eles simplesmente não
atender às minhas necessidades. Eu não iria impugnar o trabalho de outro hacker.
Meus requisitos:
• iPhone compatível
• possível detectar o estado atual da porta da garagem
• Expansível, tenho duas baías, embora eu realmente só usar um para um carro
• barato
• Alertar se a porta da garagem aberta por mais de X minutos
• LEDs indicadores para teste / resolução de problemas
• Interfaces com a porta da garagem existente
Eu tinha acabado de correr em uma Roving Networks RN-XV módulo que é projetado para
ser uma gota no substituto para um XBee. Possui 8 uso geral pinos digitais IO, wi-fi com a
configuração ad hoc (sem configuração de série necessário!) E ainda tem entradas de sensores
analógicos. Peg + rodada buraco redondo = solução!
Depois de analisar a folha de especificações, eu vim com esse esboço inicial:
Parte 2 – O microcontrolador.
http://rovingnetworks.com/products/RN_XV
Ligue 5v para o pino 1, pino terra em 10 pinos. Tie 8 a alta para ativar o modo de rede ad hoc.
Quando o módulo vem, já está transmitindo um SSID:
NOTA: Em versões de firmware 2.45 e mais tarde, o modo ad hoc agora atribui um endereço IP
por DHCP em vez de IP automática, assim que o endereço de destino para a configuração
agora é 1.2.3.4. (thnx para Vince para encontrar isso)
A configuração é mostrado acima. Eu uso WPA2/PSK, por isso a configuração foi um colossal 4
comandos para mim:
Se você usar WEP (que vergonha!), Sua configuração é um pouco diferente. Você vai usar um
valor de 1 para wlan auth, e em vez de definir senha utilização xxx wlan set xxx chave wlan
Desligue o poder, solte o pino 8 (desativar o modo ad hoc) e reconecte a alimentação. Dê ao
seu módulo de pelo menos 30 segundos para encontrar e juntar-se a sua network . 30
segundos depois, eu olho em / var / lib / misc / dnsmasq.leases e não é o meu módulo:
Parte 3 – Prototipo
PART 3 – Prototype
Fiz as contas para o protótipo do circuito. Eu percebi que algumas das GPIOs no WiFly
pode fonte 24mA. Hmm, que muda as coisas. Se eu usar um dos GPIOs de maior curso,
eu não preciso do transistor para amplificar a corrente. Encontrado um relé da
RadioShack que funciona em 5v.
Vai demorar 20 mA para disparar o relé, então eu tenho outra 4mA para conduzir um
LED. Eu vou ter que acender ao mesmo tempo que o relé para que eu possa verificar
visualmente quando o GPIO foi ativado. Vou usar um LED verde, que cai sobre 2.1v
(vou errar no lado inferior apenas para ser seguro).
Então, eu vou com um resistor de 1k no LED verde. E eu não tenho que usar um
transistor. Ganhar.
A Interface Web
Para o interruptor de contato da porta, eu vou magnético e colocar outro LED para
mostrar quando a porta está aberta. Acho que vou fazer isso um vermelho. Vou usar
uma das mais baixas GPIOs atuais (8mA). (5v – 1.9v) / 8mA = 390 ohms
Não importa que ele pode ser um pouco fraca, por isso vou usar outro resistor de 1k lá.
Aqui é o protótipo (valores de resistência pode não coincidir com o que eu calculei
antes, mas eles vão na versão final):
Aqui, você pode ver o ímã acionando o interruptor reed que muda o GPIO para alta.
E aqui, eu usei uma interface para acionar uma outra GPIO para ativar o relé (LED
vermelho está ligado ao relé, o verde é de respostas).
Este é o código de esperar / tcl (ubuntu) que eu usei para conduzir o WiFly:
NOTA: O caractere "/" é uma continuação de linha - esse código é realmente uma longa
fila.
Experimente e veja o vermelho LED light durante 3 segundos.
Telegrafei esta monstruosidade até meu camareiro portão de garagem e emitiu o
comando para abrir a porta da garagem. Sucesso!
O protótipo funciona, tempo para construir a página da web para ir com ele.
Bem, agora eu preciso de uma interface web bacana para controlar o abridor. Algumas
orientações para o projeto:
Assim, com um pouco de ajustes, eu vim com a seguinte interface (como visto em um iPhone):
Eventualmente, este será um widget em um projeto maior de automação residencial Eu quero
construir (someday!!). Então, este é limpo e simples e vai encaixar muito bem no meu projeto
futuro.
<?php
define(SERVER, "grendel");
define(DEST, "192.168.xxx.107");
define(PORT, "2000");
define(DOORTIME, 15);
define(CONTACT, "xxxxxxxxxx@vtext.com");
function wiflyExecute($commands) {
$script = 'log_user 0; spawn telnet '.DEST.' '.PORT.'; expect -exact
"*HELLO*"; send -- "\$\$\$\r"; expect -exact "CMD\r"; '.$commands.'; expect -
exact "> "; send_user $expect_out(buffer)"; send -- "close\r"; expect eof;';
exec("/usr/bin/expect -c'".$script."'", $stdout);
return($stdout);
}
$doorState = wiflyExecute('send -- "show io\r";');
$doorState = ((hexdec($doorState[4]) & hexdec("0x4000")) == 0 ? "closed" :
"open");
Alguns dos textos não exibe corretamente, so click here para abrir o código como um
arquivo de texto em uma nova janela / aba.
Aqui estão os gráficos que eu usei na minha página (cuidados de Visio e cerca de 5 minutos de
esforço - sim, os shows):
Agora, a razão pela qual eu fiz isto deste modo ... Quando você clica no botão "Open / Close",
que reabre a página, mas após a reabertura, ele emite o comando para o WiFly então um
redirecionamento. Isso vai evitar que a página seja atualizada acidentalmente. Eu também
colocar em uma mensagem pequena "Abertura", juntamente com uma atualização de meta
definida para o tempo que leva a porta para abrir / fechar totalmente (o meu leva 13
segundos, de forma que eu usei 15). Eu também configurá-lo para enviar e-mail uma
mensagem de texto para o meu celular pessoal. Só um pouco insurance / lembrete quando
meu gadget está sendo usado.
Com um pouco clicando e movendo o ímã perto do interruptor magnético, eu determinei que
tudo na interface web estava trabalhando de acordo com o design. Hora de acabar com isto
em um pacote bom e obtê-lo montado.
Parte 5 – A mantagem
Pronto para cometer este a uma placa. Eu decidi ir com um PCB RadioShack:
Eu sei que a comunidade não gosta de RadioShack, mas eles estão ficando melhor e esta
pequena placa me dá a flexibilidade e as conexões que eu preciso para se adequar ao
projeto. Além disso, ele se sente muito bem no meu caso projeto SparkFun - com
algumas pequenas modificações. Eu, particularmente, gosto de como os vestígios de
poder e de terra estão disponíveis em todo o tabuleiro.
Um par de minutos (eu disse minutos eu quis dizer HORAS - minhas habilidades de
solda estão enferrujadas?) No banco de projeto e eu vim com essa:
O perspicaz entre você vai notar que eu adicionei dois LEDs ao circuito. Um deles é
apenas um LED de energia - se o circuito tem poder, este LED está ligado. O outro é um
indicador "ad hoc wifi". Pino 8 fica amarrado para poder colocar o WiFly no modo ad
hoc. Achei que seria uma boa idéia para fazer deste um botão de pressão externa
(empurrar / empurrar) mudar em vez de ter de abrir a caixa, se eu precisar ativar o modo
ad hoc.
Mais alguns minutos (eu disse minutos? ...) Eo circuito final está pronto.
A outra grande coisa sobre o regulador ... Ele age como uma tomada então se eu
precisar trocar o WiFly, é fácil.
Perfurado alguns furos no caso de montar os conectores externos (de energia, sensor de
porta, abertura de porta) eo interruptor de modo ad hoc.
Um casal mais juntas de solda (use heatshrink! Importante) ...
Parte 7: Conclusão
A unidade será montado logo acima do meu portão de garagem. Os terminais pá ligar
para a esquerda e de centro terminais abaixo. Este é o mesmo lugar o meu interruptor
montado parede liga.
O sensor da porta foi gravado ao trilho da porta e um pequeno ímã foi quente colado ao
mecanismo de liberação da porta.
Melhorias futuras
O WiFly apresenta um par de entradas analógicas. Se eu rever esse projeto, com certeza
vou jogar um sensor de temperatura LM35 no tabuleiro. Pode também precisa expandir-
se para lidar com duas baías se eu acabar com o meu segundo compartimento para outro
automóvel.
Definitivamente vou considerar o WiFly em quaisquer projetos futuros onde eu preciso
digital e analógico I / O e posso manter os cérebros e lógica no meu servidor. Nenhum
código de piscar, não ICP, até mesmo o firmware WiFly pode ser atualizado via FTP.
Dispositivo surpreendente.
Para quem precisa dele, eu adicionei um wiring diagram.
thnx