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

  • Цена: $1.2USD за ESP8266

Добрый день,
Интересует история и опыт создания 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 <Arduino.h>
#include <ESP8266WiFi.h>
#include <ESP8266WiFiMulti.h>
#include <ESP8266HTTPClient.h>
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 и оформил в неё датчик:


Внутри треш и угар, геркон всё так же на 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, вот они на макетницах:


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


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

Доработанный код с учетом таймера

#include <Arduino.h>
#include <ESP8266WiFi.h>
#include <ESP8266WiFiMulti.h>
#include <ESP8266HTTPClient.h>

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 альтернатив.

Выводы

Всё получилось как задумано, результат радует глаз.
Всем добра!
Планирую купить +50 Добавить в избранное +166 +231
+
avatar
+1
круто. однозначно плюс.
+
avatar
0
Del.
Сорямба за дубляж))
+
avatar
+3
Да, легко. В моем ящике есть дверца для почтальона и для юзера. Поставил нормально замкнутый геркон на дверцу почтальона. Посмотрите WebHook-и ifttt.com, думаю найдется нужный вариант и без SMTP.
Тогда ESP-01D просто не было, сейчас альтернатив больше. Последние платы третьей версии датированы доковидной эрой :)
+
avatar
  • DDimann
  • 22 апреля 2022, 09:06
+1
А дверца почтальона случайно не одна на группу ящиков?
И нет ли возможности что то мелкое положить в ящик, не открывая дверцу почтальона?
+
avatar
0
Одна на группу, но я каждый рабочий день получаю бумажные письма, потому мне важно было зафиксировать факт его прихода, а не факт вкладывания в мой индивидуальный ящик. Просто чтобы не ходить лишний раз вниз и не сверлить ящик глазами.
Визитку сложенную вдвое можно втиснуть в ящик не открывая его, не более.
+
avatar
+5
Как раз хочу что-то подобное сделать.
А именно датчик на почтовый ящик.
Т.к. периодической корреспонденцией не интересуюсь, то и ящик проверяю спорадически.
А хотелось бы это делать «по событию».
И отправлять инфу на телефон.
Полагаю, что это реально, если wifi имеет выход в инет и ума хватит на smtp)))

Возник вопрос:

А почему не задействовать самую мелкую(по моим данным) из ESP'шек?
ESP8285 ESP-01D
+
avatar
  • ubs
  • 22 апреля 2022, 07:30
+2
8285
//напряжение питания
ADC_MODE(ADC_VCC);

voltaje = ESP.getVcc();
//можно контролировать питание

//и почту можно
+
avatar
0
Контроль питания само собой.
Можно было бы ds18b20 eще приляпать.
Что бы более информативные пакеты слать.
Да и прогнозировать разряд АКБ с поправкой на температуру.
+
avatar
0
Не, лазерный однозначно не вариант.
ТС в плане энергопотребления рассудил верно.
Геркон или Холла на худой конец.
+
avatar
+1
Что то сложно, я взял такой беспроводной датчик открытия за 360р
К есп приемник копеечный, т.к. датчик беспроводной питание от розетки, уведомления в телегу, примеров валом. Проблему постановки на охрану хотел решить постоянным мониторингом наличия телефонного блютуз в доступе но забил, пусть лишний раз срабатывает при выходе для проверки что все работает
+
avatar
0
1. Наоборот, проще. Основным требованием было отсутствие дополнительной инфраструктуры. Только готовое WiFi покрытие и датчик.
2. ISM-диапазон в месте моего жительства чрезвычайно загружен, и такой датчик пропускает сработки, а значит не подходит.
3. Постановку и снятие на охрану можно сделать классическим способом: ридеры на вход и выход, магнитную защелку на дверь. Когда все вышли — сработка датчика открытия двери без чтения ридеров(ломают дверь) или по датчику движения(влезли в окно) подымают сирену и оповещение. Требует дисциплины, но тренируется за 1-2 месяца и работает безотказно.
+
avatar
  • arryall
  • 25 апреля 2022, 14:53
