Domótica com pi framboesa e arduino

Nós conversamos sobre os méritos relativos de Arduino e Raspberry Pi antes - cada um tem seus pontos fortes. Eles não precisa ser um tanto ou escolha embora - combiná-los para obter o melhor dos dois mundos. Domótica é o candidato perfeito para isso. O mercado de automação residencial é inundado com sistemas de consumo caros, incompatíveis um com o outro e caro para instalar. Se você tem um Raspberry Pi e um Arduino, basicamente você pode conseguir a mesma coisa em uma fração do preço, supondo que você está disposto a colocar no tempo eo esforço.

Update: Uma vez que este artigo foi escrito, eu descobri OpenHAB, uma plataforma de automação fonte casa livre e aberto que roda em Raspberry Pi e pode ser integrado com uma enorme gama de off-the-shelf kit inteligente casa, bem como Arduino. Confira o vídeo abaixo para obter uma olhadinha, então cabeça sobre sobre a nossa Introdução ao OpenHAB em Raspberry Pi guia para aprender mais. Introdução ao OpenHAB Home Automation em Raspberry PiIntrodução ao OpenHAB Home Automation em Raspberry PiOpenHAB é uma plataforma madura, open source domótica que é executado em uma variedade de hardware e é um protocolo agnóstico, o que significa que pode se conectar a praticamente qualquer hardware de automação residencial no mercado hoje.consulte Mais informação

Heimcontrol.js por Willi Thiel é um Node.js aplicativo criado para funcionar em Raspberry Pi. Combinado com um Arduino e algumas tomadas de controle remoto off-the-shelf, faz controlando aparelhos AC fácil. Você pode adicionar sensores de temperatura, e até mesmo controlar sua TV - mas vamos ser manter as coisas básicas hoje e estendendo o projeto em um tutorial mais tarde.

Aqui está uma repartição do projeto:

  • O Raspberry Pi vai agir como os cérebros e a porta de entrada das operações - que vai executar um aplicativo do nó, amarrado a um banco de dados Mongo, e servir a interface de front-end para qualquer navegador web.
  • Um Arduino, alimentado a partir da Pi, servirá de interface entre os eletrônicos - interruptores de controle de rádio, por agora.

Para fazer isso, você vai precisar de:

  • Arduino e um Pi Raspberry
  • Algumas tomadas de controle remoto e controlador (eu usei estes)
  • hub USB alimentado

RC-sockets

Antes de começar, aqui está um vídeo de demonstração do projecto próprio criador.

começar de novo

Nós estamos indo para usar Raspian para este projeto, e eu sugiro fortemente a partir de uma nova instalação se você tiver executado anteriormente outros hacks e tal. Baixe a ultima imagem Raspian, copiá-lo para o seu cartão SD, e certifique-se de expandir o sistema de arquivos e permitir SSH. O restante deste guia irá supor que você tenha feito isso, e estão se conectando através de SSH usando o usuário padrão.7 Sistemas Operacionais Você pode correr com Raspberry Pi7 Sistemas Operacionais Você pode correr com Raspberry PiQuem pode discutir com um computador de US $ 40? Especialmente um que também constitui uma boa base para projetos de eletrônica! Eu certamente não posso. Mas o hardware por si só é apenas um lado da história: você ainda precisa ...consulte Mais informação

Se você não tiver feito isso antes, este vídeo explica o processo de preparação de seu cartão SD no OS X:

E este para usuários do Windows:

Video: Framboesa em casa , colha a fruta no pé, cuidados e dicas para se cultivar

Preparação

O processo de instalação é bastante trabalhoso, e derivado das instruções aqui. Infelizmente, estes foram ultrapassados ​​ou não concebido para Raspian, então eu ajustado los fortemente abaixo. Os códigos a seguir podem ser maioritariamente colado em blocos - você não precisa colar um por um. Desde que nós estamos compilando algumas coisas sobre o próprio Pi, ser avisado de que todo este processo vai levar um longo tempo. Eu diria que ir fazer uma chávena de chá - mas quando eu digo “um longo tempo”, refiro-me a melhor parte de um dia - assim 178 copos seria mais apropriado.

