Простая сигнализация лающая собака с датчиком движения

Простая сигнализация лающая собака с датчиком движения

Сегодня будем делать сигнализацию. И не простую, а лающую на всех проходящих. И ещё её можно использовать как элемент присутствия в квартире или на даче большого злого пёсика. Вот придёт грабитель, услышит, что дома собака Баскервилей, испугается, и не будет ничего брать.
Для такой сигнализации мы будем использовать MP3 плеер DFPlayer Mini, датчик движения HC SR501, и Ардуино, куда же без неё.
Давайте посмотрим небольшой кусочек что должно получиться.

Для начала нам надо установить библиотеку. Скачивать её будет с githab.
А это, кто не знает мой канал, на нём больше сотни видео на разные темы. Кто ещё не подписан, то сейчас самое время это сделать.
Переходим вот по этой ссылке https://github.com/DFRobot/DFRobotDFPlayerMini Если не забуду, то ссылка будет в описании.
Эта библиотека специально разработана для модуля MP3 который мы будем использовать. В ней есть примеры как с ней работать. Нажимаем скачать zip архив.
Теперь переходим в Arduino IDE ко вкладке Скетч и выбираем добавить zip библиотеку.
Идём в то место куда вы скачали библиотеку и выбираем архив. Нажимаем Open, ну или что там у вас. Всё готов, библиотека установилась практически моментально.
Заходим в примеры и смотрим какие примеры установились с библиотекой.
Мы будем использовать полный функционал. Поэтому открываем FULL FUNCTION.

Прошиваем скетч в Ардуино и смотрим всё ли в порядке. Видим, что инициализация модуля прошла успешно и плеер в Онлайне.
Теперь пробежимся по коду. Здесь почти 200 строк кода. Не, нам столько не надо. Я сейчас удалю всё лишнее и снова включусь.

Ну всё, код я почистил от всего лишнего. Теперь нам надо сделать что-нибудь полезное. Для нашего видео надо чтобы плеер воспроизводил звуковые файлы в случайном порядке. А то если они всегда будут идти друг за другом, то можно заподозрить не ладное.
В библиотеке для этого есть функция random, и всё вроде должно быть в порядке, но или я чего не понял или работает она как-то не так. В общем проблемы с ней. Поиск по инету не помог. Поэтому пришлось выходить из ситуации Ардуиновскими функциями.

Я записал на флэшку 12 файлов с кукушкиным кукованием. Благо у меня было видео про часы с кукушкой. Посмотреть можно здесь. Сколько кук, такое название файла.
Чтобы видеть какой файл играет, я вывел его название в монитор порта. Для определения конца проигрываемого файла я сделал проверку на 512. Это конец проигрываемого файла. Теперь смотрим и считаем куки.


Ну в общем всё работает и можно приступать к подключению датчика движения.
Посмотрим схему подключения.

Ну и наконец  давайте посмотрим скетч сигнализации. Сначала идут 3 библиотеки.

  • Первая библиотека, Ардуино, подключена для совместимости с предыдущими версиями.
  • Затем библиотека SoftwareSerial для работы с программным серийным портом и работающего на скорости до 115200 бод. В отличии от аппаратного,( пины 0 и 1), вы можете указать почти любые свободные цифровые пины.  
  • Библиотка DFRobot DFPlayer Mini  для работы с MP3 плеером.


Здесь указываем к каким пинам подключен плеер. Обычно это 10 и 11. RX модуля подключён к TX Ардуино через резистор 1 кОм.
Работать будем на скорости 115200 бод. Поэтому в мониторе порта не забудьте установить эту скорость.
Это проверка на подключение плеера и SD карты. Если что-то не так, дальше код не будет работать и надо проверить наличие карты и подключение модуля.
Если всё работает, то увидите текст "Всё работает!!!".
Так как для инициализации датчика движения требуется время, примерно 1 минута, и в это время он может менять своё состояние с 0 на 1 я сделал паузу в 40 секунд, а затем идёт приветственный звуковой файл, говорящий, что сигнализация готова к работе. У меня это файл 4.

Здесь можно менять громкость. Она может быть от 0 до 30.
В переменную state записываем текущее значение с выхода датчика движения и если это 1, то проваливаемся в это условие.
Статус 512 – это статус окончания звукового файла. И пока он не равен 512 будет играть файл.
Сначала я сделал скетч чтобы он выбирал случайный трек и воспроизводил его, но потом отказался от этого. Во первых я не нашёл хороших, злых рычаний собак, а во вторых понял что это не нужно. Достаточно и одного. Этим я упростил скетч. После окончания я сделал паузу 5 секунд чтобы был небольшой разрыв.
В архиве будет лежать скетч с рандомным воспроизведением. Он рабочий, но я особо его не тестил, поэтому могут быть косяки.
Ну и в конце идут распечатки служебных команд и ошибок плеера.
Теперь давайте посмотрим что получилось.
Кстати здесь показан скетч со случайным воспроизведением файлов. На карте записано 4 файла. В 4 файле записано приветствие и сообщение о готовности.

После подачи питания включается задержка на 40 секунд, а затем идёт приветственный файл. Мы ждать 40 секунд не будем, а сразу к делу. Я зачем-то наложил эхо. Думал будет прикольно, а получилось не очень. Но переделывать уже не стал.

На этом заканчивается моё видео. Спасибо за то, что посмотрели. Что дальше делать вы и так сами знаете. Если понравилось, то ставьте лайк, а если нет, то обоснуйте. До встречи в следующем видео. Оно тоже будет со звуком, и надеюсь что вам понравится.