0
Как называется модуль на ESP для приема радио сигнала от подобного передатчика?
+
avatar
+1
дешевый mx-rm-5v, но дальность так себе, хотя для квартиры достаточно, получше стабилизированный SRX882S или rxb6
+
avatar
  • arryall
  • 26 апреля 2022, 10:36
0
Спасибо. А как можно научить ESP принимать и декодировать сигнал от передатчика, который на фото? Я предполагал, что это все делается с помощью какого нибудь крутого приемника, осциллографа и прочего))
+
avatar
0
что ардуино что есп одинаково, ну вот например robotclass.ru/tutorials/arduino-radio-433mhz/
единственно при указании пина на котором приемник под есп нужно так rfReceiver.enableReceive(digitalPinToInterrupt(GPIO_NUM_32));
для пина 32 например
+
avatar
  • arryall
  • 26 апреля 2022, 10:52
0
Пример ясен, отправляем сообщение с одного, принимаем на другом, заранее зная какое содержимое должно быть у сообщения. Как можно узнать, какое содержимое сообщения отправляет передатчик? Передатчик заводской. Даташит есть на него, где это описано?

Редакт
Дочитал статью до конца, есть пример монитора эфира, буду пробовать. спасибо
+
avatar
+1
в библиотеке rcswitch есть пример который показывает все принятое, запускаешь, делаешь чтоб сработал датчик, смотришь что вывелось
+
avatar
  • arryall
  • 26 апреля 2022, 11:18
0
Благодарю!
+
avatar
  • Naevus
  • 22 апреля 2022, 05:37
+6
1. У есп есть АЦП — логично было бы вместе с посылкой передавать напряжение батареи. и/или время до замены.
2. Зачем таймер? Тем более что вы управляете таймером от есп — так управляйте мосфетом напрямую! Правда это только с п.3.
3. Зря вы считаете геркон менее надежным чем ДХ. Я бы оставил геркон параллельно мосфету и, далее см п.2.
4. Если уж развивать дальше — у вас есть один недостаток — требуется два устройства — сам датчик и магнит — крепить к двум разным поверхностям (стена и дверь). Я бы сделал выступающий из коробочки нажимной микрик — тогда просто лепим коробочку на что то типа комадоровских липучек на косяк так чтобы дверь нажимала толкатель… Для съемных и прочих временных помещений — идеально: монтируется мгновенно, демонтируется еще быстрее, не оставляет следов…
5. Минус — требует настройки до установки. Я бы сделал режим safemode где бы есп поднимала точку доступа со страницей настроек.

А так — все круто! Первые два замечания пришли в голову сразу как начал читать (собственно я их реализацию и искал далее в тексте :) ). Остальные — по мере написания этого камента… Не примите за критику, но лишь в развитие проекта для.
+
avatar
  • Naevus
  • 22 апреля 2022, 05:40
+4
А, еще — вариант с толкателем позволит реализовать режим «дверь открыта или зарыта» — просто пока микрик включен — считаем дверь открытой (ну или кто то спер датчик) — работаем в глубоком сне с периодическим просыпанием. А как разомкнулось — отключаемся, дверь закрыта…
+
avatar
+3
Да, открытие или закрытие по факту эксплуатации распознавать не было смысла, потому внес в список минусов, но без планов это исправить.
Сам факт открытия уже здорово помогал понимать происходящее. Например вернулся ли ребенок со школы, который не слышал звонок мобилки :)
Помню даже один раз e-mail с датчика помог в суде отбить штраф за парковку, просто доказав момент моего прихода домой (эвакуировали машину в связи с уборкой снега).
+
avatar
+7
Спасибо, всё толково и по-делу!
1. Я думал сделать замер напряжения батареи, но не успел, так как датчик стал для меня не актуальным. Любой кому это будет интересно — может это сделать. Кроме того я рассматривал аппаратный супервайзор питания как вариант.
2. В текущей связке таймер ведущий а ESP — ведомый девайс. Хотя ESP и говорит ведущему, что дела сделаны досрочно.
3. Это плохая идея коммутировать 150мА@3В в пике герконом, ему быстро придет конец. Я потому и искал таймер, чтобы через контакты геркона не гнать силу, которая будет приваривать контакты при каждом включении и заряде блокировочных емкостей.
Это уже потом, после успеха с герконом и таймером я к таймеру добавил вариант с оптопарой/Холлом, последний имеет намного сильную чувствительность к магниту, чем любой геркон.
4.Для этого я сделал нано-версию, к ней идеально на проводах подключить любой внешний выключатель.
5.Да, делалось для себя, самый минимум — только хардкор и с вот такой вундерваффе для перешивки :)
+
avatar
  • Nikkor
  • 22 апреля 2022, 06:39
