Wifi сенсор своими руками

WiFi датчик открытия двери своими руками

Добрый день,
Интересует история и опыт создания WiFi датчика открытия двери или наступления иного события, которое нужно зарегистрировать?
Вам под кат! Будет интересно!

Мотивация

Изначально мне хотелось с минимальными затратами времени и денег сделать датчик открытия входной двери в квартиру. Мне было интересно знать, ходит ли владелец в жильё, которое мы снимали.

Структура статьи

В этой статье я опишу несколько версий датчика и примененных схемотехнически-программных методов с целью сделать устройство лучше. Статья будет полезна для тех, кто хочет реализовать свою идею при батарейном питании ESP8266, но опасается, что двух АА батареек не хватит для работы ESP в режиме сна с периодическим пробуждением.
Я отдаю себе отчет, что на данный момент лучшим вариантом был бы BLE/ZigBee, но они на тот момент требовали создания дополнительной инфраструктуры, чего я хотел избежать дома и что бывает невозможно в условиях офиса.

Первая версия датчика

Идея и реализация были подсмотрены на Pinterest.
В ESP я прошил интерпретатор Бейсика. ESP при сбросе подключается к WiFi и посещает прописанный URL и засыпает.
URL это WebHook сервиса ifttt.com. При каждом посещении заданного URL ifttt.com посылает e-mail с заданной темой и датой/временем наступления события. Ввиду того, что имейлы можно получать и на компьютере и на мобильном устройстве, а также сортировать в папки фильтрами — система доставки событий уже готова 🙂

Система с WebHook-ами будет использована во всех версиях датчиков.

Аппаратно это была крайне энергонеэффективная связка платы NodeMcu и роутера HAME MPR-A2 в режиме повербанка:

Одного заряда встроенной в роутер 18650 хватало на неделю работы устройства, впрочем этого времени хватало для «охраны» квартиры во время командировок.
К земле и линии Reset был припаян нормальноразомкнутый геркон, который выводил из сна плату при открытии двери. Такое решение требовало расположить магнит так, чтобы при закрытой двери геркон был разомкнут, и лишь при открытии двери он должен был ненадолго замкнуться, чтобы сбросить плату и инициировать работу программы.

Плюсы:
+Собрано за 30 минут на коленке из имеющихся деталей.

Минусы:
-Малое время работы из-за двойного преобразования напряжения.
-Бейсик отрабатывал программу 10+секунд.

Вторая версия датчика

Решено избавиться от Бейсика в пользу Ардуино, а также от двойного преобразования питания и сделать какой-то анализ бюджета питания вообще.
По питанию был выбор: литий+LDO или литий+импульсный преобразователь или просто 2хАА.
Выбрал просто 2хАА и мысленно готовился менять батарейки каждый месяц 🙂
Использовал вот такие щелочные батарейки:

 #include #include #include #include ESP8266WiFiMulti WiFiMulti; void setup() < WiFiMulti.addAP("myssid", "mypassword"); >void loop() < // wait for WiFi connection if((WiFiMulti.run() == WL_CONNECTED)) < HTTPClient http; http.begin("http://maker.ifttt.com/trigger/entrancedoor/with/key/censored"); //HTTP int httpCode = http.GET(); http.end(); ESP.deepSleep(999999999*999999999U, WAKE_NO_RFCAL); >> 

Достал из запасов пластиковую коробочку 60*36*25mm и оформил в неё датчик:

Читайте также:  Wi fi mesh система keenetic giga kn 1011

Внутри треш и угар, геркон всё так же на reset+gnd, снял светодиод с ESP, блокировочный конденсатор отвалился и всё на проводах.
Не забываем, это глубокая beta-версия, которая в таком как она есть виде всё-же смогла меня удивить:

Герконовый датчик прикручен, в косяк двери вставлен маленький магнит, коробочка приклеена липучей велкро S-12730 к стене.
Когда дверь открывается, то магнит кратковременно пролетает над герконом и сбрасывает ESP:

Анализ потребления питания

Так как в моей схеме питания нет никаких преобразований совсем, то всё что потребит во время работы и сна датчик — то я и потеряю, и мне захотелось оценить эти потери.
В активном режиме датчик работает 5 секунд и получается вот такая кривая потребления:

Я даже делал отдельный топик с самодельным приспособлением для замеров.
Всё остальное время датчик спит, и потребление во сне у разных версий модулей очень отличается.
Разброс от 16мкА до 250мкА во сне и всё из-за неотмытых плат, левых чипов флеш-памяти и дешевых модулей:

Попытка использовать ESP8285 дала 250мкА ток сна(WTF. ):

Модуль по ссылке из заглавия имел ток сна 16мкА:

А теперь самое интересное, цифры:
На одной паре батареек АА датчик работал с 18го июня 2018г 06:51AM до 4 октября 2019г 09:41PM что составило 473 дня!
За эти 473 дня датчик сработал 8912 раз(. ).
Так что мой пессимизм по поводу смены батарей каждый месяц был глубоко не оправдан.
Когда утром 5го октября 2019го я не получил от датчика e-mail, я вскрыл коробочку и нашел батареи в таком состоянии(пара новых с черной изолентой для сравнения):

