РадиоКот >Схемы >Цифровые устройства >Автоматика >

Теги статьи:

Правильный датчик для туалета.

Автор: 3711, denis3711@gmail.com
Опубликовано 09.09.2016
Создано при помощи КотоРед.
Участник Конкурса "Поздравь Кота по-человечески 2016!"

Всем здравствуйте!
Коту валерьянки и долголетия, остальным схемы :)


В интернете имеется достаточно много схем автоматизации включения-выключения света в туалете. Кто-то устанавливает концевики на дверь, кто-то пытается прикошачить датчики движения и объема, встречались даже советы акустические датчики вешать. Все схемы, с которыми я встречался, имеют недостатки различной степени тяжести. Датчик движения требует движения, а иначе выключается, да и после выхода из помещения свет будет работать еще некоторое время. Концевые датчики предполагают неприкрытую дверь, что может быть чревато неприятными запахами. Меня заняться этой темой жизнь заставила. Жили мы в те давние времена в хрущевке , в которой, по странной причуде строителей, выключатель туалета находился не у туалета, а в прихожей, у входной двери. Так как кухня была маленькая, холодильник, естественно, стоял в прихожей. Ну а выключатель, по закону бутерброда, оказался над холодильником. Даже нам - взрослым людям, было неудобно каждый раз до него тянуться, ну а ребенку вообще не светило до него достать. Можно было бы перенести выключатель, но это же неправильный путь, слишком короткий. После достаточно долгих мучений была рождена гениальная схема на микроконтроллере ATTINY15, ИК датчике TSOP и ИК диоде. В прошивке контроллера было реализовано все, что я только смог придумать. Свет включался, выключался плавно, был реализован ночной режим с пониженной яркостью ну и др. ненужные вещи, которые тогда казались очень нужными. Сам датчик присутствия работал идеально, каплей дегтя оказался ночной режим, который нужно было включать - выключать вручную. Через некоторое время включать и выключать его надоело. Периодически ворочались мысли, что надо как-то этот процесс автоматизировать, но дальше размышлений дело не шло. Звоночек прозвенел примерно полгода назад, когда я наткнулся на модуль ESP8266. Вот оно, выход в интернет и синхронизация с NTP сервером для получения времени! Поначалу были сомнения, насколько надежно будет работать это китайское чудо. Могу ответственно заявить - работает как часы :)

Ну а теперь к делу. Датчик построен по принципу углового отражателя для ИК луча. Попытаюсь изобразить в виде комикса.

Сразу видны плюсы схемы: свет включается сразу, как только начинает открываться дверь и выключается, как только человек выйдет и дверь будет закрыта. Впрочем, для тех, кто забывает закрывать двери, предусмотрен таймер выключения света, время принудительного выключения задается в настройках. Включение-выключение света происходит плавно, скорость диммирования задается в настройках. Время включения-выключения и яркость ночного режима так же задается в настройках. По заданному алгоритму устройство синхронизирует внутренние часы через интернет. В настройках можно установить NTP сервер, часовой пояс и логин пароль для подключения к точке доступа. Настройка устройства производятся по Wi-Fi из браузера с компьютера или телефона. Вот так выглядит вэб интерфейс настроек:

Теперь обратимся к принципиальной схеме:
Первая часть схемы это DC-DC понижающий преобразователь на небезызвестной микросхеме mc34063. Собрано всё по схеме из даташита, останавливаться на схемотехнике нет смысла, в интернете всё расписано до мелочей. Готовые наборы деталей удобно выпаивать из старых Ethernet свитчеров и роутеров. Они в большинстве сделаны именно на этих микросхемах.

Так как у меня в туалете уже имеется блок питания на 12V, я остановился именно на таком варианте. Эта часть схемы может быть заменена на любой блок питания или стабилизатор с напряжением 3,3V и выходным током не менее 250-300ma. В обычном режиме модуль потребляет немного 15-20 ma, но в момент соединения с точкой доступа потребеление возрастает примерно до 200ma.
Вторая часть, собстно , сам модуль ESP8266 (в моем случае модель ESP-12E) с необходимой обвязкой и ИК датчиком. Ик датчик куплен в Китае, модель VS1838B. Работает хорошо, чувствительности хватает. Можно применять различные TSOP с любым частотным диапазоном. В конфигурации можно выставить частоту от 30-56кГц. При установке датчиков, отличных от VS1838B, проверяйте распиновку. Еще стоит обратить внимание на напряжение питания датчика. Не все смогут работать от 3,3V. Так же не ленимся устанавливать фильтр по питанию (R11, С4). Датчики очень чувствительны к помехам в линии питания.