Todos os comandos devem ser digitados no terminal, e você pode precisar pressionar Enter em alguns pontos. Estes primeiros comandos irá atualizar o sistema e instalar pré-requisitos:

sudo apt-get atualizarsudo apt-get atualizarsudo apt-get instalar git-núcleo git scons scons construir essenciais libpcre ++ - dev xulrunner-dev libboost-dev libboost-programa-options-dev libboost-thread-dev libboost-filesystem-dev

Em seguida é preciso instalar o nó:

Video: Part 1: Raspberry Pi Zero Retro TV with the Casio TV 880

sudo mkdir / Opt / nówget http://nodejs.org/dist/v0.10.2/node-v0.10.2-linux-arm-pi.tar.gzalcatrão xvzf nó-v0.10.2-linux-arm-pi.tar.gzsudo cp -r nó-v0.10.2-linux-arm-pi / * / opt / nósudo ln -s / opt / node / bin / node / usr / local / bin / nósudo ln -s / opt / node / bin / NPM / usr / local / bin / npm

Adicionar uma variável PATH ao seu perfil para que o OS sabe onde Node está localizado. Use o editor de texto nano como segue:

sudo nano / Etc / perfil

Localize a linha que diz PATH exportação e substituí-lo com:

NODE_JS_HOME="/ Opt / nó"CAMINHO="$ PATH:$ NODE_JS_HOME/ bin"exportar CAMINHO

Pressione Ctrl-X para sair, e Y para salvar.

Você pode precisar sair e novamente para as mudanças caminho a tomar efeito, mas você pode testar com o comando:

qual

Se você não obter qualquer saída apontando para o binário Node, algo deu errado.

Mongo

O próximo trabalho é a instalação de Mongo. Mongo é um banco de dados não-SQL baseado em documentos cada vez mais utilizada por aplicações web. Infelizmente, isso vai demorar uma eternidade para instalar como temos de compilá-lo. Enquanto executando os seguintes comandos você vai ter um monte de erros como:

{entrada padrão}: 13085: Aviso: swp{b} utilização está obsoleta para esta arquitetura

Não se preocupe com isso. Então, execute estes comandos para instalar Mongo:

git clone git: //github.com/RickP/mongopi.gitCD mongopisconssudo scons --prefix=/ Opt / mongo instalarscons -c

Quando isso terminar, nós precisamos de um pouco mais a primeira configuração para corrigir problemas de permissão e verifique se ele está sendo executado na inicialização.



sudo useradd mongodbsudo mkdir / Dados / dbbsudo chown $ USER / Dados / dbCD /etc/init.dsudo wget -O mongodb https://gist.github.com/ni-c/fd4df404bda6e87fb718/raw/36d45897cd943fbd6d071c096eb4b71b37d0fcbb/mongodb.shsudo chmod +x mongodbsudo atualizar-rc.d mongodb defaultsmongod

Este último comando irá iniciar o servidor Mongo, e você vai precisar para abrir um novo terminal para continuar com os outros comandos. Não estou inteiramente confiante de este passo, então se alguém pode corrigir isso nos comentários sobre como ter mongod lançamento automaticamente no arranque, isso seria muito apreciado. Por enquanto, ele funciona, não apenas com elegância.

sudo desligar -r agora

Finalmente, é hora de instalar o aplicativo Heimcontrol.js Node.

CD ~ pigit clone git: //github.com/ni-c/heimcontrol.js.gitCD heimcontrol.jsnpm instalar

Você pode começar a executar o aplicativo, digitando

heimcontrol.js nó

Neste ponto, você deve ser capaz de acessar a interface de controle com http: // localhost: 8080 do Pi, ou substituir localhost com o endereço IP se você estiver acessando-o a partir de um computador diferente (E você também pode configurar encaminhamento de porta para acessá-lo de qualquer lugar do mundo), então eu encorajá-lo a picar ao redor e verificar tudo está a trabalhar com o banco de dados antes de colocar o Arduino.O que é Port Forwarding & Como é que isso pode ajudar-me? [MakeUseOf Explica]O que é Port Forwarding & Como é que isso pode ajudar-me? [MakeUseOf Explica]Você chora um pouco para dentro quando alguém lhe diz que há um problema de encaminhamento de porta e é por isso que seu aplicativo novo e brilhante não vai funcionar? O Xbox não vai deixar você jogar jogos, seus downloads de torrent recusar ...consulte Mais informação