Эта окисленная пара, которая вчера смогла в последний раз, имела напряжение 2,46В и внутреннее сопротивление по YR1030 0,49 Ом 🙂

Немного арифметики, которая показывает на что можно рассчитывать строящему устройство на ESP+2xAA:
1. 8912*5/60/60=12,36 часов в активном режиме работы.
2. 473*24-12,36=11339,64 часов во сне.
3. 11339,64*0,016=181мА*ч было потрачено во сне, и я это исправлю в следующей версии датчика.

Построил еще один датчик второй версии, установил на работе, и отловил редиску, которая лазила по моим шухлядкам 🙂

Плюсы:
+Существенно большее время автономной работы по сравнению с первой версией.
+Проще конструкция.

Минусы:
-Замкнутый надолго геркон не даст возможность коду сработать, как и в первой версии.
-Механический геркон, может стоит рассмотреть датчик Холла?
-Есть ненулевой (16мкА) ток сна, который можно и нужно оптимизировать.

Третья итерация

Не стал называть версией, так как третья итерация дала мне три разных датчика.
Купил пять разных датчиков Холла и проверил их потребление:

 1. DRV5032FBDBZR - 0,74мкА 2. RR121-1B13-311- 0,19мкА 3. DRV5032FADBZR - 1,64мкА 4. CT832BV-HS3 - 1,05мкА 5. Si7201-B-00-FV- 0,35мкА 

Решил продолжать с номером пять, как с самым стабильно работающим.

По наводке от uncle_sem купил герконищи:

Я нашел таймер TPL5110, который позволит не работать с линией reset и сократить потребление датчика во сне.
По даташиту таймер потребляет 35нА, а в реальности 10нА. Таймер позволяет либо периодически включать устройство с помощью внешнего мосфета, что было бы полезно для датчика температуры, либо работать в одиночном режиме по команде.
Я выбрал одиночный режим. К таймеру был куплен P-CH мосфет SSM3J338R,LF, вот они на макетницах:

Читайте также:  Чипсет mt7601 usb wi fi адаптер драйвер

Вот пример использования таймера из даташита:

Я поставил задающий резистор на 12кОм для получения 11-и секундной задержки во включенном состоянии. Кроме того у таймера есть возможность досрочного отключения ESP если получит высокий уровень на входе «Done» я подключил его к GPIO 4 так как на нем нет никакой активности при старте ESP.

 #include #include #include #include int cntr=0; ESP8266WiFiMulti WiFiMulti; void setup() < digitalWrite(4,LOW); pinMode(4,OUTPUT); WiFiMulti.addAP("myssid", "mypassword"); >void loop() < // wait for WiFi connection if((WiFiMulti.run() == WL_CONNECTED)) < HTTPClient http; http.begin("http://maker.ifttt.com/trigger/entrancedoor/with/key/censored"); //HTTP int httpCode = http.GET(); http.end(); digitalWrite(4,HIGH); delay(10); ESP.deepSleep(0); >delay(200);cntr++; if (cntr==150) < digitalWrite(4,HIGH); delay(10); ESP.deepSleep(0); >> 

Первая тестовая плата с неотмытым флюсом, но всё-же заработала:

Оказалось, между DRV TPL5110 и затвором мосфета нужно было поставить 5кОм резистор, чтобы всё работало как надо.

Я испытал на этой тестовой плате и геркон и датчик Холла и даже оптопару и создал 4 платы:
1. Нано плата только с таймером, размером 16х16мм, как раз помещается сзади ESP:

2. Плата для таймера с герконом для корпуса 60*36*25mm
3. Плата для таймера с оптопарой — датчик дверного звонка.
4. Плата для таймера с датчиком Холла на торце.

Вот они в фотовиде:

Вот они смонтированы:

Плюсы:
+10нА ток сна датчика с герконом или оптопарой.
+360нА ток сна у версии с датчиком Холла.
+Замкнутый надолго геркон/Холл/оптопара больше не будут препятствовать выполнению программы.
+Нано-версию можно встроить даже в шкатулку, настолько она маленькая.

Минусы:
-Нет возможности различать факт открытия или закрытия двери. На оба события будет сработка, если между ними более 5 секунд.
-Энергопотребление в активном режиме выше, чем у современных не-WiFi альтернатив.

Выводы

Источник

Вай фай анализатор сетей своими руками или как поместить сканер wifi каналов в коробку из-под Тик Така

