Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Дверной звонок Zigbee за 20 долларов

Компоненты и расходные материалы

Arduino Nano R3
× 1
Подключенная светодиодная лампа Cree
Умная светодиодная лампа с регулируемой яркостью Zigbee от Cree
× 1

Приложения и онлайн-сервисы

IDE Arduino

Об этом проекте

Моя настройка

У меня есть довольно обширная ячеистая сеть zigbee / z-wave для моей системы домашней автоматизации, подключенной к Интернету (через SmartThings), которая делает все:от управления моими фарами и мониторинга потребления электроэнергии до оповещения об экстремальных погодных условиях и напоминаний о кормлении собак.

Весь пользовательский интерфейс осуществляется через приложение для смартфона, а оповещения можно отправлять через приложение или отправлять через SMS. Один из вариантов использования, который, как мне кажется, проскользнул сквозь трещины, - это дружелюбный перезвон, предупреждающий жителей об изменениях в доме (открытие дверей / окон / сейфов / ворот, наступление суровой погоды или слишком высокая температура в детской).


Проблема

Уже есть несколько вариантов включения сверхгромкой сирены при срабатывании датчика движения или датчика окна / двери, но я не смог найти никаких простых дверных колокольчиков. Это основная функция практически каждой домашней системы безопасности, поэтому я был очень удивлен, обнаружив, что ее не существует. Я пытался взломать удаленный датчик дверного звонка, но сложнее и дорого было достать его в моей ячеистой сети z-wave / zigbee. SmartThings имеет API для динамиков SONOS [дорого], и я видел, как люди последовательно подключали несколько интеграций от SmartThings к IFTTT, Twitter и arduino, подключенному к Wi-Fi [слишком сложно и медленно].

В целом, любое из этих решений будет стоить более 40 долларов, и я хочу иметь ту же функциональность с более высокой производительностью менее чем за 20 долларов.


Откройте для себя светодиодную лампу Cree Connected

Home Depot продает Cree Connected Bulb за 15 долларов, и это, безусловно, моя любимая умная лампа. Ничто другое стоимостью менее 50 долларов не может сравниться по светоотдаче, цветовой температуре, диапазону регулировки яркости, долговечности или дальности беспроводной связи.

Я уже поменял на них все свои старые умные лампочки, и некоторые из них остались, так что теперь я хочу посмотреть, что еще я могу сделать с этим дешевым и надежным оборудованием. Другие сломали лампочки и обнаружили, что все компоненты zigbee находятся на одной коммутационной плате и используют питание 3,3 В ... мои чувства Arduino покалывают.

Оказывается, на плате zigbee на самом деле есть Atmel SAMR21, который представляет собой 32-битный чип ARM Cortex с 256 КБ флеш-памяти (pdf). Atmel продает плату SAMR21 для разработки за 42 доллара, так что получить ее за 15 долларов - воровство.

Менее 20 долларов на оборудование

Подтверждение концепции с использованием SmartThings

Вот быстрый PoC, который использует монитор изменения состояния на Arduino для запуска тонального сигнала на пьезозуммере. Выходы диммирования и включения / выключения лампы по-прежнему работают, и с помощью движка приложения SmartThings я могу построить любую логику, какую захочу.

Даже без Arduino вы можете подключить цифровой контакт напрямую к реле для включения / выключения чего угодно. Он может управлять светодиодными лентами, открывать / закрывать гаражные ворота, включать двигатели / насосы и т. Д.

Подтверждение концепции с помощью SmartThings

Поскольку один из выводов выводит ШИМ, я могу связать его с одним из выводов аналогового ввода / вывода на Arduino, отображаемом для чтения значений между 1-100%. В SmartThings они разбиты на 10% интервалы, поэтому между этим и включением / выключением у меня есть 11 различных выходов, которые я могу отправить через плату zigbee. Это позволит ему запускать разные предупреждения в зависимости от того, какая дверь / окно открыта.

Это может выходить за рамки простого оповещения или звонка. Еще один проект, над которым я работаю над управляемым Arduino ИК-передатчиком для оконных блоков переменного тока, и теперь, когда я могу напрямую интегрироваться со SmartThings, используя описанный выше метод, он будет осведомлен о моих датчиках присутствия / присутствия и состоянии дома.

Кроме того, поскольку это все 3,3 В, это идеальный вариант использования литий-ионных аккумуляторов ATtiny85 и 3,7 В для сверхкомпактного портативного устройства. Я также сохранил источник питания от лампочки, так как он падает с 120 В переменного тока до 3,3 В постоянного тока и, несомненно, пригодится для будущих проектов.

Я уверен, что это сообщество может придумать другие варианты использования, поэтому, пожалуйста, прокомментируйте, как вы бы это использовали, или даже создайте свою собственную версию и опубликуйте проект!

Код

  • Эскиз DoorChime
  • pitches.h
