Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Carillon de porte Zigbee à 20 $

Composants et fournitures

Arduino Nano R3
× 1
Ampoule LED connectée Cree
Ampoule intelligente LED Zigbee Dimmable de Cree
× 1

Applications et services en ligne

Arduino IDE

À propos de ce projet

Ma configuration

J'ai un réseau maillé zigbee/z-wave assez étendu pour mon système domotique connecté à Internet (via SmartThings) qui fait tout, du contrôle de mes lumières et de la surveillance de la consommation d'électricité à l'alerte en cas de conditions météorologiques extrêmes et me rappelant de nourrir les chiens.

L'ensemble de l'interface utilisateur se fait via une application pour smartphone, et les alertes peuvent être transmises via l'application ou envoyées par SMS. Un cas d'utilisation qui, selon moi, a glissé à travers les mailles du filet est un carillon amical pour alerter les occupants des changements d'état dans la maison (ouverture des portes/fenêtres/coffres-forts/portails, intempéries ou température trop élevée dans la pépinière).


Le problème

Il existe déjà quelques options pour déclencher une sirène très forte lorsqu'un capteur de mouvement ou un capteur de fenêtre/porte se déclenche, mais je n'ai pas pu trouver de simple carillon de porte. Il s'agit d'une caractéristique de base d'à peu près tous les systèmes de sécurité domestique, j'ai donc été vraiment surpris de constater qu'il n'existait pas. J'ai cherché à pirater un capteur de sonnette à distance, mais la partie difficile/coûteuse était de l'obtenir sur mon réseau maillé z-wave/zigbee. SmartThings a une API pour les haut-parleurs SONOS [cher], et j'ai vu des gens enchaîner plusieurs intégrations de SmartThings à IFTTT à Twitter à un arduino connecté au wifi [trop compliqué et lent].

Dans l'ensemble, l'une de ces solutions coûterait bien plus de 40 $ et je veux avoir la même fonctionnalité avec de meilleures performances pour moins de 20 $.


Entrez dans l'ampoule LED connectée Cree

Home Depot vend l'ampoule connectée Cree pour 15 $ et c'est de loin mon ampoule intelligente préférée. Rien d'autre à moins de 50 $ ne se rapproche en termes de rendement lumineux, de température de couleur, de plage de gradation, de longévité ou de portée sans fil.

J'ai déjà échangé toutes mes anciennes ampoules intelligentes contre celles-ci et il m'en restait quelques-unes, alors maintenant je veux voir ce que je peux faire d'autre avec ce matériel bon marché et fiable. D'autres ont démonté les ampoules et ont découvert que tous les composants zigbee se trouvent sur une seule carte de dérivation et utilisent une alimentation de 3,3 v... mes sens arduino picotent.

Il s'avère que la carte zigbee a en fait un Atmel SAMR21 qui est une puce ARM Cortex 32 bits avec 256 Ko de mémoire flash (pdf). Atmel vend une carte dev SAMR21 pour 42 $, donc l'obtenir pour 15 $ est une bonne affaire.

Moins de 20 $ de matériel

Preuve de concept à l'aide de SmartThings  

Voici un PoC rapide qui utilise un moniteur de changement d'état sur un arduino pour déclencher un "carillon" de tonalité sur un buzzer piézo. Les broches de gradation de l'ampoule et de sortie marche/arrêt fonctionnent toujours, et en utilisant le moteur de l'application SmartThings, je peux créer la logique que je veux.

Même sans arduino, vous pouvez avoir la broche numérique connectée directement à un relais pour allumer/éteindre à peu près n'importe quoi. Cela peut entraîner des bandes lumineuses à LED, ouvrir/fermer des portes de garage, allumer des moteurs/pompes, etc.

Preuve de concept à l'aide de SmartThings

Étant donné que l'une des broches sort PWM, je peux la lier à l'une des broches d'E/S analogiques sur un arduino mappé pour lire des valeurs comprises entre 1 et 100 %. Dans SmartThings, ceux-ci sont divisés en intervalles de 10%, donc entre cela et marche/arrêt, j'ai 11 sorties distinctes que je peux envoyer via la carte zigbee. Cela lui permettrait de déclencher différentes alertes en fonction de la porte/fenêtre ouverte.

Cela peut aller au-delà d'une simple alerte ou d'un carillon. Un autre projet sur lequel je travaille sur un blaster IR contrôlé par arduino pour mes unités AC de fenêtre, et maintenant que je peux intégrer directement avec SmartThings en utilisant la méthode ci-dessus, il sera conscient de mes capteurs de présence/occupation et de l'état de la maison.