Сканер WiFi каналов очень полезен в некоторых ситуациях:

  1. Сети WiFi сейчас повсеместны и частота 2.4GHz — наиболее совместимая. В моём доме и офисе наблюдается до 20 разных сетей, но 2.4GHz имеет всего 11 каналов. Это значит, что сигналы перекрывают друг друга, а интерференция уменьшает продуктивность сети. Таким образом, выбор правильного канала становится очень важным пунктом в настройке вашей точки доступа. Например, в приложенном фото каналы 8 и 9 значительно лучше других.
  2. Если вам нужно использовать бесплатный WiFi на улице, вы можете выбрать тот, у которого сигнал будет самым сильным, но это не всегда означает самую быструю сеть. Тем не менее, если вы найдёте сигнал с наименьшим перекрытием, ваша работа в сети будет наиболее комфортной. Например, в приложенном фото, каналы 4 и 6 значительно лучше канала 11.
  3. Переносное устройство передаёт файлы по сети, создавай временную точку доступа на любом из каналов. Иногда оно может попасть в очень загруженный канал, и передача будет проходить очень медленно. Анализатор wi fi сетей поможет вам определиться в ситуации и перезапустить режим раздачи вай фай на девайсе, переключив его на другой канал.

Шаг 2: Подготовка

Прозрачный корпус

Упаковка от Тик Така хорошо подойдёт для наших нужд. Но помните, что она может быть разных размеров, особенно если вы покупаете её в разное время и в разных странах. Какие-то подойдут для экранов 2.2 дюйма, а некоторые могут вместить экраны на 2.4 дюйма.

Читайте также:  Wifi needs to be powered on before activating wifi direct mode please

Экран LCD

Любой ili9341 LCD, который влезет в коробку Тик Така, должен работать без проблем, в этом проекте я использую TM022HDH26

Батарейка

Любая LiPo батарейка, размером меньше экрана должна подойти. По моим измерениям, схема иногда потребляет более 200mA. Для того, чтобы схема не потребляла ток более 1C, я рекомендую использовать батарею объемом более 200mAh.

Плата зарядки

Подойдёт любая зарядная плата, совместимая с вашей батарейкой.

Плата ESP

Любая плата ESP8266 с пином SPI должна хорошо подойти. В этом проекте используется ESP-12.

Регулятор 3V3

Я использую HT7333-A. (AMS1117 не рекомендуется, так как потребляет слишком много тока).

Транзистор PNP

Любой стандартный транзистор PNP, например SS8550.

Разная мелочь

3 резистора на 10K, конденсатор на 470uf и на 100nf, кнопка для перезарузки платы ESP, немного проводов для соединения модулей и колечко для того, чтобы сделать из прибора белок.

Шаг 3: Программируем плату ESP8266

Рекомендую программировать плату ESP8266 до того, как припаяете её к другим компонентам. Код можно скачать здесь: ссылка

Скомпилируйте и прошейте ESP2866 при помощи софта Ардуино.

Шаг 4: Доработка футляра

Доработайте футляр так, чтобы дисплей поместился в него.

Просверлите пару отверстий для кольца брелока.

Шаг 5: Забота о батарейке

ESP-12 и HT7333-A могут быть собраны в хорошую энергосберегающую схему. После нажатия кнопки включения, анализатор сканирует пространство 5 раз, а затем переходит в режим глубокой спячки. Просто нажмите ресет и он включится заново. Предположим, что однократное сканирование потребляет 1,1 mAh, ежедневное пятикратное сканирование и режим глубокого сна в течение часа потребляет 0,31 мАч, тогда батарейки на 400 mAh хватит на месяц:
400 mAh / (5 x 1.1 mAh + 24 x 0.31 mAh) ~= 31 день

Шаг 6: Спаиваем компоненты

Дважды проверьте ваш LCD на соответствие пинов. Вот сводка по соединению:

зарядная плата B+ -> LiPo +ve зарядная плата B- -> LiPo -ve зарядная плата out+ -> вход питания регулятора 3V3 зарядная плата out- -> GND, ESP GND, LCD GND, конденсатор на регуляторе 3V3 выход питания регулятора 3V3 -> ESP Vcc, PNP танзистор Emitter, конденсаторы PNP транзистор Base -> 10 k резистор -> ESP GPIO 4 PNP транзистор Collector -> LCD Vcc, LCD LED LCD SCK -> ESP GPIO 14 LCD MISO -> ESP GPIO 12 LCD MOSI -> ESP GPIO 13 LCD D/C -> ESP GPIO 5 LCD CS -> ESP GPIO 15 ESP EN -> 10 k резистор -> ESP Vcc ESP GPIO 15 -> 10 k резистор -> ESP GND ESP RST -> кнопка ресет -> ESP GND

Шаг 7: Поместите всё в корпус

Шаг 8: Прикрепите кольцо брелока

Шаг 9: Сканируйте!

Пришло время показать вашу работу друзьям!

Шаг 10: Тестирование

После нескольких недель использования я могу подытожить:

  1. Батарейка на 500mAh может работать больше 3 недель
  2. Корпуса от Тик Така достаточно, чтобы защитить девайс от тряски, падения с высоты 70 см и нагрузки примерно в 10 кг.
  3. Также корпус может защитить электронику от небольшого количества влаги.

Рассказываю как сделать какую-либо вещь с пошаговыми фото и видео инструкциями.

Источник

Оцените статью
Adblock
detector