Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

$ 20 Zigbee Door Chime

Componentes e suprimentos

Arduino Nano R3
× 1
Lâmpada LED Cree conectada
Lâmpada inteligente regulável por LED Zigbee da Cree
× 1

Aplicativos e serviços online

Arduino IDE

Sobre este projeto

Minha configuração


Tenho uma rede de malha zigbee / z-wave bastante extensa para meu sistema de automação residencial conectado à Internet (por meio do SmartThings) que faz de tudo, desde controlar minhas luzes e monitorar o uso de eletricidade até alertar para condições climáticas extremas e me lembrar de alimentar os cães.

Toda a interface do usuário é feita por meio de um aplicativo de smartphone e os alertas podem ser enviados por push por meio do aplicativo ou via SMS. Um caso de uso que eu sinto que escapou das rachaduras é um carrilhão amigável para alertar os ocupantes sobre mudanças dentro da casa (portas / janelas / cofres / portões abrindo, intempéries severas ou temperatura no berçário muito alta).



O problema


Já existem algumas opções para disparar uma sirene muito alta quando um sensor de movimento ou sensor de janela / porta é acionado, mas não consegui encontrar nenhum sino de porta simples. Esse é um recurso básico de quase todos os sistemas de segurança residencial que existem, então fiquei realmente surpreso ao descobrir que ele não existia. Eu investiguei como hackear um sensor de campainha remoto, mas a parte difícil / cara era colocá-lo em minha rede mesh z-wave / zigbee. SmartThings tem uma API para alto-falantes SONOS [caro], e eu vi pessoas encadear múltiplas integrações de SmartThings para IFTTT para Twitter para um arduino conectado wi-fi [excessivamente complicado e lento].

Em suma, qualquer uma dessas soluções custaria muito mais de US $ 40 e quero ter a mesma funcionalidade com melhor desempenho por menos de US $ 20.



Insira a lâmpada LED Cree conectada


A Home Depot vende a lâmpada Cree Connected por US $ 15 e elas são, de longe, minhas lâmpadas inteligentes favoritas. Nada mais abaixo de US $ 50 chega perto em saída de luz, temperatura de cor, alcance regulável, longevidade ou alcance sem fio.

Já troquei todas as minhas lâmpadas inteligentes antigas por estas e sobraram algumas, então agora quero ver o que mais posso fazer com este hardware barato e confiável. Outros derrubaram as lâmpadas e descobriram que todos os componentes do zigbee estão em uma única placa de breakout e estão usando energia de 3,3 V ... meus sentidos de arduino estão formigando.

Acontece que a placa zigbee na verdade tem um Atmel SAMR21 que é um chip ARM Cortex de 32 bits com 256 KB de memória flash (pdf). A Atmel vende uma placa dev SAMR21 por $ 42, portanto, comprá-la por $ 15 é um roubo.
Menos de $ 20 de hardware

Prova de conceito usando SmartThings


Aqui está um PoC rápido que usa um monitor de mudança de estado em um arduino para acionar um "carrilhão" de tom em uma campainha piezoelétrica. O escurecimento da lâmpada e os pinos de saída liga / desliga ainda funcionam e, usando o mecanismo de aplicativo SmartThings, posso construir qualquer lógica que quiser.

Mesmo sem um arduino, você pode ter o pino digital conectado diretamente a um relé para ligar / desligar praticamente qualquer coisa. Isso pode acionar fitas de LED, abrir / fechar portas de garagem, ligar motores / bombas, etc.

Prova de conceito usando SmartThings
Como um dos pinos gera PWM, posso amarrá-lo em um dos pinos de E / S analógica em um Arduino mapeado para ler valores entre 1-100%. No SmartThings, eles são divididos em intervalos de 10%, portanto, entre isso e ligar / desligar eu tenho 11 saídas distintas que posso enviar através do zigbee board. Isso permitiria acionar diferentes alertas com base na porta / janela aberta.