+2
Для распознавания открытия или закрытия двери можно поставить второй геркон рядом и считывать последовательность замыкания или размыкания герконов. По этому событию и отправлять сообщение на почту.
+
avatar
+1
3. Ток через геркон можно снизить, если геркон будет управлять мосфетом.
+
avatar
+3
Это да, так справедливо. Но Naevus говорил о герконе в параллель мосфету.
Я таймер ставил чисто из-за интереса, таймер позволяет сделать датчик температуры с минимальной сменой кода. Другое дело, что руки не дошли до этого, но кому-то эта идея может пригодится.
+
avatar
  • Naevus
  • 22 апреля 2022, 18:53
+1
3. Герконы — они ведь разные бывают. Гугление по запросу «Какой ток выдержит геркон» даже меня удивило…
5. Офигеть :)

Понятно что для себяи длярешения конкретной задачи. Именно поэтому — СПАСИБО что выложили наработки. Действительно интересный вариант использования.
+
avatar
0
Да, приходилось держать в руках герконы длиннее коробочки датчика, там бы было точно всё в порядке :)
+
avatar
  • iamjdoe
  • 22 апреля 2022, 08:20
+2
Заголовок:
WiFi датчик открытия двери своими руками.

Минусы:
— Нет возможности различать факт открытия или закрытия двери.

Смешно :))
+
avatar
0
Да, пришлет и на открытие и если закрыть позже чем через 5 секунд, то и на закрытие. Все время закрытые двери не будут генерировать ничего. Так что с логикой все в порядке…
+
avatar
  • bullet
  • 22 апреля 2022, 08:32
+3
Так и где ответ на вопрос — ходил ли владелец в жилье или нет?
Имхо, первое, что нужно делать в съемной квартире — менять личинку замка.
+
avatar
+3
Канада, имеет право, но предупреждая.
Не ходил без предупреждения.
Ходил предупреждая ежегодно с проверкой пожарных датчиков.
Менять личинку нет смысла, так как ключ от новой нужно предоставить владельцу.
+
avatar
+1
Смысл есть как защита от предыдущих постояльцев
+
avatar
0
Они наши лучшие друзья
+
avatar
  • wasla
  • 22 апреля 2022, 08:46
+2
Когда мне понадобилось знать входит ли кто-то в моё отсутствие в дверь я спрятал андроид-телефон с софтом который активировал запись в камере по движению и отправлял куда нужно.
+
avatar
  • SEM
  • 22 апреля 2022, 08:47
