Главная » Статьи » Проекты

Беспроводная система оповещения с датчиком движения

 Не так давно, ко мне обратились с просьбой собрать охранное устройство, которое включает в себя датчик движения и возможность передавать по радиоканалу сигнал об его срабатывании. У меня как раз имелась парочка радиомодулей HC-12, и датчик движения hc-SR501 поэтому решил помочь с изготовлением.  Устройство должно обеспечивать максимальную мобильность, питание только аккумуляторное или от батареек, поэтому важно было организовать минимальное энергопотребление.

 По описанию датчик движения HC-SR501 работает при напряжении питания от 4,5 до 20 вольт, и сначала была идея поднять напряжение для него отдельным повышающим DC/DC конвертером на LM2577. Но оказалось что конвертер в холостом режиме потребляет 12 мА, что очень много, учитывая что датчик движения потребляет в режиме ожидания всего 70мкА. Поэтому поизучав внимательно плату выяснил, что там уже стоит понижающий стабилизатор на котором и падает всё напряжение. И для того чтобы он нормально работал от LI-Ion аккумулятора необходимо обойти защитный диод на входе питания и замкнуть вход и выход линейного стабилизатора 7133 (вторая и третья ножки). После этих манипуляций датчик начинает стабильно работать при напряжении от 3 до 6 вольт (верхний предел для микросхемы BISS0001).

 

 

 Победив датчик движения в плане понижения напряжения питания, он подкинул мне другую подлянку. Оказалось, что при работе совместно с радиомодулем HC-12, датчик периодически ложно срабатывал. Первым делом подумал о том, что идут помехи от антенны передатчика, которая находится рядом. Предположение частично подтвердилось, когда снизил мощность передатчика в два раза (команда AT+P4) и ложные срабатывания прекратились. Затем чтобы использовать передатчик на полную мощность, решил отвести датчик движения подальше от основной платы метровым экранированным кабелем. Сказано-сделано. Разнес датчик и плату с радиомодулем, выставил максимальную мощность передачи. И.. снова ложные срабатывания. Тогда чтобы проверить предположение о радиопомехах, запитал датчик и радиомодуль разными источниками питания, положил их рядом, начал отправлять данные, и оказалось что все работает как надо. Даже если подносить антенну к плотную к датчику. Значит это была помеха по питанию, которую как мне казалось, победить было проще. Но ни добавление блокировочных конденсаторов, ни индуктивностей по питанию радиомодуля и датчика результата не дало, помеха все равно проходила и давала ложные срабатывания. Причем самое интересное, что радиомодуль не обязательно должен что-то передавать в эфир, чтобы создавать помеху, ему достаточно просто быть подключенным к питанию.  Был даже опробован вариант с питанием датчика через dc/dc преобразователь (как и планировалось первоначально), но даже он не помог от помех. Возможно, изолированный dc/dc преобразователь решил бы проблему, но заказывать и ждать не хотелось, поэтому был опробован вариант питания датчика отдельным аккумулятором. К счастью, такое решение сработало и мы остановились на нем.  Датчик потребляет мало, и одного заряда аккумулятора емкостью 700мА/ч хватит ему более чем на год непрерывной работы. 

Итоговая схема передатчика:

 

 Питание радиомодуля организовано через транзистор Q1, который полностью его обесточивает во время простоя. Заместо bs170 можно применить любой n-канальный полевик с логическим уровнем отпирания. Светодиод D1 показывает поступление сигнала с датчика движения. Еще в схеме предусмотрено подключение второго датчика, срабатывающего на замыкание (S2), можно применить для оповещения при открытии двери или окна.

 Потребление схемы передатчика вышло порядка 3 мА во время ожидания и 20 мА во время передачи. Примерно каждые 6 секунд микроконтроллер просыпается, дает питание радиомодулю и отправляет тестовое сообщение, чтобы поддерживать контроль связи с приемником.

 

 плата с датчиком движения:

 

Плата передатчика:

 

 

 Схема приемника тоже построена на микроконтроллере ATMega8:

 

  После включения приемник начинает слушать эфир, мигая светодиодом D2, если по прошествии 6 секунд приемник не услышал передатчика начинает мигать светодиод D3. При этом начинает раздаваться короткое звуковое оповещение. При установлении связи, снова начинает мигать D2.

 При срабатывании датчика движения загорается светодиод D1 и раздается непрерывное звуковое оповещение. При замыкании контакта S2 на передатчике, загорается светодиод D6 и также раздается сигнал тревоги.

 При разряде одной из батарей ниже 3,3 вольт начинает мигать соответствующий светодиод (см.схему) и раз в 15 секунд раздается звуковое оповещение.

 Что касается энергопотребления приемника, то хоть особых мер и не вводил, но потребление получилось порядка 18 мА (если не горят светодиоды), из них 17 мА потребляет радиомодуль, который постоянно слушает эфир. Этого достаточно чтобы непрерывно проработать от аккумулятора емкостью 1500 мА более 3-х суток.

 И еще одно дополнение по поводу прошивки. Микроконтроллеры в приемнике и передатчике тактируются от внешнего кварца на 12 МГц, поэтому не забываем выставить соответствующие фьюзы. В Khazama-AVR Programmer настройка фьюз битов выглядит следующим образом:

 

 

 