Isso pode se expandir além de apenas um alerta ou sinal sonoro. Outro projeto que estou trabalhando em um blaster infravermelho controlado por Arduino para minhas unidades AC de janela, e agora que posso integrar diretamente com SmartThings usando o método acima, ele estará ciente dos meus sensores de presença / ocupação e estado da casa.

Além disso, como tudo isso é 3,3 V, é um caso de uso perfeito para um ATtiny85 e baterias de íon de lítio 3,7 V para um pacote super pequeno e portátil. Eu também mantive a fonte de alimentação da lâmpada, pois ela cai de 120v AC para 3,3V DC e sem dúvida será útil para projetos futuros.


Tenho certeza que esta comunidade pode sugerir outros usos, então por favor, comente como você usaria isso ou até mesmo construir sua própria rendição e postar o projeto!

Código

  • Sketch DoorChime
  • pitches.h
DoorChime Sketch C / C ++
Arduino Sketch para DoorChime
 #include  #include "pitches.h" / * Esboço rápido como PoC para viabilidade de usar a placa zigbee Cree Connected LED para conduzir outros dispositivos (um alto-falante neste caso). Modificado por Buddy Crotty - março de 2015 versão 0.1.2 Copiado completamente dos esboços de exemplo de Tom Igoe:Detecção de mudança de estado (detecção de borda) toneMelodyEste código de exemplo é de domínio público. http://arduino.cc/en/Tutorial/ButtonStateChange http://arduino.cc/en/Tutorial/ToneZigbee placa de Cree Connected LED pino 1 pino terra 2 3,3Vin pino 3 PWM Out pino 4 Digital Out circuito:* 8 -ohm alto-falante no pino digital 8 * Pino 2 conectado ao pino 4 da placa zigbee * /// esta constante não muda:const int buttonPin =2; // o pino que o botão está conectado toconst int speakerPin =8; // o pino ao qual o alto-falante está conectado // As variáveis ​​serão alteradas:int buttonPushCounter =0; // contador para o número de botões pressesint buttonState =0; // estado atual do buttonint lastButtonState =0; // estado anterior do botão // notas na melodia (7nationArmy):int melody [] ={NOTE_GS2, NOTE_GS2, NOTE_B2, NOTE_GS2, NOTE_FS2, NOTE_E2, NOTE_DS2}; // durações das notas:4 =semínima, 8 =colcheia, etc.:int noteDurations [] ={4, 8, 8, 8, 8, 3.5, 3}; void setup () {// inicializa o pino do botão como uma entrada:pinMode (buttonPin, INPUT); // inicializa o LED como uma saída:pinMode (speakerPin, OUTPUT);} void loop () {// lê o pino de entrada do botão:buttonState =digitalRead (buttonPin); // compare o buttonState com seu estado anterior if (buttonState! =lastButtonState) {// se o estado mudou, incremente o contador if (buttonState ==HIGH) {// se o estado atual for HIGH então o botão // wend de desligado para ligado:buttonPushCounter ++; // toque o tom // itere sobre as notas da melodia:for (int thisNote =0; thisNote <8; thisNote ++) {// para calcular a duração da nota, leve um segundo // dividido pelo tipo de nota. //por exemplo. semínima =1000/4, colcheia =1000/8, etc. int noteDuration =10000 / noteDurations [thisNote]; tom (speakerPin, melody [thisNote], noteDuration); // para distinguir as notas, defina um tempo mínimo entre elas. // a duração da nota + 30% parece funcionar bem:int pauseBetweenNotes =noteDuration * .32; atraso (pauseBetweenNotes); // interrompe a reprodução do tom:noTone (speakerPin); }} else {// se o estado atual for BAIXO, o botão // passou de ativado para desativado:Serial.println ("off"); } // Atrase um pouco para evitar o atraso de salto (50); } // salve o estado atual como o último estado, // para a próxima vez por meio do loop lastButtonState =buttonState; // liga o sinal sonoro a cada duas mudanças de estado (somente quando a porta se abre) // a função de módulo fornece o restante // da divisão de dois números:if (buttonPushCounter% 2 ==0) {digitalWrite (speakerPin, HIGH ); } else {digitalWrite (speakerPin, LOW); }} 