0
Сложновато.
Если надо только зафиксировать факты срабатывания датчика — ардуина, модуль точных часов, модуль поддержки microSD карт. Писать на карту дату-время срабатывания датчика. Приехал из командировки — вынул карточку, просмотрел лог. Вообще ничего не нужно, кроме питания.
Если надо мгновенное оповещение — ардуина, GSM модуль, SIM-карта. Пусть звонит на зашитый в прошивке (или записанный в первую ячейку памяти SIM-карты) номер (список номеров). Трубку не снимать — будет бесплатно. Не нужен WiFi и внешние сервисы, достаточно покрытия GSM сети.
Вместо геркона — можно микроволновый датчик, тогда ничего не надо сверлить и приклеивать (на съёмной квартире это может быть не разрешено), работать может скрытно, из-за радиопрозрачного препятствия (из шкафа, из кармана куртки на вешалке и т.п.)
Экономия питания и работа от батареек полтора года — очень хорошо, но в квартире смысл этого — только отсутствие проводов. Так то этого питания в квартире «просто завались». Не будет света — не будет и WiFi.
И ещё, по питанию — можно сделать питание от литиевого аккумулятора, девайс периодически (раз в 3-6-12-24 часа) смотрит напряжение на нём, если меньше порога (например 3 вольта) — включает (например омроновским оптосемистором 202-м) розетку с воткнутым в неё зарядником. Т.е. зарядник не включен постоянно, а включается только подзарядить акк. Т.к. «ходят слухи» что такой режим продлит срок службы аккумулятора. Получится и питание от сети, и резервирование на случай отключения.
+
avatar
+3
Сложновато.
Если надо только зафиксировать факты срабатывания датчика — ардуина, модуль точных часов, модуль поддержки microSD карт. Писать на карту дату-время срабатывания датчика. Приехал из командировки — вынул карточку, просмотрел лог. Вообще ничего не нужно, кроме питания.
Вот смотрите, версия два это только ESP+батарейки+геркон, и вы говорите что это сложно? А вот набор ардуино, RTС, SD-card и ещё установка времени в RTC, а ещё — потеря интерактивности, и необходимость дёргать карточку и вручную анализировать, разве это не сложно?
А датчик на дверной звонок я делал с целью выяснить, приходил ли почтовый курьер, пока я на работе? Легче же узнать через e-mail прямо на работе, чем придя домой и дёрнув SD-карту вечером?

Если надо мгновенное оповещение — ардуина, GSM модуль, SIM-карта. Пусть звонит на зашитый в прошивке (или записанный в первую ячейку памяти SIM-карты) номер (список номеров).
GSM покрытия уже тогда не было, только 3G/LTE, так что нужен был бы модуль 3G/LTE с североамериканскими частотами, который если и существует, то совсем за другие деньги. А двух батареек на год хватит питать ардуину и 8 тыс смс? А поместится вместе с питанием в 60*36*25mm?
Самая дешевая сим-карта тогда стоила $25+14.9% налогов в месяц, получится золотое мгновенное оповещение. Да и как быть, когда улетел в другую страну? Например на Кубе и роуминга не было, а имейлы через местный вайфай ходили…

Трубку не снимать — будет бесплатно.
Все тарифы в Канаде, как правило, безлимитны, но месячную негуманную абонплату — будь добр отстегнуть.

Не нужен WiFi и внешние сервисы, достаточно покрытия GSM сети.
WiFi это моя зона ответственности, он дома нужен и идет в этой задаче как «дано».
Заменой URL в коде на локальный IP датчик быстро начинает работать с внутренним сервисом, тогда ему даже интернет не нужен. Только WiFi и сервис на самом роутере локально. Просто это выходит за рамки статьи, но очень даже возможно.

сверлить и приклеивать
Можно и сверлить и клеить.

Экономия питания и работа от батареек полтора года — очень хорошо, но в квартире смысл этого — только отсутствие проводов
В своей я бы сделал проводной датчик, протянув провода. В съемной — нет и в этом есть смысл.

Не будет света — не будет и WiFi
За последние 8 лет я был свидетелем отключений света 4 раза(из них три — плановых) в общей сложности на часов 5.
Да и после постройки вот этого инжектора мой WiFi, роутер и кабельный модем запитаны от резервного батарейного источника питания, потому при выключении был и будет WiFi c Интернетом.

розетку с воткнутым в неё зарядником
Если была бы розетка рядом, то это был бы проводной датчик. А я описал беспроводной, который можно в подъезде в почтовый ящик поставить, где нет розетки, но лишь бы добивал WiFi…
+
avatar
  • SEM
  • 22 апреля 2022, 15:58
0
GSM покрытия уже тогда не было, только 3G/LTE, так что нужен был бы модуль 3G/LTE с североамериканскими частотами, который если и существует, то совсем за другие деньги.
Самая дешевая сим-карта тогда стоила $25+14.9% налогов в месяц,
Понятно, местная специфика.
Кстати, остались ли в РФ тарифы без абон.платы — ещё надо посмотреть. У меня все номера на таких, но новых на эти тарифы не подключают.
+
avatar
0
Точно остались, и ещё тарифы для умных устройств.
+
avatar
0
Сложновато.
Если надо только зафиксировать факты срабатывания датчика — ардуина, модуль точных часов, модуль поддержки microSD карт
Сложновато. Если надо зафиксировать факт прихода хозяина — полоска малярного скотча или монетка
+
avatar
  • SEM
  • 23 апреля 2022, 16:03
0
полоска малярного скотча или монетка
Нитка, спичка и т.п. — не позволят зафиксировать количество приходов и дату-время. Вдруг это надо.
+
avatar
  • Uri62
  • 22 апреля 2022, 08:52
0
"… встроенной в роутер 18650..." — не понял. Как это? Там же 112560, а не 18650.
+
avatar
0
Да, моя ошибка, там был внешне похожий на A1 но HAME MPR-A2
+
avatar
  • r0c
  • 22 апреля 2022, 09:30
0
ifttt.com 24\7 online?
+
avatar
0
За тестовый период было пару раза down на пару часов.
Можно поставить локальный URL и не завязываться на ifttt.com
+
avatar
  • r0c
  • 22 апреля 2022, 10:01
0
а как это настроить?
+
avatar
0
Поднять локально веб сервер и анализировать его логи. Это если использовать мой код.
+
avatar
  • r0c
  • 22 апреля 2022, 10:29
0
локальный на второй esp8266?
+
avatar
0
Можно на чем угодно, даже на esp или распберри или даже на самом интернет-роутере, либо на коробке любой с openwrt.
+
avatar
  • qms111
  • 22 апреля 2022, 09:35
0
Я офигиваю, мощный 32 битный процессор и столько гемороя что бы реализовать простейшую задачу… с таким подходом человечество скоро вернётся в каменный век.
+
avatar
+4
Это ещё не предел…
Кто-то решил считать целочисленную арифметику на центральном процессоре компьютера, и сказал другим — присоединяйтесь.
Потом другой сказал — а давайте мы будем её быстрее считать на ядрах ATI (теперь AMD)?
Появился третий и сказал, зачем вы считаете целочисленную арифметику на ядрах ATI? Да так что эти ядра в куче с простаивающей быстрой памятью жрут под 300Ватт энергии?
Давайте мы скинемся и зафотошопим литографию, и сделаем много ядер и мало памяти в кастомном ASIC-е, чтобы эта целочисленная математика вертелась так же быстро как и на ядрах ATI, но при этом жрала 4 Ватта, но впендюрим на плату много таких ASIC-ов? Сказано — сделано. И да настанет дефицит электроэнергии :)
Четвертый почесал репу и сказал — а я вам сделаю так, чтобы вы обязательно считали так всё сложно, чтобы никаких ASIC-ов не прокатило и нужно было только на ядрах AMD/NVidia c памятью побольше, чем у третьего. И да настанет дефицит игровых видеокарт!
Пятый подошел и сказал, а давайте вам не хватит ни асиков без памяти ни самых крутых AMD/NVidia с кучей памяти, давайте строить плоты на жестких дисках, и взмахнув рукой — я создаю, присоединяйтесь…
Шестой подумал, почесал репу, вдохнул гелия и сказал — да будет лес антенн в LORA-стандарте и да настанет дефицит Raspberry Pi…

Я согласен:
с таким подходом человечество скоро вернётся в каменный век.
+
avatar
  • qms111
  • 22 апреля 2022, 10:07