Архив с исходниками и прошивками

Ссылка на схемы проекта в онлайн редакторе

Радиомодули

Датчик движения

 

Категория: Проекты | Добавлено: 30.09.2016
Просмотров: 1506 | Комментарии: 20 | Рейтинг: 5.0/8
Всего комментариев: 20
0  
20 exersizze   (05.10.2016 13:03)
Ага, если на одной частоте, тогда нужно как то согласовать по времени все передатчики. Или же можно переложить опрос всех датчиков на приемник. Чтобы по команде от приемника просходил опрос датчиков и ответ.

19 pchela5   (05.10.2016 10:38)
>>Использовать несколько передатчиков можно. Сигналы с передатчиков будут полностью идентичны, поэтому если планировать несколько передатчиков на один приемник, то лучше сделать так чтобы каждый из них отправлял свои команды. Тогда приемник будет знать с какого передатчика пришел сигнал.

На одной частоте? Сдается мне, тут надо какой-то диспетчер тогда писать, чтобы они друг друга не душили. Ну и в голове посылки можно писать адрес сработавшего датчика, задавать который можно перемычками, к примеру.

0  
18 exersizze   (03.10.2016 22:42)
radiomag, по ТЗ контроль каждые 5-10 секунд, а тут у таймера#1 как раз переполнение и прерывание почти каждые 6 секунд получается - повесил эту функцию на него. Увеличить интервал можно, но такие не большие промежутки удобны тем, что быстро можно понять, есть ли связь. Совсем отказываться от контроля связи я бы не рекомендовал.
Использовать несколько передатчиков можно. Сигналы с передатчиков будут полностью идентичны, поэтому если планировать несколько передатчиков на один приемник, то лучше сделать так чтобы каждый из них отправлял свои команды. Тогда приемник будет знать с какого передатчика пришел сигнал.

17 radiomag   (03.10.2016 20:04)
Теперь вопросы. :)

Автор пишет:
"...Примерно каждые 6 секунд микроконтроллер просыпается, дает питание радиомодулю и отправляет тестовое сообщение, чтобы поддерживать контроль связи с приемником. ...

Почему так? Ведь система - с автономным питанием, насколько я понял?
Можно ли (рекомендуете ли) обойтись вообще без этой опции?

И еще один вопрос.
Возможность работы пары-тройки подобных радио-датчиков на один приемник. Корректно ли это?

16 radiomag   (03.10.2016 19:55)
Автор пишет:
" И.. снова ложные срабатывания. ..."

Тоже было нечто похожее, в практике установки друзьям охранно-дозвонных девайсов... Проводной стандартный "профессиональный" датчик в системе охранной сигнализации сельського кафе - периодически устраивал ложную тревогу. Когда же в кафешку залез настоящий вор, система вопчем-то идеально четко сработала, разослала СМСки... :)) ну а "приезжающий" охранник, тупо "забил", поленился приехать глянуть (все-таки, 2 км расстояние от дома до кафешки!). :)

Пришлось мудрить, делать спарку с 2-х разнотипных датчиков (первый - уже упомянутый выше и дополнительный этот же ширпотребовский HC-SR501, установленный тут же рядом, в коробочке, стилизированной под блок питания). Само собой разумеется, импровизированную эту связку датчиков "обслуживает" отдельный МК. Алгоритм простенький: при срабатывании встроенного акустического датчика (в конкретном случае -это очень важный фактор, ибо вор не мудрствуя лукаво, тривиально рушил решетку и отжимал створку стеклопластикового окна т.е. шумел не хило), программа уходит из основного цикла на условную метку "готовность" и некоторое время крутится там, мониторит входы датчиков движения. И только при одновременном срабатывании 2-х этих датчиков, посредством реле (!) РЭС 55 коммутируется соотв. тревожный вход центрального блока.

Ещё одна мини-фича: в светлое время суток все упомянутые датчики - автоматически блокируются. В работе только дверной "геркон" (если прибор не был снят с охраны, понятное дело). Так же автоматически отключается св.диодная,дежурная минималистическая подсветка в помещении.

За почти полтора года эксплуатации - сбоев И явного "ложняка" не наблюдалось.

0  
15 exersizze   (03.10.2016 19:22)
Этот вариант тоже обдумывался, проблема в том что ложные срабатывания были даже тогда когда радиомодуль ничего не передавал. Тоесть вообще, даже ножки tx, rx были отключены. Вот такая вот странность. Хз, почему так, может контроллер на плате радиомодуля с трансивером сами там общаются постоянно. И да, выдержка на датчике движения стоит минимальная. Заказал по новой радиомодули и датчик движения, посмотрю как они будут совместно работать.
Переменный резистор чувствительности заменен на постоянный 1МОм, китайцы видимо сэкономили)  тоесть чувствительность выставлена на максимум. Я его шунтировал разными номиналами, вплоть до перемычки. Чувствительность уменьшалась а нужного результата небыло. В общем за неделю пока боролся с ним, перепробовал все возможные варианты.