pitches.h C / C ++
biblioteca de sugestões para que você não precise pesquisá-la sozinho
 / ******************************** ***************** * Constantes públicas ****************************** ******************* / # define NOTE_B0 31 # define NOTE_C1 33 # define NOTE_CS1 35 # define NOTE_D1 37 # define NOTE_DS1 39 # define NOTE_E1 41 # define NOTE_F1 44 # define NOTE_FS1 46 # define NOTE_G1 49 # define NOTE_GS1 52 # define NOTE_A1 55 # define NOTE_AS1 58 # define NOTE_B1 62 # define NOTE_C2 65 # define NOTE_CS2 69 # define NOTE_D2 73 # define NOTE_DS2 78 # define NOTE_E2 82 # define NOTE_F2 87 # define NOTE_FS2 93 # define NOTE_G2 98 # define NOTE_GS2 104 # define NOTE_A2 110 # define NOTE_AS2 117 # define NOTE_B2 123 # define NOTE_C3 131 # define NOTE_CS3 139 # define NOTE_D3 147 # define NOTE_DS3 156 # define NOTE_E3 165 # define NOTE_F3 175 # define NOTE_FS3 185 # define NOTE_G3 196 # define NOTE_GS3 208 # define NOTE_A3 220 # define NOTE_AS3 233 # define NOTE_B3 247 # define NOTE_C4 262 # define NOTE_CS4 277 # define NOTE_D4 294 # define NOTE_DS4 311 # define NOTE_E4 330 # define NOTE_F4 349 # de fine NOTE_FS4 370 # define NOTE_G4 392 # define NOTE_GS4 415 # define NOTE_A4 440 # define NOTE_AS4 466 # define NOTE_B4 494 # define NOTE_C5 523 # define NOTE_CS5 554 # define NOTE_D5 587 # define NOTE_DS5 622 # define NOTE_E5 659 # define NOTE_F5 698 # defineFS5 740 # define NOTE_G5 784 # define NOTE_GS5 831 # define NOTE_A5 880 # define NOTE_AS5 932 # define NOTE_B5 988 # define NOTE_C6 1047 # define NOTE_CS6 1109 # define NOTE_D6 1175 # define NOTE_DS6 1245 # define NOTE_E6 1319 # define NOTE_F6 1397 # define NOTE_C6 1109 # define NOTE_D6 1175 # define NOTE_DS6 1245 # define NOTE_E6 1319 # define NOTE_F6 1397 # define define NOTE_G6 1568 # define NOTE_GS6 1661 # define NOTE_A6 1760 # define NOTE_AS6 1865 # define NOTE_B6 1976 # define NOTE_C7 2093 # define NOTE_CS7 2217 # define NOTE_D7 2349 # define NOTE_DS7 2489 # define NOTE_E7 2637 # define NOTE_F7 2794 # define NOTE_FS7 2960 # define 3136 # define NOTE_GS7 3322 # define NOTE_A7 3520 # define NOTE_AS7 3729 # define NOTE_B7 3951 # define NOTE_C8 4186 # define NOTE_CS8 4435 # define NOTE_D8 4699 # define NOTE_DS8 4978 

Esquemas

Diagrama de Circuito Fritzing de DoorChime com código de esboço DoorChime.fzz

Processo de manufatura

  1. Bank Vault
  2. Porta giratória
  3. Carrilhão de Vento
  4. Lâmpada
  5. Projetor laser interativo usando sensores Zigbee
  6. Windows IoT:Porta de reconhecimento facial
  7. Conectando-se
  8. O que é um trinco?
  9. O que é um interruptor de batente?
  10. Como consertar a maçaneta da porta do seu carro