De plus, comme tout cela est de 3,3 V, c'est un cas d'utilisation parfait pour un ATtiny85 et des batteries Li-Ion de 3,7 V pour un boîtier super petit et portable. J'ai également gardé l'alimentation de l'ampoule car elle passe de 120v AC à 3.3v DC et sera sans aucun doute utile pour de futurs projets.

Je suis sûr que cette communauté peut proposer d'autres utilisations, alors veuillez commenter la façon dont vous l'utiliseriez ou même créer votre propre interprétation et publier le projet !

Code

  • Esquisse du carillon de porte
  • emplacements.h
Esquisse du carillon de porteC/C++
Arduino Sketch for DoorChime
#include #include "pitches.h"/* Sketch rapide en tant que PoC pour la viabilité de l'utilisation de la carte zigbee de Cree Connected LED pour piloter d'autres appareils (un haut-parleur dans ce cas).Modifié par Buddy Crotty - Mars 2015version 0.1.2 Complètement copié à partir des exemples de croquis de Tom Igoe :Détection de changement d'état (détection de contour) toneMelodyCet exemple de code est dans le domaine public. http://arduino.cc/en/Tutorial/ButtonStateChange http://arduino.cc/en/Tutorial/ToneZigbee board de Cree Connected LED broche 1 masse broche 2 3.3Vin broche 3 PWM Out broche 4 Circuit de sortie numérique:* 8 -haut-parleur ohm sur la broche numérique 8 * Broche 2 connectée à la broche 4 de la carte zigbee */// cette constante ne changera pas :const int buttonPin =2 ; // la broche à laquelle le bouton-poussoir est attachéconst int speakerPin =8; // la broche à laquelle le haut-parleur est attaché // Les variables changeront :int buttonPushCounter =0; // compteur du nombre de pressions sur le boutonint buttonState =0; // état actuel du buttonint lastButtonState =0; // état précédent du bouton// notes dans la mélodie (7nationArmy):int melody[] ={ NOTE_GS2, NOTE_GS2, NOTE_B2, NOTE_GS2, NOTE_FS2, NOTE_E2, NOTE_DS2} ;// durées des notes :4 =noire, 8 =croche, etc.:int noteDurations[] ={ 4, 8, 8, 8, 8, 3.5, 3};void setup() { // initialise la broche du bouton comme entrée:pinMode(buttonPin, INPUT); // initialise la LED en tant que sortie :pinMode(speakerPin, OUTPUT);}void loop() { // lit la broche d'entrée du bouton-poussoir :buttonState =digitalRead(buttonPin); // compare le buttonState à son état précédent if (buttonState !=lastButtonState) { // si l'état a changé, incrémente le compteur if (buttonState ==HIGH) { // si l'état actuel est HIGH alors le bouton // va de off à on :buttonPushCounter++; //jouer le ton // itérer sur les notes de la mélodie :for (int thisNote =0; thisNote <8; thisNote++) { // pour calculer la durée de la note, prenez une seconde // divisée par le type de note. //par exemple. noire =1000 / 4, croche =1000/8, etc. int noteDuration =10000 / noteDurations[thisNote] ; tone(speakerPin, melody[thisNote], noteDuration); // pour distinguer les notes, définissez un temps minimum entre elles. // la durée de la note + 30% semble bien fonctionner :int pauseBetweenNotes =noteDuration * .32; delay(pauseBetweenNotes); // arrête la lecture de la tonalité :noTone(speakerPin); } } else { // si l'état actuel est BAS, le bouton // est passé de activé à désactivé :Serial.println("off"); } // Retarder un peu pour éviter de rebondir delay(50); } // enregistre l'état actuel comme dernier état, // pour la prochaine fois dans la boucle lastButtonState =buttonState; // active le carillon tous les deux changements d'état (uniquement lorsque la porte s'ouvre) // la fonction modulo vous donne le reste de // la division de deux nombres :if (buttonPushCounter % 2 ==0) { digitalWrite(speakerPin, HIGH ); } else { digitalWrite(speakerPin, LOW); }}
emplacements.hC/C++
bibliothèque de pitchs pour que vous n'ayez pas à la rechercher vous-même
/************************************ ******************* * Constantes publiques ******************************* ******************/#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 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 FS3#define#defineG 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_Edefine_Edef 659 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 138019#FS#define 1 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#define#define#297G NOTE_define 2794#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

Schémas

Schéma du circuit Fritzing de DoorChime avec code de croquis DoorChime.fzz

Processus de fabrication

  1. Coffre bancaire
  2. Porte tournante
  3. Ampoule
  4. Projecteur laser interactif utilisant des capteurs Zigbee
  5. Windows IoT :porte de reconnaissance faciale
  6. Se connecter
  7. Qu'est-ce qu'un pêne demi-tour ?
  8. Qu'est-ce qu'un commutateur Jamb ?
  9. Comment réparer votre poignée de porte de voiture