К разъему «IK_DIOD» подключается Ик диод :) Абы -какой здесь не подойдет, так как от его параметров зависит чувствительность (а значит и максимальное расстояние от ИК диода до ИК приемника). Нужен диод с длиной волны 940нм, и прямым током не менее 50ма. При указанном на схеме резисторе R9 на диод подается ток 37ма. Угол луча должен быть как можно уже. У меня работает диод «L-34F3C». Так как порт модуля ESP8266 требуемый ток выдать не может, добавляем транзистор Q1. Подойдет любой NPN с током не менее 100ma. Резисторы R10, R12, R13 установлены для защиты портов модуля от замыкания. Остальные резисторы нужны для корректной работы модуля ESP8266, без них модуль не работает. Разъем «Serial» для заливки прошивки и для общения с модулем через терминал. Подключение через USB-TTL преобразователь с поддержкой логических уровней 3,3V!!! Вся процедура очень неплохо описана вот здесь: https://esp8266.ru/esp8266-podkluchenie-obnovlenie-proshivki/
Разъем «OUT» это выход для управления светильником. В настройках предусмотрено два режима. Линейный ШИМ и экспоненциальный (для светодиодных лент). В моем случае работает линейный режим вот с таким диммером: https://radiokot.ru/circuit/power/converter/61/
Для подключения диодной ленты понадоится драйвер. См. схему ниже:

Частота ШИМ в обоих режимах примерно 1кГц.
Теперь немного про программную часть. Прошивка написана в среде Ардуино. У меня установлена актуальная на тот момент версия «1.6.8». Как прикошачить ESP8266 к ардуино описано вот здесь: https://geektimes.ru/post/271754/
Никаких сторонних библиотек в проекте не используется. Открываем в Arduino IDE файл «ik_sensor.ino» и дальше всё в ваших руках. На этапе придумывания программы я набросал для себя блок-схему. Программа получилась сложней и разветвлённей, но общие принципы понятны.

 

Конструкция:
Схема и печатная плата нарисованы в EAGLE версия 7.6.0 (на официальном сайте доступна freeware версия). Скачать схемы и прошивку можно в конце статьи, а сейчас фотографии. Лучше ж один раз увидеть… :)

И еще немного видео:

Сборка и настройка:
Сначала необходимо спаять первую часть схемы с (DC-DC понижающий преобразователь). Если выходное напряжение отличается от 3.3V, подбираем резисторы R4, R5. После этого можно смело припаивать остальные элементы конструкции. Программирование модуля ESP8266 производим на полностью собранном устройстве. Ик диод желательно поместить в непрозрачную трубку. Меньше будет сифонить боковым светом и меньше получится световое пятно. Возможно плату ИК приемника придется дополнительно обложить с боков толстым картоном. Инфракрасный свет очень коварен и просвечивает многие, с виду не прозрачные, пластики. После установки нужно поймать углы ИК диода и приемника так, чтобы отраженный луч попадал точно на приемник при закрытой двери. Возможно потребуется подобрать резистор R9. От него зависит яркость ИК диода и соответственно максимальное расстояние от датчика до двери. При указанном номинале у меня это расстояние составляет 1,4 метра. При меньшем расстоянии номинал резистора необходимо увеличить.
Заливка прошивки производится при установленной перемычке между контактами 2 и 3 на разъеме «Mode». Перемычку нужно устанавливать при отключенном питании. При включении питания стартует bootloader и модуль ждет прошивку. После успешной прошивки питание отключается и перемычка убирается. Для входа в режим настройки необходимо замкнуть перемычкой или кнопкой контакты 1, 2 разъема «Mode». Лучше, если питание модуля в этот момент будет отключено. Можно замкнуть и при включенном модуле, но он не всегда корректно работает и может зависнуть. В случае успешного старта появляется точка доступа с именем «IK_Sensor». Настройку можно производить с любого компьютера или телефона с Wi-Fi на борту. Точка доступа открытая, пароль оставляем пустым. После подключения набираем в браузере адрес: 192.168.10.1/config.htm

Ну, и напоследок, о возможности дальнейшего развития датчика. Первое, что приходит на ум, собирать статистику посещения заведения. Информацию можно отсылать в базу данных, на локальный или интернет-сервер. Можно прикрутить дополнительные датчики (температура, влажность и т.д.) или организовать управление вентилятором. Для счастливых обладателей счетчиков воды с дистанционным считыванием можно организовать подсчет и передачу потребленных литров в базу данных. Еще можно использовать датчик в качестве элемента охранной системы. Если никого дома нет, то и свет включаться не должен. Предупреждающие сообщения можно отсылать на почту или в Telegram. Наверняка многие придумают еще множество необходимых плюшек. Ресурсов у модуля осталось еще много (память занята примерно на 25%). Исходный код программы прилагается. Если имеется опыт программирования микроконтроллеров, освоить ESP8266 будет не тяжело. Для меня это был первый опыт работы с данным модулем и первый вход в Ардуино. Всё получилось, дорогу осилит идущий.


Файлы:
Печатная плата
Прошивка
Принципиальная схема


Все вопросы в Форум.