ferragens

Eventualmente, eu gostaria de um relé hardwired, mas por enquanto eu vou estar usando a opção mais segura de interruptores controlados por rádio.

Eu usei algumas razoavelmente barato £ 20 conjuntos de Maplin que vêm com 3 tomadas, e abriu-se o controle remoto para que eu pudesse interagir diretamente com o chip de 433 MHz dentro. Eu encontrei as instruções para este aqui.

rc-controlador-hack

Você também pode comprar transmissores individuais 433 MHz pronto para uso no eBay ou de fornecedores de eletrônicos passatempo. Tudo que você precisa é ligar o VCC a 5 V no Arduino, os GNDS, e um único pino de controle - lembre-se que aquele que você usou. (Esquemático por Willi Thiel)

Arduino-rcswitch

O plug-in funciona através do envio de “códigos tristate”, mas estes variam de acordo com fabricante. Consulte a documentação RCSwitch para encontrar seus códigos exatos. Este guia wiki pode ajudar também.

A comunicação com o Arduino é feito usando uma biblioteca nó chamado duino. Pare o aplicativo Heimcontrol se ele está correndo e instalar a ponte Arduino usando o seguinte comando.

npm instalar duino

O Arduino deve ter este código carregado - Eu sugiro que você copiar e colar para instalar este a partir de um computador diferente. É essencialmente um programa ouvinte que responde a comandos de série do Pi, mas não há nada para impedi-lo estendendo-o com suas próprias características.

rc-configurações

Com o aplicativo web lançado, vá para o Configurações Menu -gt; Arduino.

heimcontrol-menu-configurações

De lá você pode adicionar um novo item, a escolha de método RCSwitch, o pino do seu transmissor, eo código de endereço tristate. Lembre-se de salvar, em seguida, voltar para a tela tela principal para o seu novo botão.

rcswitch-setting

Insetos:

Após muitas horas de depuração do código, achei números de pino único dígito não estavam funcionando - verifique se o transmissor é colocado no pino 10 para ter certeza.

Eu também achei que o plugin Arduino foi codificado com bits finais incorretas para os códigos tristate meus receptores necessários. Uma pequena explicação primeiro: códigos tristate composto de 3 bytes de informação. A primeira determina o número de nós de rede (1-4), e a segunda fornece o endereço de transceptor (novamente, 1-4, produzindo um máximo de 16 bases endereçáveis). O byte final consiste em dois bits de preenchimento, mais 2 bits para ligar / desligar. Infelizmente, o byte final é codificado para o plugin Arduino - e no meu caso, o código on / off estava incorreta.

Eu tive que editar manualmente o plugins / arduino / index.js para usar os códigos corretos. Se você estiver usando as mesmas tomadas de controle remoto como eu sou, linhas de mudança 80 em diante para:

// Enviar código de RCE se (item.value) {Retorna that.pins[item.pin].triState(item.code + "FFFF")-// mudar de FF0F} outro {Retorna that.pins[item.pin].triState(item.code + "FFF0")-// mudar de FF00}

Aqui está um vídeo de demonstração de tudo o trabalho:

Vou deixá-lo aqui neste momento, mas as leituras dos sensores e controles remotos IR também são suportados. Eu provavelmente vou revisitar estes em uma data posterior com mais algumas melhorias. Se isso tudo foi um pouco complexo demais para você, talvez check out my projeto de controle de internet Arduino.Como configurar Arduino Controle da Web sem um escudo EthernetComo configurar Arduino Controle da Web sem um escudo EthernetPara as últimas semanas, eu entregue o controle da iluminação ambiente no meu estúdio para os espectadores durante a transmissão ao vivo do tecnofilia Podcast - você pode ver os resultados do que no ...consulte Mais informação


Artigos relacionados