Оглавление:

Нажатие дверного звонка и датчик температуры: 6 шагов
Нажатие дверного звонка и датчик температуры: 6 шагов

Видео: Нажатие дверного звонка и датчик температуры: 6 шагов

Видео: Нажатие дверного звонка и датчик температуры: 6 шагов
Видео: Вся правда об умном доме Яндекса с Zigbee: Хаб, Колонки, Датчики (2023). Реальный опыт использования 2024, Июнь
Anonim
Дверной звонок и датчик температуры
Дверной звонок и датчик температуры

Это расширяет возможности стандартного дверного звонка с жесткой проводкой с помощью модуля esp-12F (esp8266).

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

  • Обнаружение нажатия дверного звонка
  • Отправляет уведомления на телефон через IFTTT
  • Сохраняет активность дверного звонка на сервере easyIOT (необязательно)
  • Запускать другие действия через URL-адрес при нажатии дверного звонка

    Я делаю снимок на веб-камеру у двери и могу просматривать недавние снимки дверного звонка на своем телефоне

  • Дополнительный встроенный датчик температуры (DS18B20), который является частью системы мониторинга температуры в моем доме

Шаг 1. Оборудование и материалы

Оборудование и материалы
Оборудование и материалы
Оборудование и материалы
Оборудование и материалы

Следующие материалы необходимы

  • ESP-12F (ESP8266) модуль Wi-Fi / процессор
  • Понижающий преобразователь постоянного тока для питания 3,3 В
  • Выпрямительный диод (например, 1N4001)
  • Электролитический конденсатор 220uF 35V
  • Электролитический конденсатор 220uF 16V
  • Стабилитрон 3,3 или 2,6 В
  • Резисторы
  • Кусок стрип-картона
  • Разъемы при необходимости
  • Цифровой датчик температуры DS18B20 при необходимости

На схеме показана используемая схема. Он предполагает низковольтный звонок с питанием от переменного тока, который является наиболее распространенным типом простого звонка с проводным подключением. Блок звонка получает питание от внешнего трансформатора звонка, как правило, около 10 В переменного тока. Это не критично, поскольку единственным ограничением является максимальное напряжение в понижающем преобразователе. Я использую MP2307 с максимальным входным напряжением 23 В постоянного тока (~ 16 В переменного тока).

Обычно имеется 3 активных терминала. С помощью кнопки звонка соедините одну сторону источника переменного тока с соленоидом звонка. Модуль использует две клеммы переменного тока для выработки постоянного тока через простой однополупериодный выпрямитель. Определение нажатия звонка осуществляется путем контроля напряжения на реальном соленоиде. Обычно он будет заземлен, но когда звонок будет активирован, будет полный переменный ток. Резистор / стабилитрон фиксирует это, поэтому импульс 0–3,3 В 50 Гц подается на вывод GPIO. Программное обеспечение обрабатывает это, чтобы обеспечить однократную активацию на каждое нажатие звонка.

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

Схема, как показано, включает датчик температуры DS18B20. Это необязательно. Я использую его как часть сети, контролирующей большинство участков в моем доме. Если датчик входит в комплект, рекомендуется подключить к датчику несколько сантиметров кабеля, чтобы он мог быть изолирован от любых локальных тепловых эффектов.

Шаг 2: Программное обеспечение

В блоке толкания двери используется эскиз Arduino, доступный на github.

Это необходимо отрегулировать в соответствии с местными условиями, а затем скомпилировать в среде esp8266 Arduino. Следующие библиотеки необходимы, они стандартные или могут быть добавлены.

  • ESP8266Wi-Fi
  • WifiClient
  • ESP8266WebServer
  • ESP8266mDNS
  • ESP8266HTTPUpdateServer
  • ArduinoJson
  • WifiClientSecure
  • IFTTTMaker
  • DNSServer
  • WiFiManager (дополнительное использование)
  • OneWire
  • ДалласТемпература

Элементы эскиза, которые необходимо изменить, включают

  • Сведения о локальном доступе к Wi-Fi (ssid, пароль), если не используется WifiManager
  • Код авторизации для веб-доступа AP_AUTHID. Хорошо сделать это приличной длины. Он может содержать буквенно-цифровые символы.
  • прошивка OTA пароль update_password
  • Пароль WifiManager WM_PASSWORD

    Wi-Fi можно настроить вручную, закомментировав WM_NAME

  • Ключ производителя IFTTT (см. Этап уведомления)

Необязательные изменения включают

  • Изменение входного контакта для детектора дверного звонка
  • Замена штифта датчика температуры
  • Изменение порта веб-доступа с 80 по умолчанию

Как только это будет сделано, его сначала нужно скомпилировать и загрузить с помощью обычной последовательной загрузки. Последующее обновление может быть выполнено путем компиляции двоичного файла экспорта в среде Arduino и последующего доступа к интерфейсу OTA по адресу ip / firmware.