-1
Вполне закономерный результат когда решают програмеры, блогеры, журналисты, артисты и т.д. а у специалистов только волосы дыбом стоят. Но самое неприятно что всё заточено что бы убить любой обмен знаниями и заставить каждого мастырить свой лисапед…
+
avatar
+3
Все не так уж и плохо, я прекрасно представлчю сколько технологий задействовано в каждых 5 секундах работы этого датчика. Удивляет то, что это дело стабильно работает и работает от двух батареек. Мое студенчество с asm для pic негодует, но и в то же время снимает шляпу. Реализовать все задействованное в этих 5 секундах на asm-е не хватило бы всей моей жизни. А повторяющему по моей статье — хватит и 15 минут
+
avatar
0
Про шестого не понял)
+
avatar
0
Helium miners
+
avatar
0
Никогда не слышал
+
avatar
+1
Они пару лет как развернулись, да и специфичная очень вещь с кучей телодвижений, поэтому не очень популярная. Но, как ни странно, одна из более осмысленных криптовалют — их «майнинг» не просто бесконечное дрочение циферок по алгоритмам, но обеспечивает конкретный вполне реальный товар: поддержку беспроводной меш-сети для всяких IoT устройств.
+
avatar
  • r0c
  • 22 апреля 2022, 14:23
+1
ой, да ладно. Вы еще на дискректных элементах соберите радиопередатчик и азбукой Морзе передайте. Кто виноват, что двухядерный 32 битный радиомодуль стоит копейки и микропотребление энергии? Туда ему и дорога, в дверные оповещатели… Никто не делает серьезные проекты на этом 8266, потому что он глючный и нестабильный… Минимум GPIO, кому эта игрушка нужна, кроме рукодельников Blink?
+
avatar
  • Vadim2S
  • 22 апреля 2022, 10:05
+2
Датчик открытия двери чужими руками :-)
+
avatar
+1
Что за редиска то был?)
+
avatar
0
Охранник из компании G4S. Это было когда я работал в АWS
+
avatar
+1
Прикольно)

Вопрос ещё — если датчик холла — то он формирует импульс в отличае от геркона, если импульса хватит чтобы зарядить кондер через мосфет и запустить еспшку, то используя один из ее контактов и подав на него 1 на этот же мосфет, питание будет и дальше, потом все выполнить, и подать 0, как только кондер разрядился, еспшка обесточится — можно таймер выкинуть.
+
avatar
0
Да, этот холл при сработке дает высокое логическое и при ожидании — низкое логическое. Пришлось изолировать низкое логическое диодом, чтобы холл не шунтировал Rext, который опрашивается единожды при подаче питания на таймер. Да, можно было выкрутиться и без таймера в случае с холлом, но я ради унификации все сделал с таймером. На фоне затрат на платы и другие вещи еще один корпус стоимостью менее доллара не имел решающего значения. Увы мне так и не удалось собрать статистику по третьей версии, переехали и лежит уже год как на полочке во все еще рабочем состоянии. Наноамперы, фули :)
+
avatar
+1
Добавьте статический IP адрес. Будет 2 секунды в активном режиме.
+
avatar
0
Используемая ардуиновская библиотека не давала возможности прописать статику в коде.
Снифал трафик, микротик менее 10мс тратит на offer.
+
avatar
+2
А почему не использовать готовое?
€ 6,86 https://aliexpress.com/item/item/1005002931519854.html
есть tamper alarm,open/close,low voltage notify
ну и e-mail в качестве уведомления- не очень надежно и удобно. Пуши на телефон в телеграме или push приложениях- гораздо лучше. в некоторых можно задать разные звуки на разные события. (от сирены до короткого beep)
+
avatar
0
Тогда ничего не было такого.
+
avatar
0
Привязка только к софту производителя?
+
avatar
+2
Минусы:
-Нет возможности различать факт открытия или закрытия двери. На оба события будет сработка, если между ними более 5 секунд.
Вообще-то можно, у версии на датчике холла. Просто придется взять другой датчик холла. Сам по себе датчик холла полярный, так что отличает северный и южный полюсы магнита, надо только выбрать такой, который соответствующие разные сигналы и на выход отдаст (ваш текущий по даташиту конвертирует в одинаковые импульсы). А дальше взять продолговатый цилиндрический/прямоугольный магнит и закрепить его на дверном полотне поперек и боком, чтобы под датчиком при открытии/закрытии двери пролетали оба полюса по очереди. В таком случае вы на выходе датчика при одном событии получите два разных импульса подряд, и по порядку их следования вы определите направление движения двери. Придется код немного доработать, да.
+
avatar
  • ACE
  • 22 апреля 2022, 12:32
