Sensores de casa inteligente diy com arduino, mysensors e openhab

sensores de casa inteligente custar uma quantidade ridícula de dinheiro. Por US $ 60-US $ 100 apenas para um detector de movimento ou sensor de umidade, fiação uma casa inteira se torna o domínio daqueles com quantidades tolas de rendimento disponível. Vamos construir o nosso próprio.

Felizmente, o trabalho duro já foi feito pelos povos finos atrás MySensors.org. Hoje vou mostrar-lhe como usar o framework MySensors para criar uma matriz barato de sensores de casa inteligente que pode alimentar em um OpenHAB instalação (veja o nosso guia para Introdução ao OpenHAB em Raspberry Pi). Eu estou supondo que você tem um servidor MQTT trabalhar já, e compreender os conceitos básicos do messaging MQTT Format- se não, não deixe de ler o acompanhamento do guia OpenHAB, que inclui instruções para a instalação de um servidor MQTT.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

Embora eu vou ser lidar especificamente com o envio dos dados MySensors de uma rede de Arduinos, usando MQTT, a um OpenHAB instalar, gostaria de salientar que o quadro MySensors pode alimentar em um número de diferentes controladores de automação residencial. Eu apresentei esta aqui como uma solução completa que funciona para mim, mas por favor, confira o site MySensors como você pode encontrá-lo também se adapta ao seu propósito semelhante, mas usando um pouco diferente hardware ou um protocolo de mensagens diferente. É incrivelmente versátil.

mysensors hardware -1

O custo do hardware para a minha configuração é menos do que $ 10 por nó (um pouco mais para o gateway), mas os sensores e actuadores adicionais podem ser adicionados para muito pouco (a humidade e a temperatura do sensor DHT11 por exemplo, é cerca de $ 1 cada- um relê de alta tensão é de cerca de US $ 3).

O que nós estamos fazendo

A idéia básica é que ao invés de adicionar em nossa rede local lotado existente usando escudos Ethernet caros confiável Wi-Fi ou, criamos uma rede de malha com capacidade totalmente separado apenas para o Arduinos- em seguida, preencher essa para a rede local usando um único nó de gateway , que tem tanto uma conexão Ethernet e uma conexão de rádio para os outros Arduinos. Então, nós estamos fazendo um par de nós sensores, que reúnem dados e de um nó de gateway, que retransmite os dados para o servidor OpenHAB.

Novamente, isso é o que funciona para mim, porque a minha recepção Wi-Fi é tão horrível e eu não quero sobrecarregar-lo com dados desnecessários. Se você está feliz com Wi-Fi, olhar usando o baixo custo ESP8266 Arduino compatível Com built-in placas Wi-Fi - MySensors suporta os demais.Conheça o assassino Arduino: ESP8266Conheça o assassino Arduino: ESP8266E se eu lhe disse que um há um conselho dev Arduino compatível com built-in Wi-Fi para menos de US $ 10? Bem, não é.consulte Mais informação

Nota importante para usuários El Capitan e Arduino Clones: A Apple conseguiu quebrar os controladores de série usados ​​para se comunicar com um número de placas clone do Arduino na última versão do El Capitan graças às novas medidas de segurança. Para ver se você é afetado, olhe para sua placa e do chip mais próximo da porta USB. Se ele diz que CH340, você é afetado por isso. Siga as instruções aqui para desativar motorista assinatura kext, instale CH340 motoristas de série novamente.

componentes necessários

Para o gateway, você vai precisar de:

  • Arduino Uno
  • Escudo Ethernet (com base W5100)
  • módulo NRF24L01 - Eu usei o +PA + LNA versões todo, que têm um maior alcance de até 1 km. A fiação é o mesmo que você escolher.

Para cada nó sensor:

  • Arduino Uno
  • módulo NRF24L01
  • Sensores (a começar, eu sugiro um DHT11 temperatura e humidade ou módulo DHT22)

Adicional / Opcional:

  • 10uF capacitores, um para cada módulo de RF que você tem (o link é para um pacote de 50!)
  • Fonte de Alimentação com 5v e 3.3v saída (YwRobot MB102 funciona bem e eles são US $ 1 cada) - necessário se usando um clone Arduino. Você também vai precisar de uma fonte de alimentação 9-12V DC para estes.
  • Prototipagem Shields, ou fios jumper curto macho-fêmea.

Trabalhando com NRF24L01 Modules

Vamos começar com os módulos nRF24L01, como eles são parte mais complexa do projeto. Eu fui para o mais caro versão mais longa, gama de estes: tecnicamente conhecido como NRF24L01 + PA + LNA. Eles vêm com um circuito e uma antena de conexão amplificação de sinal de bordo, embora eu sugiro que você experimente a versão mais barata não-antena dos módulos primeiro se você tem uma casa normal, com paredes regulares, não o sólido tipo de pedra metros de espessura de parede que Eu faço. A gama alegou delas é cerca de um quilômetro, mais do que suficiente para me colocar no jardim.