Нажатие дверного звонка обнаруживается в программном обеспечении путем прерывания по нарастающему фронту первого импульса от цепи детектора. Все последующие прерывания игнорируются. Тайм-аут используется для повторной активации детектора после BELL_MIN_INTERVAL, который установлен на 10 секунд.

Доступ к другим действиям можно получить на веб-сервере esp8266.

  • ip / Recent показывает недавнюю активность дверного звонка
  • ip / reloadConfig перезагружает espConfig
  • ip / bellPush имитирует толчок звонка

Шаг 3: Конфигурация

После создания программное обеспечение получает конфигурацию с локального веб-сервера. Модуль загружает данные конфигурации на основе своего Mac-адреса. Это делает очень удобным запуск нескольких модулей с использованием одного и того же двоичного файла, а также упрощает обновление конфигурации без перекомпиляции. Можно было бы пропустить это и поместить данные конфигурации прямо в код.

Я храню файл конфигурации на своем сервере EasyIOT, в котором есть папка easyIOT / html, откуда файл конфигурации можно легко получить.

Файл называется espConfig и представляет собой простой текстовый файл, в котором хранится ряд параметров (12) для каждого возможного Mac-адреса. Модуль загружает только параметры, установленные для его Mac-адреса.

Пример из файла

#Зал

# Mac address123456ABCDEF

#module name

esp8266-зал

# маска режима сервера (1 = датчик температуры, 4 = режим котла, 4 = дверной звонок)

9

#EIOT узел температуры

N9S0

#unused

-1

# минимальный температурный интервал в секундах

60

# максимальный температурный интервал в секундах

300

# интервал мощности котла

0

Электроузел котла #EasyIOT

-1

Узел нажатия звонка #EasyIOT

N10S0

# IFTTT значение уведомления

передний

#IFTTT notify eventname

дверной звонок

#action URL

192.168.0.2/snap.php

Любая строка, начинающаяся с #, игнорируется. Все строки должны присутствовать. -1 используется для игнорирования параметров.

Файл конфигурации читается при первом запуске модуля. Его также можно перезагрузить в работающей системе (когда конфигурация была изменена) путем доступа к ip / reloadConfig.

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

Шаг 4: Уведомления

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

Для IFTTT вам потребуется учетная запись и активировать канал Maker WebHoooks. MakerKey из этого канала необходимо скомпилировать в код.

Настройте действие IF с помощью Maker WebHooks и используйте имя события с тем же именем, что и в конфигурации (например, дверной звонок). Действие THEN должно быть уведомлением IFTTT. Вы можете добавить значение1 к уведомлению, которое будет в файле конфигурации. Это может быть полезно, если у вас 2 или более детекторов.

Вам необходимо установить приложение IFTTT на свой телефон, и тогда при срабатывании дверного звонка будут появляться уведомления.

Для PushOver вам понадобится учетная запись PushOver и следуйте инструкциям, чтобы получать уведомления API. Вам необходимо настроить токены NOTIFICATION_APP и NOTIFICATION_USER в программном обеспечении со значениями из вашей учетной записи PushOver.

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

Шаг 5: интеграция EasyIOT

Программное обеспечение может отправлять отчеты о температуре и дверном звонке на сервер EasyIOT. Автоматизация EasyIOT может использоваться для выполнения дополнительных действий на основе этого отчета.

Настройте сервер EasyIOT (например, на Raspberry Pi). Настройте IP-адрес и пароль для имени пользователя в программном обеспечении esp8266 и скомпилируйте.

Теперь добавьте виртуальный драйвер в конфигурацию EASYIOT. Выберите «Аналоговый вход температуры» и обратите внимание на имя узла EasyIOT. Это должно быть помещено в часть имени узла температуры файла espConfig.

Добавьте второй виртуальный драйвер. Выберите Цифровой вход двери, запишите имя узла и поместите его в файл espConfig.

Шаг 6: другие действия по нажатию звонка

В программе есть процедура под названием actionBellOn. Как написано, это может сделать 3 вещи

  • IFTTT уведомить
  • Отчет EasyIOT
  • Выполнить действие URL

URL-адрес может использоваться для запуска других действий с других веб-серверов. Используемый URL-адрес находится в файле espConfig.

Если сервер URL-адреса аутентифицирован, необходимо настроить имя пользователя и пароль и скомпилировать их в код.

Я использую это для доступа к URL-адресу snap.php на камере рядом с дверью. При нажатии на звонок требуется jpg. Последние 4 сохраняются и могут быть просмотрены удаленно на веб-сервере камеры.

Я использую камеры на базе Raspberry Pi, которые очень легко справляются с этой операцией. камера

Рекомендуемые: