[Пример] Датчик Окна/Двери (батарейка)

Ответить
Ivan
Сообщения: 1473
Зарегистрирован: Сб окт 12, 2013 11:03 pm
Благодарил (а): 49 раз
Поблагодарили: 324 раза

[Пример] Датчик Окна/Двери (батарейка)

Сообщение Ivan » Ср мар 23, 2016 9:27 am

Датчик Окна/Двери (батарейка)
Может применяться для контроля открытия двери и датчика вибрации. Также можно контролировать 2 датчика открытия. Контролировать 2 кнопки

Сделан на основании примера http://www.mysensors.org/build/binary

2 датчика
Подключать можно только к ножкам с обработкой прерывания во сне.
Для MSMD, Arduino Pro mini, Arduino Nano - это 2, 3 ножка

Считывание напряжение батареи и температуры
Считывание напряжение батареи (через внутренний осциллятор)
Считывание температуры (Температура процессора)
Чтобы измерения были точнее, нужно произвести калибровку, переменных tGain - множитель, tOffset - Смещение
Если хотите чтобы напряжение передавалось в % и через системное сообщение sendBatteryLevel, нужно раскомментировать #define SYSBAT и поправить MIN_V, MAX_V уровень напряжения батареи. (Не рекомендую использовать этот метод, по причине не информативности и проблемы подстройки)

Сброс настроек
Если при включении, на пин A0 подать напряжение VCC, произойдёт сброс адреса устройства, после чего оно запросит у гейта новый адрес

Данные которые передаются на гейт
  • [3] V_TRIPPED - Датчик открытия 1
  • [4] V_TRIPPED - Датчик открытия 2 (Либо датчик вибрации)
  • [254] V_TEMP - Температура устройства
  • [254] V_VOLTAGE - Напряжение источника питания
Алгоритм работы
  • Отключение ненужных систем процессора, для экономии батареи. ADC, analog comparator
  • Проверка сброса
  • Проверка и запуск NRF24
  • Презентация ноды и датчиков
  • Настройка прерываний
  • СОН
  • При срабатывании прерывания передача данных гейту
  • Если данные не переданны, передавать в следующий раз при просыпании (Уменьшать время сна)
  • СОН
Схемы подключения датчиков
Подключается на пин считывания, и на землю

Магнитный датчик http://ru.aliexpress.com/af/Wired-Door- ... tic+Switch
Датчик вибрации http://ru.aliexpress.com/af/Tilt-Vibrat ... ion+Sensor

Данный датчик можно приобрести. Смотрите раздел http://majordomo.smartliving.ru/forum/v ... =15&t=2219

Примеры
СпойлерПоказать
3ab25Ps.jpg
3ab25Ps.jpg (1.32 МБ) 4509 просмотров
Вложения
WindowSensor.zip
(2.54 КБ) 267 скачиваний
За это сообщение автора Ivan поблагодарили (всего 2):
mirsum (Чт мар 31, 2016 11:03 pm) • Руслан (Сб янв 21, 2017 9:51 pm)
Рейтинг: 2.35%
Linux, Raspberry PI, MySensors
Connect: http://connect.smartliving.ru/profile/53
Мои проекты: http://smartliving.ru/profile/4
Аватара пользователя
lanket
Сообщения: 1161
Зарегистрирован: Вт окт 14, 2014 11:27 pm
Откуда: Санкт-Петербург
Благодарил (а): 256 раз
Поблагодарили: 163 раза

Re: [Пример] Датчик Окна/Двери (батарейка)

Сообщение lanket » Чт апр 21, 2016 3:30 pm

Красивый код. Сразу видно мастер.
Подчеркнул для себя много полезных идей по правильному подходу к программированию. Вроде как простая задачка на первый взгляд 2 кнопки обработать.
Спасибо.

Вопрос: для "кнопок" есть же библиотека Bounce2.h для исключения эффекта дребезга контактов.

Не боитесь этого эффекта?

Отправлено с моего HM NOTE 1LTEW через Tapatalk
Разработка голосового асистента для Мажордомо по любому ключевому слову.
:arrow: Обсужение
:arrow: gitHub 2й версии терминала
:arrow: GitHub модуля для МД
gitHub сырого модуля 2й версии
:arrow: Connect
Rasberry Pi 2, MDM, MySensors. И говорящий апельсин.
Ivan
Сообщения: 1473
Зарегистрирован: Сб окт 12, 2013 11:03 pm
Благодарил (а): 49 раз
Поблагодарили: 324 раза

Re: [Пример] Датчик Окна/Двери (батарейка)

Сообщение Ivan » Чт апр 21, 2016 3:40 pm

В прерывании совтовый debounce не будет работать.

Там стоит задержка 10мс перед обработкой. Если не хватает, то рекомендую кондёр с резистором
con5.GIF
con5.GIF (2.79 КБ) 4160 просмотров
Схема для ресета. Но она же идёт для любой кнопки
За это сообщение автора Ivan поблагодарил:
lanket (Чт апр 21, 2016 5:39 pm)
Рейтинг: 1.18%
Linux, Raspberry PI, MySensors
Connect: http://connect.smartliving.ru/profile/53
Мои проекты: http://smartliving.ru/profile/4
Ответить