+1
Классно. Особенно микросхема таймера понравилась, отличная штука, не встречал такой ранее.
+
avatar
+2
А если рассмотреть вариант с микриком, который когда дверь открыта подает питание на схему?
Еще дольше батарея протянет и понятно состояние(открыто, закрыто) (типа решение изобретательских задач :-)
+
avatar
0
30нА очень близко к току саморазряда батарей…
+
avatar
  • ksiman
  • 23 апреля 2022, 09:31
+1
30нА очень близко к току саморазряда батарей…
Это гораздо меньше тока саморазряда, составляющий единицы-десятки микроампер
+
avatar
+1
спасибо, классно всё разъяснили. сделаю потом автономные датчики протечки на основе этого
+
avatar
  • kven
  • 22 апреля 2022, 14:32
+4
а можно было спичку в щель между дверью и проемом вставить
+
avatar
  • mamiya
  • 22 апреля 2022, 16:25
+1
Так человечество точно вернётся в каменный век ))
+
avatar
+1
Мне понравилось.

Важное:

Вход “DONE” TPL5110 обязательно следует притянуть к земле резистором. Я использовал резистор номиналом 570 КОм. (ссылка). Вход TPL5110 высокоимпедансный, выход esp в третьем состоянии, плавающее соединение ловит любые наводки.

Неважное:

Резистор между выходом и затвором полевика не нужен.

Код после отключения питания (задержка и перевод в сон) никогда не выполнится.
+
avatar
0
Без резистора почему-то никогда не включался ESP. Самому tpl сносило голову
+
avatar
+1
Может из-за того что полевик- емкостная нагрузка и при открытии заряжающийся затвор транзистора сносил голову таймеру? Не зря практически всегда ставят резистор между затвором и управляющим выходом в любых схемах.
+
avatar
0
Либо нарастающий фронт наводил помеху на соединение DONE без резистора. Резистор растягивает фронт, помеха меньше. Корень проблемы — в висящем в воздухе выводе DONE.
В моей конструкции притягивающий к земле ногу DONE резистор есть, а затвор полевика напрямую присоединен к ноге управления. Работает больше года идеально.
+
avatar
0
Даже отключая и заземляя done ничего не включалось. Обратите на тестовой плате резанная и потом спаянная дорожка :)
После первого нажатия на кнопку спуска таймер уходил в бесконечные попытки дрыгнуть затвором, т.е. даже через 11 сек ничего не прекращалось. А значит таймер не считал время совсем.
+
avatar
0
Дистанционно лечить дело такое :)))

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

Почему не помогло заземлить ногу DONE — не знаю. Должно. Либо таймер не родной, а китайская копия, либо еще какая-то причина.
+
avatar
0
Все кроме esp куплено на digikey. Думаю правильный ответ звучит так: для моего конкретного мосфета нужен резистор, для вашего — нет
+
avatar
0
Резистор между выходом и затвором полевика не нужен.
ну не знаю. имхо плохой совет. у выхода DRV микросхемы tpl5110 нагрузочная способность всего 50pF. затвор полевика — это на-а-а-амного большая емкостная нагрузка. зачем стрелять себе в ногу ради копеечного резистора?

пы.сы. не вижу маркировки полевика. для тех кто хочет повторить он должен быть типа Logic Level, обычный тупо не откроется на всю катушку от 3в..5в (обычному надо 10в).
+
avatar
0
А я знаю. Не нужен там резистор.
+
avatar
0
человек с такой культурой производства и написания кода как у вас, не может сделать ничего кроме тяп-ляп и в продакшен. так же часто подвержен быстрым, скорополительным и не верным выводам.