14 pchela5   (03.10.2016 15:34)
Посмотрел программу - как мне кажется, надо вставить проверку на помехоустойчивость - у датчика регулируется же длительность импульса срабатывания - вот секунду-другую после срабатывания надо бы выждать. Ну и в твоем датчике нету резистора чувствительности, а он крайне желателен.

0  
13 exersizze   (03.10.2016 14:10)
Да, тянул вниз. При срабатывании датчика на выходе единичка.

12 pchela5   (03.10.2016 13:25)
>> Резистор на выходе я тоже пробовал ставить, ничего не менялось.

Ты куда его ставил? Надо его подтягивать вниз, ЕМНИП.

0  
11 exersizze   (03.10.2016 11:58)
Вот с линзой не додумался поэкспериментировать, но мне кажется что это из другой оперы, мало бы чем помогло.
Резистор на выходе я тоже пробовал ставить, ничего не менялось. Была идея еще сам датчик резистором зашунтировать, но влезать не стал)

10 rulezzznv   (03.10.2016 11:34)
kip96 выкладывай скорее будем повторять))

9 pchela5   (03.10.2016 10:17)
Низкая помехозащищенность можеть быть из-за линзы Френеля датчика - в нем направленность круговая - можно ее поменять, закрасив внутри определенные сегменты. Я делал на нем сигнализацию для охраны периметра лагеря - помех вроде не было. Питалось от двух батареек - надо найти, посмотреть, кажется я тоже убирал стабилизатор. На охрану ставится по инфракрасному лучу.
PS Виктор, я не понел © - а где у тебя подтягивающий резистор вниз на выходе датчика? Там же открытый "эмиттер" (пишут что CMOS) на выходе. Без него все будет работать так, как ты описал. Я вспомнил, что такая же трабла была и методом тыка нашел данную фичу.

8 sherman   (02.10.2016 21:25)
В итоге взял готовый уличный вариант в магазине))

0  
7 exersizze   (02.10.2016 16:45)
sherman , что в итоге?)

6 sherman   (02.10.2016 11:34)
Тоже есть опыт скрещивания такого датчика движения с рэле на 220 вольт, тоже намучился с ним, постоянно устраивал мне светопредставления)

+1   Спам
5 SPA   (02.10.2016 11:32)
Мощнейшая статья!!! Профессионально и красиво!!!

0  
4 exersizze   (02.10.2016 01:43)
Мощность удалось оставить максимальной, режим передачи FU3, когда делал тестовую вылазку http://avrproject.ru/publ....1-0-174 получилось около километра. В условиях города скорее всего будет меньше.

+2   Спам
3 kip96   (01.10.2016 22:04)
Интересно, что такое-же сделал для себя года полтора назад. Передатчик только на 24l01+pa. Питание две батарейки AA. Прошёл всё то-же самое. А помехи убрал программно. Правда помехи были только во время передачи. Какая дальность?

+1   Спам
2 Scorpushka   (01.10.2016 20:11)
исправил

+1   Спам
1 Scorpushka   (01.10.2016 19:39)
как я рад появлению новых статей! спасибо!

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]






   EasyEDA:  бесплатный редактор схем

   ✓ Создание схем
   ✓ Возможность симуляции
   ✓ Быстрое создание печатных плат
   ✓ Интуитивно понятный интерфейс

   Нарисуй свою схему прямо сейчас!
   Изготовление печатных плат   https://easyeda.com/order
авторизация
Логин:
Пароль:
Комментарии
Когда не хватает ног. Часть 2. Сдвиговый регистр 74HC595
08.12.2016 - exersizze:
yorx выдалось немного свободного времени, проверил в симуляторе. Проблема...
Логгер температуры 2.0
05.12.2016 - Evgeny6873:
Хотел повторить схему и долго ждал дисплей, два раза заказывал с Китая, пришел. ...
Когда не хватает ног. Часть 2. Сдвиговый регистр 74HC595
01.12.2016 - yorx:
Доброго времени суток, exersizze попробовал Ваш код все равно не работает как на...
Помни об усадке!
30.11.2016 - pchela5:
Автомобильные никакие не лезут?
Помни об усадке!
29.11.2016 - AlekS:
Виктор, спасибо.
С заменой транса в зиму, перестройка не комельфо) Валяет...
Управляем микроконтроллером с ПК по UART
29.11.2016 - exersizze:
Михаил, для работы с инфракрасными датчиками и диодами есть команды RC5SE...
Управляем микроконтроллером с ПК по UART
29.11.2016 - Михаил:
Всем привет.
Подскажите как переменную S передать по инфракрасному каналу...
Помни об усадке!
29.11.2016 - pchela5:
> Если ленту светодиодную порезать и соединить последовательно
Только ...
Когда не хватает ног. Часть 2. Сдвиговый регистр 74HC595
29.11.2016 - exersizze:
yorx, вывод Q7 ' первой микросхемы соединен с DS второй микросхемы? С...


Лучшие цены на 3D принтеры
успей сделать себе подарок к Новому Году! ;)


Prusa i3

Prusa i3 от 12500 р.



Rostoсk

Rostock от 15000 р.