Эскиз DoorChime C / C ++
Эскиз Arduino для DoorChime
 #include  #include "pitches.h" / * Быстрый эскиз в качестве PoC для жизнеспособности использования платы Zigbee Cree Connected LED для управления другими устройствами (в данном случае динамиком). Бадди Кротти - март 2015 г., версия 0.1.2 Полностью скопировано из примеров набросков Тома Иго:Обнаружение изменения состояния (обнаружение края) toneMelody Этот пример кода находится в общественном достоянии. http://arduino.cc/en/Tutorial/ButtonStateChange http://arduino.cc/en/Tutorial/ToneZigbee Плата от Cree Connected LED контакт 1 заземление контакт 2 3.3Vin контакт 3 PWM Out контакт 4 Цепь цифрового выхода:* 8 -ohm динамик на цифровом контакте 8 * Контакт 2 подключен к контакту 4 платы zigbee * /// эта константа не изменится:const int buttonPin =2; // вывод, к которому прикреплена кнопка const int speakerPin =8; // вывод, к которому динамик прикреплен // переменные изменятся:int buttonPushCounter =0; // счетчик количества нажатий кнопок int buttonState =0; // текущее состояние кнопки int lastButtonState =0; // предыдущее состояние кнопки // ноты в мелодии (7nationArmy):int melody [] ={NOTE_GS2, NOTE_GS2, NOTE_B2, NOTE_GS2, NOTE_FS2, NOTE_E2, NOTE_DS2}; // длительность нот:4 =четверть, 8 =восьмая нота и т. д .:int noteDurations [] ={4, 8, 8, 8, 8, 3.5, 3}; void setup () {// инициализируем контакт кнопки как вход:pinMode (buttonPin, INPUT); // инициализируем светодиод как выход:pinMode (speakerPin, OUTPUT);} void loop () {// считываем входной контакт кнопки:buttonState =digitalRead (buttonPin); // сравниваем buttonState с его предыдущим состоянием if (buttonState! =lastButtonState) {// если состояние изменилось, увеличиваем счетчик if (buttonState ==HIGH) {// если текущее состояние HIGH, то кнопка // wend от выкл до вкл:buttonPushCounter ++; // воспроизведение звука // итерация по нотам мелодии:for (int thisNote =0; thisNote <8; thisNote ++) {// для расчета длительности ноты, разделите одну секунду // на тип ноты. //например. четвертная нота =1000/4, восьмая нота =1000/8 и т. д. int noteDuration =10000 / noteDurations [thisNote]; тон (SpeakerPin, мелодия [thisNote], noteDuration); // чтобы различать ноты, установите минимальное время между ними. // длительность заметки + 30% кажется подходящей:int pauseBetweenNotes =noteDuration * .32; задержка (pauseBetweenNotes); // останавливаем воспроизведение тона:noTone (speakerPin); }} else {// если текущее состояние НИЗКОЕ, то кнопка // перешла с включенного на выключенное:Serial.println ("off"); } // Немного задержимся, чтобы избежать отскока delay (50); } // сохраняем текущее состояние как последнее состояние // для следующего раза в цикле lastButtonState =buttonState; // включает колокольчик каждые два изменения состояния (только когда дверь открывается) // функция по модулю дает вам остаток // от деления двух чисел:if (buttonPushCounter% 2 ==0) {digitalWrite (speakerPin, HIGH ); } else {digitalWrite (динамикPin, LOW); }} 
pitches.h C / C ++
библиотека питчей, поэтому вам не нужно искать ее самостоятельно
 / ********************************* **************** * Публичные константы ******************************* ****************** / # определить NOTE_B0 31 # определить NOTE_C1 33 # определить NOTE_CS1 35 # определить NOTE_D1 37 # определить NOTE_DS1 39 # определить NOTE_E1 41 # определить NOTE_F1 44 # определить 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 #defin NOTE_AS2 117 #defin NOTE_B2 123 #defin NOTE_C3 131 #defin NOTE_CS3 139 #defin NOTE_D3 147 # define NOTE_DS3 156 # define NOTE_E3 165 # define NOTE_F3 175 # define NOTE_FS3 #defin NOTE_G3 196 # define NOTE_GS3 208 #define NOTE_A3 220 # define NOTE_AS3 233 #define NOTE_B3 247 #defin NOTE_C4 262 #defin NOTE_CS4 277 # define NOTE_D4 294 # define NOTE_DS4 311 #defin 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 #defin NOTE_DS5 622 # define NOTE_E5 659 # define NOTE_F5 695 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 #defin NOTE_CS6 1109 # define NOTE_D6 1175 #define NOTE_DS6 1245 # define NOTE_E6 1319 #define NOTE_F6 1397 1480 # define NOTE_F6 1397 # define NOTE_ define NOTE_G6 1568 # define NOTE_GS6 1661 #define NOTE_A6 1760 #defin NOTE_AS6 1865 #define NOTE_B6 1976 # define NOTE_C7 2093 #defin NOTE_CS7 2217 #defin NOTE_D7 2349 #define NOTE_DS7 2489 # define NOTE_E7 2637 #defin NOTE_F7 2794 # define NOTE_FS7 2960 3136 #define NOTE_GS7 3322 #define NOTE_A7 3520 # define NOTE_AS7 3729 #define NOTE_B7 3951 # define NOTE_C8 4186 #defin NOTE_CS8 4435 #defin NOTE_D8 4699 #defin NOTE_DS8 4978 

Схема

Фритзинговая принципиальная схема DoorChime с кодом эскиза DoorChime.fzz

Производственный процесс

  1. Банковское хранилище
  2. Вращающаяся дверь
  3. Перезвон ветра
  4. Лампочка
  5. Интерактивный лазерный проектор с использованием датчиков Zigbee
  6. Windows IoT:дверь распознавания лиц
  7. Подключение
  8. Что такое защелка?
  9. Что такое переключатель Jamb?
  10. Как починить дверную ручку автомобиля