No entanto, essas coisas são realmente difícil trabalhar com- se você ir em frente e ligar tudo em sem ler essas dicas em primeiro lugar, você vai ficar desapontado.

  • O módulo necessita de alimentação de entrada 3.3V no pino VCC - não 5v. Se você colocar em 5v, você vai fritar.
  • Soldar um capacitor 10uF através dos terminais VCC / GND. A linha cinzenta sólida sobre o condensador indica o lado negativo / GND.
  • Use, cables- salto de alta qualidade curto ou melhor ainda, solda-los diretamente para um escudo de prototipagem para manter o comprimento do cabo a um conexões sólidas e mínimo.
  • Se você estiver usando um clone Arduino, o regulador de tensão não chega a fornecer o suficiente para eles no pino 3.3v - você vai precisar usar uma placa de fonte de alimentação externa (ligada acima), disponível para cerca de US $ 1 cada. Estes fornecem uma 3.3v estável. Se você estiver usando uma original Arduino marca Uno, este não parece ser um problema.

Video: Cheap Bed Occupancy Sensor using Arduino & MySensors

Eu sugiro que você faça alguns testes básicos de primeiros apenas para estabelecer o seu rádio está funcionando. Fio dois rádios para cima como mostrado na página MySensors. Não importa que suas placas diagrama mostra Arduino Micro - os mesmos números de pinos são utilizados. Note-se que o diagrama mostra a NRF24L01 do topo- você vai realmente ser ligar as coisas em a partir do lado de baixo. Mentalmente ajustar em conformidade. Ignorar o pino de IRQ cinza, ele não é usado atualmente. Em suma:

  • VCC vai para 3.3v em sua fonte de alimentação externa
  • GND vai para rail terreno comum
  • CE ao pino 9
  • CSN / CS ao pino 10
  • MOSI ao pino 11
  • MISO ao pino 12
  • SCK para o pino 13

Video: HDL Casas inteligentes con sensores que facilitan la asistencia sociosanitaria a personas mayores

fiação de mysensors página

Você vai precisar de dois nós totalmente com fio para testar com. Baixar a biblioteca RF24 e carregar o mais simples Começando exemplo. Ligue ambos os módulos, mas deixar um ligado através de USB e abrir o console serial. Digite “T” e enviar, para mudar-lo em modo de transmissão, em que ponto você deve obter mensagens de depuração dizendo que está ping com sucesso uma mensagem para o outro nó.

Construindo a MySensors MQTT Client Gateway

Ok, agora que sabemos que as rádios RF24 são ligados e funcionando corretamente, vá em frente e baixar o ramo de desenvolvimento do pacote MySensors Arduino. Este tutorial foi escrito usando a versão 1.5, mas deve ser ok com versões posteriores também. Estamos usando o ramo de desenvolvimento, porque no momento da escrita, o MQTT cliente porta de entrada ainda não é uma parte do pacote principal.

Video: Casa inteligente con arduino

Embora não haja MQTTGateway disponível no branch master, ele age como um servidor também, o que não queremos, porque nós já temos um servidor MQTT estável em execução no Raspberry Pi. Nós apenas queremos encaminhar os dados MySensors sobre isso. Novamente, se isso não é o que você quer - se você preferir não usar MQTT em tudo - então olhar para EthernetGateway ou SerialGateway, ambos os quais também são compatíveis com OpenHAB.

É interessante notar que o pacote de download não inclui apenas arquivos MySensors essenciais, que também inclui bibliotecas compatíveis necessários para todos os sensores possível. Para evitar conflitos, eu sugiro apenas fazer backup de sua pasta bibliotecas atuais inteira e substituí-lo todos com as do pacote de download.

Fiação para a porta de entrada é um pouco diferente- depois de ter seu escudo Ethernet, utilize os seguintes pinos para o módulo de rádio:

  • CE ao pino 5
  • CSN ao pino 6
  • SCK ao pino A0
  • MOSI ao pino A1
  • MISO ao pino A2

Você também precisa ativar o #define SOFTSPI linha na bibliotecas / mySensors / MyConfig.h Arquivo. Para fazer isso, removendo o // para remover o comentário dele, é em torno da linha 309 na minha.

Precisamos fazer isso porque tanto o módulo de rádio e proteger a rede usar SPI, e eles estão incompatible- então apenas mudar o módulo de rádio SPI para alguns outros pinos e realizar a comunicação SPI em software em vez (daí, suave SPI).



Carregar o MySensors / GatewayW5100MQTTClient esboço. Se você não vê isso no menu MySensors, você não tem o ramo de desenvolvimento instalado. Use o link fornecido acima para baixar novamente a biblioteca inteira.

porta de entrada mysensors

Você precisa definir um endereço IP estático para o controlador, o IP do seu roteador de rede e sub-rede e o endereço IP do seu servidor MQTT existente. Sinta-se livre para modificar os prefixos de tópicos também, se quiser. Carregar e ligar aquela coisa na rede. verifique brevemente a consola de série por quaisquer erros gritantes como sendo incapaz de se conectar ao servidor MQTT, caso contrário, colocou de lado (mas deixá-lo ligado).

endereços IP para mudar

Construir nós sensores

Primeiro, comente que #define SOFTSPI linha na MyConfig.h arquivo novamente, colocando o // volta no início. Isso só é necessário para o gateway - estamos usando a fiação NRF24L01 padrão para os nós sensores, que usam hardware SPI. Se você precisa lembrar:

  • VCC vai para 3.3v em sua fonte de alimentação externa (Ou no próprio Arduino se é um original e não um clone)
  • GND vai para rail terreno comum
  • CE ao pino 9
  • CSN / CS ao pino 10
  • MOSI ao pino 11
  • MISO ao pino 12
  • SCK para o pino 13

Em seguida, o fio até a sua escolha de sensor-I usar DHT11 umidade e sensor de temperatura para o teste, mas se você vá até a lista de sensores e atuadores na barra lateral da página MySensors, você vai encontrar uma grande variedade de outras opções: Portas , medidor de chuva, luz, movimento, mesmo RFID - e cargas mais. Você pode ver que eu também acrescentou um relé para o nó na foto abaixo, mas mais sobre isso mais tarde.

mysensors hardware -2

Finalmente, carregar o Sensor de umidade exemplo a partir do menu MySensors e adicione a seguinte linha imediatamente após os comentários.

Video: INVERNADERO o CASA Inteligente con TECHO MÓVIL usando Arduino

#define MY_NODE_ID dois

Desde que nós estamos usando uma versão especial do controlador que apenas encaminha as coisas para o nosso próprio servidor MQTT, ele não tem a função de controlador padrão que atribui automaticamente IDs de nó para cada novo nó. Em vez disso nós apenas estamos indo para defini-lo manualmente de cada vez. Anote este número em algum lugar para seus próprios registros, e alterá-lo para cada nó.

Ativar a saída de depuração também:

MY_DEBUG #define

Finalmente, verifique o pino de dados do seu sensor DHT11 está correto.

#define HUMIDITY_SENSOR_DIGITAL_PIN 7

Em seguida, carregue!

Vale a pena abrir o console serial para dar uma olhada. O bit fundamental olhar é r =, qual é o status da mensagem. st = falhar significa que a mensagem não foi enviada. É possível que você não tenha definido um ID de nó exclusivo, ou se o gateway está offline. Eu fingi essas falhas, basta desconectar o gateway:

r-falhar

Se tudo estiver funcionando, você deve começar a ver alguns dados leituras entram em seu servidor MQTT. Colocando aqueles em OpenHAB está fora do âmbito deste tutorial, mas estava coberto em parte 2 do guia OpenHAB assim você pode referir-se lá atrás.Guia do OpenHAB Beginner Parte 2: ZWave, MQTT, regras e traçarGuia do OpenHAB Beginner Parte 2: ZWave, MQTT, regras e traçarOpenHAB, o software de automação residencial open source, excede em muito as capacidades de outros sistemas de automação residencial no mercado - mas não é fácil de se configurar. Na verdade, ele pode ser francamente frustrante.consulte Mais informação

Combinando Código Sensor

Embora obtendo um único sensor nó em funcionamento é relativamente simples, ele fica um pouco mais complicado quando você deseja adicionar vários sensores para cada nó. Essencialmente, você vai se misturam os trechos de código a partir de dois exemplos diferentes. A maneira mais fácil de mostrar isso é por exemplo, com um vídeo! Aqui eu estou combinando o nosso sensor de umidade básica com um relé.

Você pode encontrar o código completo para o sensor de umidade e relé aqui, que já foi modificado com um loop sem bloqueio como mencionei no vídeo. Para saber mais sobre a estrutura de comando MQTT necessário para ativar o relé, verifique a API Serial -mas basta dizer o seguinte canal controla o primeiro relé no código que eu dei (com um corpo de mensagem de 0 ou 1):

mysensors-in / 9/1/1/0/2

Sua única limitação agora é a quantidade de memória no Arduino, e eu vou dizer isso - os sensores mais confiáveis ​​na minha casa inteligente não são os módulos comerciais Z-Wave que custam US $ 80, mas os MySensors personalizados.

Eu vou acabar com ela lá hoje, mas se você tiver problemas, você pode perguntar longe nos comentários ou os fóruns de usuários muito ativos de MySensors. você estará colocando juntos seus próprios nós sensores baratos? Como é a sua casa inteligente que vem?


Artigos relacionados