Подключим датчики к модулю ардуино мини. Свободные цифровые и аналоговые пины: 4, 8, 9, 10, 11, 12, А0, А1, А2, А3, А4, А5. Всего 12 пинов, из них 11 штук для датчиков, и один пин (№4) используется для контроля питающего (заряжающего) напряжения поступающего от зарядного устройства сигнализации (от внешнего источника +5 вольт).
И так, к пину 4 через делитель подключен вывод In+ от модуля заряда аккумулятора, таким образом arduino может отслеживать наличие напряжения во внешней сети. Если зарядное устройство постоянно подключено к разъему модуля заряда, то на выходе In+ будет напряжение +5 вольт, в случае исчезновения напряжения в розетке, исчезнет и потенциал + 5 вольт на выводе In+. Если модуль ардуино работает от 3,3 вольта, тогда неободимо впаивать делитель напряжения как на рисунке. В другом случае, делитель не нужен. Пин 4 ардуино сразу подключается к выходу In+ модуля заряда.
Датчики представляет собой обычные контакты, так называемые датчики типа сухой контакт. То есть в качестве датчиков можно использовать кнопку, выключатель, концевик или электронный датчик имеющий дискретный (цифровой) вывод сигнала . На рисунке датчики 10 и 9 изображены условно в виде контакта, как только контакт замкнет вывод платы arduino на общий провод (GND), тут же сработает алгоритм действий зашитый в микроконтроллер, и соответственно сигнализация даст знать пользователю об этом.
Также на рисунке для примера изображен датчик освещенности (датчик 1). Этот датчик требует питания для своей работы, поэтому к нему необходимо подключить провод от пина VCC модуля arduino, если модуль имеет 5-ти вольтовую логику (или использовать отдельный источник питания). Как только освещенность превысит определенный порог, на своем логическом выводе он выдаст логическую единицу.
Концевик (датчик2) изображенный на рисунке - обычный контакт.
Корявая нумерация датчиков, как может показаться на первый взгляд, задумана так, потому что, это требует наиболее удобная распайка элементов в устройстве. Так же необходимо точно знать нумерацию датчиков (на каком пине модуля arduino находится тот или иной датчик), это критически важно для написания программы контроллера. В принципе, нумерацию датчиков можно изменить по своему усмотрению, но тогда потребуется вносить правки в программу.
Ниже привожу электрическую схему сигнализации (для модуля arduino работающего на 5 вольтовой логике):
Ссылка на схему https://cloud.mail.ru/public/Qciw/2RgChwDd6
Модуль «charge module Li 4.2 V» предназначен для заряда Li-Ion аккумулятора. Можно купить на али экспресс уже распаянный на печатной плате. Модули «module Sim800L», и «Pro Mini Atmega 328» так же можно купить на али экспрессе. Резисторы, светодиоды, кнопки, коннекторы тоже можно купить, или найти практически на любых печатных платах. Кнопки я отпаял от старых игровых джойстиков, резисторы, светодиоды и коннекторы купил на али экспрессе.
Конденсаторы С1 — С11 выполняют роль фильтров. Теоретически, если провода до датчиков длинные, то они начинают работать как антенны. В них наводятся наводки, от сотовых сетей, от работы коллекторных двигателей, от срабатывающих контактов выключателей и т д. Эти наводки могут спровоцировать ложное срабатывание сигнализации. Конденсаторы же замыкают эти высокочастотные наводки на общий провод.
В своём варианте я не использовал конденсаторы, поскольку длина проводников соединяющих сигнализацию с датчиками короткая. Более того, возможно эти конденсаторы вообще ставить не придется даже при длинных проводниках, так как в схему я их включил чисто из теоретических соображений. Для точного выяснения их необходимости, необходимо опытным путем это определить. У меня не было времени ставить такие эксперименты, но в своей сигнализации я оставил места для возможной подпайки этих конденсаторов.
Конденсаторы С14 и С15 тоже фильтрующие и стабилизирующие элементы по питанию. Один сглаживает высокочастотные помехи, другой является буфером, как бы запасным источником энергии на случай внезапного и кратковременного увеличения потребляемой электроэнергии устройством. Эти конденсаторы я не ставил, хотя в интернете много написано о необходимости таких элементов. Я исходил из идеи, что сам Li-Ion аккумулятор является тем буфером (из за своей большой электрической ёмкости) и высокочастотным фильтром, поскольку его внутренние сопротивление мало по сравнению с совокупным сопротивлением электронных модулей сигнализации. Поэтому всем наводкам легче замкнуться самим на себя через аккумулятор.
Поскольку представленная схема рассчитана для 5 вольтовой логики, а по факту я использовал 3,3 вольтовую (при покупки как то мне не попалась 5 ти вольтовая, или может быть если и была, то мне она показалась дороговатой), то в схему необходимо внести некоторые изменения.
Начнем с делителя напряжения собранного на резисторах R5=2,2 кОм и R6=2,7 кОм. Из за того что напряжение логической единицы примерно равно 3,3 вольта, а логическая единица которую корректно понимает модуль SIM800L на своем входе RXD должна быть не более 2,8 вольта, значения номинала резистора R5 должно быть уменьшено до 500 Ом.
Второе изменение необходимо внести в модуль заряда аккумулятора для того, что бы не перегружать вход микроконтроллера (пин №4 arduino). Питание модуля производится от внешнего источника имеющего напряжение 5 вольт, соответственно на выводе «In+» тоже будет напряжение 5 вольт, что негативно будет сказываться на контролере, которому достаточно подать на его вход 3,3 вольта. Чтобы срезать лишнее напряжение, нужно между пином «In+» и «GND» он же «In-» модуля заряда установить делитель напряжения:
В среднюю точку между резисторами теперь можно будет подключить пин №4 arduino. Резистор припаянный к пину «In-» имеет номинал 10 кОм — к «In+» имеет номинал 2,2 кОм.
Номиналы ограничивающих резисторов для светодиодов можно уменьшить до 180 — 200 Ом.
Следующая статья: https://dzen.ru/a/ZEt3eEWBmGv0m7vA