это я вам как психолог говорю.
+
avatar
+1
Espressif так разогнался, что его даже кризис радиокомпонентов не особо коснулся. Похоже Esp8266 один из самых доступных микроконтроллеров с довольно хорошим функционалом, правда GPIO маловато, но тут выручит модуль esp32.
+
avatar
+1
Они говорят, что с 2014 года по ноябрь 2021 отгрузили 50 000 000 чипов.
+
avatar
+2
Во всех обсуждениях одна ошибка. Шлейф работает на замыкание. Я работал в ОПС и все шлейфы в охранно-пожарной сигнализации работают на обрыв. Так легче обнаружить неисправность. При работе на замыкание при плохом контакте или обрыве система не сработает.
+
avatar
+1
Они работают и на обрыв и на замыкание. Там в конце шлейфа резистор и подается питание и контролируется ток, обрыв по прекращению потребления определяется, а замыкание по КЗ.
+
avatar
  • Fghj7
  • 23 апреля 2022, 09:34
+2
Так что, хозяин, сдающий вам квартиру оказался порядочным человеком, или подлым негодяем?
+
avatar
+1
Порядочный
+
avatar
0
Я даже делал отдельный топик
Возможно, здесь решение лучше.
+
avatar
  • oleg235
  • 23 апреля 2022, 09:45
+1
Изначально мне хотелось с минимальными затратами времени и денег сделать датчик открытия входной двери в квартиру. Мне было интересно знать, ходит ли владелец в жильё, которое мы снимали.
Для этой задачи электроника избыточна в принципе.
Берётся кусочек прозрачной плёнки и вставляется в щель между дверью и коробкой. Всё. Затраты времени и денег минимальнее просто некуда.

Если в квартиру ходили — плёнка упадёт.
+
avatar
0
Мне так не подходило, ввиду конструкции дверей
+
avatar
  • oleg235
  • 23 апреля 2022, 13:38
0
Я не представляю себе конструкцию дверей, в которые такое не засунуть.
+
avatar
0
Так где ответ на главный вопрос — ходит хозяин квартиры или нет? :)
+
avatar
0
а почему бы не использовать геркон на размыкание(переключение)?
открыли — питание на устройство пошло, и шлем сообщение
экологично, молодежно)))
+
avatar
-1
Не хотел коммутировать большой ток питания герконом.
Если закрыть дверь быстрее 5 секунд, то оповещение не придет.
+
avatar
+2
а почему бы не использовать транзистор для управления питанием, который будет включать геркон?
+
avatar
+2
а почему бы не использовать таймер, который удерживает транзистор, который для управления питанием, который будет включать геркон?

и тд и тп)))
+
avatar
  • r0c
  • 25 апреля 2022, 16:57
0
, а возможно ли этот код переделать под Телеграм? Вопрос именно во времени и скорости подключения, спящем режиме для экономичности. Может есть примеры?
+
avatar
0
Не нужно ничего переделывать, просто на стороне ifttt сделайте посылку в телеграм при дергании webhook
ifttt.com/telegram
+
avatar
  • Koh
  • 26 апреля 2022, 00:44
0
Оказывается, не у одного меня Duracell текут. А я думал, мне подделка попалась.
Я такой батарейкой настенные часы испортил…
+
avatar
0
Эта потекла, потому что я перегрел её паяльником и пластиковая защита проплавилась
+
avatar
0
Перечитал комментарии и не понял почему никто не написал очевидный вариант из готового zigbee датчика. И имхо это намного проще и с точки зрения настройки и покупки. Но и подороже (датчик 800, шлюз 2500, ну это в среднем) Да, к нему нужен шлюз с вайфаем и это возможно оверхэд для решения одной конкретной задачи, но судя по всему у автора датчик на квартиру не один. Если добавить в эту конфигурацию homeassistant, то пропадает проблема внешнего сайта. Пользовался около двух лет через сяомишный шлюз(с его комплектом датчиков), уже год как переехал на homeassistant, батарейка в датчике открытия пока не закончилась… Показывает 43%, но может и врет(они на новых сходу с 90% сразу на 50% падают, видимо просто напряжение считают линейно). Датчики температуры года за полтора cr2032 приканчивают при 15 минутном интервале измерения.