Дверной звонок своими руками на ардуино

Обновлено: 16.05.2024

АУДИО Школьный звонок

ТЗ:
1. Устройство (компактное) на базе ардуино и аналогов
2. Подключаемое к усилителю громкой связи через jack 3,5 - 2 rca (без фона)
3. Воспроизведение mp3 или wav файлов по расписанию
4. Оснащено разъёмом для флэш-карты для хранения файлов воспроизведения
5. Возможно наличие вэб-интерфейса для настройки по сети wi-fi или ethernet (обсуждается)
6. При отсутствии вэб-интерфейса, возможен вариант с lcd дисплеем и кнопками управления (возможно сенсор)
7. Функция автономных часов, хранение настроек
8. Питание от блока питания или usb

Пример использования:
1. Устройство подключено через Бп в сеть 220в со стандартным разъёмом с али
или через usb разъём, кабелем к зарядке от телефона (условно)
2. Подключается ethernet кабель в разъём
3. По-умолчанию, получает свободный ip адрес в сети (возможно выводит его на дисплей)
4. Вводим адрес, переходим в вэб-интерфейс с настройками
5. Настраиваем время на устройстве или берём время из интернета
6. Вставляем флэшку с файлами звуков
7. Добавляем 1ое время для воспроизведения звука и файл с флэшки
8. Указываем дни недели по которым данный файл будет воспроизведён, без привязки к дате (наверное)
9. Повторяем процедуру (п.п. 5-6), необходимое кол-во раз
10. Сохраняем результат, устройство заработало
11. Отсоединяем кабель ethernet
12. Подключаем к устройству кабель с jack 3,5
13. Ответную сторону кабеля с 2 rca, подключаем к усилителю
14. Радуемся звонкам в школе

Пример настройки (с множественным выбором дня недели):
1. 8:00 - файл "начало1.mp3"(wav) - ПН; ВТ; ЧТ
2. 8:50 - файл "окончание1.mp3" - ПН; ВТ; ЧТ
3. 8:45 - файл "разминка.mp3" - ПН; ВТ; СР; ЧТ; ПТ
4. 9:00 - файл "начало2.mp3" - ПН; ВТ
5. 10:00 - файл "кушать.mp3" - ПТ

Мысли в слух:
-возможность остановить воспроизведение звука
-какая-то индикация работы
-приостановка действия без удаления расписания (строчки)
-очистить всё расписание
-удалить выбранную строку
-может всё таки вайфай, хотя сложнее?
-может всё на расберипай, но дорого?

Разработка конструкции + код

Ещё мысли по данному проекту:
- для упрощения, возможно, в веэбе сразу отобразить некоторое кол-во пустых строк для заполнения (к примеру: 6 уроков в день * 2 (начало и окончание) и дополнительно 3-5 строк. Итого: 15-20 строк)
Примерный комплект для сборки:
1. arduino uno (200 руб)
+
2. ethernet шилд с SD разъёмом (350 руб)
+
3. БП (150 руб)
+
4. модуль часов (25 руб)
+
5. кнопочка остановки воспроизведения (5 руб)
+
6. mp3 модуль uart (но не уверен, что он нужен, возможно можно пожертвовать разъёмом jack 3,5 и подключиться на прямую к ногам arduino и воспроизводить wav)(200 руб)
+
7. Мелочёвка (резисторы) возможно для подавления шума на выходе (10 руб)

Итого по железкам: 940 руб

ещё забыл дисплей:
16*2 для вывода ip адреса полученного (150 руб)
или
использовать 3х сегментные 4 штуки, но эт дороже вроде

Arduino. Первый опыт. Школьный звонок и недоwebserver.

Добрый день. Хочу поделиться с вами первым горьким (или не очень) опытом. Было решено изучить что-же такое arduino и как его практически можно было использовать. Естественно решил сделать замену школьному звонку, с возможностью управления по локальной сети без поднятия web сервера и с записью расписания звонков на microsd карту.
Что использовалось:

- arduino mega 2560;
- ethernet модуль enc28j60;
- модуль MicroSD Card Adapter на базе LVC125A;
- твердотельное реле на базе G3MB-202P;
- модуль часов реального времени DS3231M;
- макетная плата 70*90;
- кривые руки;
- нулевые знания в arduino и С++;
- боль и слезы.

Что в итоге вышло:

Arduino. Первый опыт. Школьный звонок и недоwebserver. Arduino, Arduino Mega, Длиннопост

Теперь по порядку.

Поскольку познания в C++ у меня были совершенно никакие, поэтому было решено брать arduino mega 2560, для того чтобы был запас памяти, ввиду работы со строками (массивами). Модули взял какие были в продаже, не изучив возможные проблемы работу с ними (первая ошибка). По отдельности все модули, кроме модуля реального времени работали нормально, RTC модуль потом пришлось заменить на DS3231. В целом с данным модулем проблем дальше не было, ибо он подключается к шине (интерфейсу I2C).

Этап слез и боли.

Arduino. Первый опыт. Школьный звонок и недоwebserver. Arduino, Arduino Mega, Длиннопост

Вытираем слезы и радуемся, мы не настолько плохи.

Чтобы все это дело не паять к arduino было решено сделать шилд для выноса шины ICSP, I2C и кнопки ресет. Купил макетную плату, отпилил лишнее, припаял пины в местах выводов интерфейсов и кнопки ресет. Любителей качественной пайки и перфекционистов прошу не смотреть.

Arduino. Первый опыт. Школьный звонок и недоwebserver. Arduino, Arduino Mega, Длиннопост

Справа внизу подключен модуль RTC.

Еще подсказка для новичков, твердотельное реле нельзя проверить мультиметром и говоря русским языком твердотельное реле работает только под нагрузкой (я использовал обычную лампу накаливая). И еще, ногу DC+ реле я подключил через тумблер, для возможности отключения звонка.

Все это дело отлично вписалось в корпус роутера D-Link DIR-400.

На этом я аппаратной частью можно и закончить.

Поскольку памяти у нас достаточно, я решил не экономить и использовать строки, вместе с глобальными переменными, да это плохо, но с моими скудными знаниями это было неплохое решение.
Используемые библиотеки:

Почему именно они.

DS3231.h - может показывать в

ремя в unixtime и в виде hh:mm:ss в формате string. Также умеет работать с днями недели.

SD.h - ничего особенного, просто с ней получилось сразу подружиться.

В основном используется пока что три команды:

Прилагаю ссылку на код скетча на ваш суд, код старался максимально комментировать.

Дверной гонг своими руками. Часть 0.

Дверной гонг своими руками. Часть 0. Arduino, Дверной звонок, Своими руками, Электроника, Схемотехника, Raspberry pi, Микросхема, Ремонт техники

Всем привет. Я захотел себе домой вот такой дверной гонг. Купить его конечно можно, но вот стоят они от 3000 рублей, а тем более хочется действительно необычный звонок. И мне пришла идея создать полифонический дверной гонг на 12/24 трубы. Такое количество труб позволит закрыть две полных октавы, т.е. можно будет сыграть любую мелодию. Я читал много постов про самодельные электронные устройства и верю в силу Пикабу))) из моих предположений удобнее всего реализовать такое устройство на Arduino/Pi+электромагнитные реле, которые будут толкателями для труб. Может быть обойтись Атмегой. На ардуино закладывается роль преобразования мелодии в 12/24 ноты и управление реле с задержкой. Также нужно рассчитать длину труб для соответствия резонансной частоте каждой ноты. Буду рад советам, комментариям. Может кто согласится поучаствовать в таком проекте или сделать предзаказ, требуемые запчасти и расходники с меня. Также прошу помощи у бывалых и знающих: @miharus300, @BootSect, @QwertyOFF, и всех остальных))) Что думаете? Реально? Что потребуется?

Дубликаты не найдены
4 года назад Идейно могу посчитать и сделать трубы. Или собрать их сразу с катушками. Но откровенно говоря дверной звонок это не тот вариант. оно и само по себе прикольно выйдет 4 года назад

На всяк случай подписался

Иллюстрация к комментарию

4 года назад Потребуется больше 3000 рублей. раскрыть ветку 2 4 года назад Кончено получится дороже, но и результат значительно лучше, чем две обычных трубы. 4 года назад

зато интересно. и результат лучше чем за 3к. теоретически

показать ещё 0 комментариев Похожие посты 3 дня назад


Гусеничное шасси-робот на базе Arduino

Проект был подготовлен студией droidbot.store

Шасси для робота, неотъемлемая часть конструкции любого робота, основная функция которого - перемещение. Китай предлагает не мало готовых вариантов, но большинство из них либо слишком дороги, либо не функциональны, слишком мало места под электронику. Единственный универсальный вариант - шасси для машинки, но монтажные отверстия на мой взгляд не слишком удобные.

Гусеничное шасси-робот на базе Arduino Arduino, Raspberry pi, Самоделки, Робототехника, Робот, Видео, Длиннопост

Моя хотелка сказала, хочу гусеничное шасси с возможностью прикручиванием сверху чего угодно, например "руки-манипулятора". То есть цель - получить универсальное шасси под любой роботизированный проект. На алике нашел более-менее подходящие гусеницы, которые через напечатанный переходник отлично встают на популярные ТТ двигатели.

В комплекте к ним идут уже напечатанные втулки, но скажу сразу они не того размера, они просто не налезают на вал двигателя, такие уж китайцы)

Гусеничное шасси-робот на базе Arduino Arduino, Raspberry pi, Самоделки, Робототехника, Робот, Видео, Длиннопост

Корпус проектировал в SketchUp, получился немного угловатый, но мне все равно нравится, ибо все идеально выверенно, до 10-ых миллиметра (спасибо штангенциркулю) и напечаталось все очень круто. Пластик использовал PLA.

Как итог, готовая модель у меня выглядит вот так:

Гусеничное шасси-робот на базе Arduino Arduino, Raspberry pi, Самоделки, Робототехника, Робот, Видео, Длиннопост

А это все комплектующие для сборки:

Гусеничное шасси-робот на базе Arduino Arduino, Raspberry pi, Самоделки, Робототехника, Робот, Видео, Длиннопост

Видео сборки:

На видео не показано подключение серво и HC-SR04, так как в моем скетче они не используются, но место на крышке я под них все равно предусмотрел.

Инструкция по сборке:

Проект "Bluetooth машинка 2WD на Arduino UNO"

А это один из возможных проектов на данном шасси. Ничего особенного в нем нет, но можно на скорую руку проверить шасси в действии.

Требуемые компоненты для проекта

Драйвер двигателей L298N

Две батарейки 18650

Схема подключения

Гусеничное шасси-робот на базе Arduino Arduino, Raspberry pi, Самоделки, Робототехника, Робот, Видео, Длиннопост

Скетч для Arduino

Программа для управление с андроида:

На правах рекламы

И кого заинтересовал, вот сам набор, доступен под заказ в моем магазине:

Если будут заинтересованные статьей, то в общий доступ на thingiverse добавлю модель.

Показать полностью 5 1 3 дня назад


"Специалисты" вокруг нас

Периодически задавался вопросом, почему вокруг столько некомпетентных людей. Ну т.е. прям вообще далеких от того, что они делают. Как они такую работу, в которой не шарят, что их сподвигло там работать? Но на прошлой неделе стал понимать.
Работаю в сервисе, нужен мастер по ремонту импульсных блоков питания. Блоки максимально "заряженые", содержат все возможные модули, чтоб КПД максимально отдавать. Приходит один соискатель.
-что про блоки питания знаешь?
-ну в них приходит 220 выходит 12 вольт.
-и все?
-да.

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

приходит третий соискатель.
-я не чинил блоки, но хочу научиться.
-ну ок, давай попробуем.
а чел вообще далек от электроники. Резисторы, транзисторы, это для него в новинку.

11 дней назад

Цифровой инструмент для тех, кому лень учиться играть на гитаре

Чем стал девайс, разработку которого я описывал в этой статье: Как я учился играть на гитаре, а в итоге создал свою цифровую

16 дней назад


Увеличение количества пинов NodeMCU с помощью сдвигового регистра

Так как у NodeMCU не так и много пинов для подключения периферии, часто возникает нехватка pin. Поэтому такую замечательную отладочную плату откладываем на полку и ищем другие железки для реализации проекта.

Но в некоторых случаях можно расширить количество пинов с помощью сдвигового регистра и реализовать проект на NodeMCU.

Увеличение количества пинов NodeMCU с помощью сдвигового регистра Esp8266, Arduino, Nodemcu, Своими руками, Урок, Видеоблог, Видео

Все исходные материалы к уроку можно найти на сайте>>

Надеюсь моя информация будет полезной.

Спасибо! Всем добра!

Показать полностью 1 23 дня назад


Дисплей Nextion и NRF24 беспроводное управлении реле

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

С помощью радио модуля NRF24 беспроводным способом (по воздуху) будем управлять реле. Включать и выключать можно различную нагрузку: свет, отопление, вентиляцию и пр.

Дисплей Nextion и NRF24 беспроводное управлении реле Arduino, Nrf24l01, Реле, Своими руками, Видеоблог, Видео, Самоделки, Длиннопост

На основе данной системы можно сделать беспроводное управление освещением в доме.

Дисплей Nextion и NRF24 беспроводное управлении реле Arduino, Nrf24l01, Реле, Своими руками, Видеоблог, Видео, Самоделки, Длиннопост

Надеюсь моя информация будет полезной.

Спасибо! Всем добра!

Показать полностью 2 25 дней назад


FIMI x8 mini

Помог другу купить в официальном магазине на али.

Не полетел сразу.

FIMI x8 mini Квадрокоптер, Ремонт техники, Своими руками, Плохое качество, Длиннопост

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

Задавали глупые вопросы, даже после чёткого видео с проблемой.

В общем-то выбора не было, вскрыл.

FIMI x8 mini Квадрокоптер, Ремонт техники, Своими руками, Плохое качество, Длиннопост

Вот фото крышки, видно защёлки, может кому поможет. Пластик неимоверно тонкий. Терпение и аккуратность.

FIMI x8 mini Квадрокоптер, Ремонт техники, Своими руками, Плохое качество, Длиннопост

Пайка внутри отвратительная.

FIMI x8 mini Квадрокоптер, Ремонт техники, Своими руками, Плохое качество, Длиннопост

Видно не припаянную фазу одного двигателя.

Это весь ремонт, очень повезло, что он такой простой. Очень повезло другу, что у него есть рукастый я.

Лучше не покупайте - поддержки продавца не будет :(

Показать полностью 4 29 дней назад


Самое простое дистанционное управление компьютером

Сегодня расскажу, как я делал удалённое управление ПК с помощью пульта ДУ. Реализовывал я это года 3-4 назад для переключения мультиков для ребёнка на YouTube.

Когда я сидел за компьютером, а ребенок смотрел мультики в другом конце комнаты. И чтобы не вставать постоянно для переключения мультфильмов. Сделал вот такую леньтяйку.

Самое простое дистанционное управление компьютером Arduino, Своими руками, Видеоблог, Видео, Компьютер, Самоделки, Длиннопост

Сегодня данным проектом решил поделиться с вами.

Самое простое дистанционное управление компьютером Arduino, Своими руками, Видеоблог, Видео, Компьютер, Самоделки, Длиннопост

Самое простое дистанционное управление компьютером Arduino, Своими руками, Видеоблог, Видео, Компьютер, Самоделки, Длиннопост

Так выглядит переключение композиций в ВК. А также регулирование громкости.

Самое простое дистанционное управление компьютером Arduino, Своими руками, Видеоблог, Видео, Компьютер, Самоделки, Длиннопост

Надеюсь моя информация будет полезной.

Спасибо! Всем добра!

Показать полностью 4 31 день назад


Поможите люди добрые, тупой блонди

Принесли вот такую штучку

Поможите люди добрые, тупой блонди Ремонт техники, Электроника, Нужна помощь в ремонте, Длиннопост

Это увлажнитель воздуха.

Вскрыв увидела что сгорел шим и бахнул транзистор, возможно smd резисторы, но они читаемы. Но проблема в том, что номиналы и маркировку шима и транзистора прочитать невозможно. Печаль.

Стоимость девайса небольшая, но я чиню ради интереса.

Питание реализовано 12в на управление и куллер, и 32 Вольта, как я поняла на ультразвуковой испаритель.

Нашла у себя в загашнике небольшой блок питания на 36в 1а, по плате влезает, но надо напряжение на куллер до 12 вольт, думаю сделать это резисторами.

Помогите расчитать мощность резисторов, не совсем понимаю, какую мощность брать. Если брать по схеме Uвых= (Uвх*R2)/(R1+R2), мощность считать от потребляемой или поступающей?

Если что я медик, ремонтирую для себя, это мое хобби.

P. S. Просили фото платы

Поможите люди добрые, тупой блонди Ремонт техники, Электроника, Нужна помощь в ремонте, Длиннопост

Поможите люди добрые, тупой блонди Ремонт техники, Электроника, Нужна помощь в ремонте, Длиннопост

UPD. Проблема решена, спасибо @oldeye! )

Показать полностью 3 31 день назад


Как сделать тетрис классический

Дисплей от Nokia 5110 - это наверное самый дешевый дисплей который можно найти для своих проектов на Arduino. На базе него мы разберемся с вопросом: "Как же сделать тетрис-игру?@

Основная проблема всех библиотек для рисования на этом дисплее - отсутствие поддержки русского языка. Решается установкой дополнительных шрифтов, которые подменяют английские символы на русские.

Как сделать тетрис классический Тетрис, Своими руками, Arduino, Nokia 5110, Экран, Скетч, Длиннопост

Избалованные i2c шиной скажут "фу", ведь у нас 4 провода управления SCLK, DIN, DC, CE и RTS которые соответственно подключаются к Arduino, 3, 4, 5, 6, 7. Не забываем подключить питание 3.3 вольта, и землю.

Для рисования будем использовать библиотеку Adafruit GFX Library. В архиве с ней есть примеры использования.

Для управления игрой используем ИК пульт от телевизора. Сигнал будет принимать датчик TL1838.

Как сделать тетрис классический Тетрис, Своими руками, Arduino, Nokia 5110, Экран, Скетч, Длиннопост

Я использовал Arduino Uno, т.к. она уже имеет стабилизатор на 3.3 вольт.

Подключение IR приемника:

pin 8 — IR (управляющий). Питание на +5V и GND.

pin 9 — speaker, Земля на GND.

Как сделать тетрис классический Тетрис, Своими руками, Arduino, Nokia 5110, Экран, Скетч, Длиннопост

Музыкальный дверной звонок в стиле Star Wars на Arduino

Всем привет, не так давно я рассказал, да и показал на видео, как можно прошить Attiny13 при помощи Arduino, а теперь покажу практическое применение этому.

Скажу сразу, фьюзы, прошивку в виде hex-файла, код на Си, скетч для Arduino IDE, файлы для Proteus 7 можно скачать в конце статьи.

Ну, что уж тянуть, покажу как работает:

Давно хотел себе такой музыкальный дверной звонок, чтобы при нажатии на кнопку играл марш империи(Imperial March or Darth Vader's Theme) из «Звёздных войн», очень нравится эта мелодия.

Как видно из названия видео выше, главный компонент устройства — микроконтроллер Attiny13, его применение сделало возможным сделать размеры платы в несколько раз меньше по размерах чем спичечной коробок:

Размеры платы


А вот уже всё подключённое:



Диапазон питания примерно от 2 В до 6 В, то есть, от двух до четырех батареек формата AA, хотя в идеале бы обеспечить напряжение 3-4 В, то есть для этих целей идеально подходит литий ионный аккумулятор от мобильника или же аккумулятор формата 18650, правда желательно чтобы он был с защитой, так как я пока не реализовал никакой защиты от глубокого разряда.

Ну что же, скажу пару слов по схемотехнике:

Схема выглядит вот так(файлы Proteus прилагаются в конце статьи, можно даже ничего не собирать на макетке):

Нарисована в Proteus'е

image

Так как микроконтроллер не может самостоятельно вытянуть достаточную громкость, для того чтобы было слышно звонок по всему доме, я добавил NPN транзистор 2N3904, довольно таки распространенный транзистор, в принципе может подойти любой транзистор который потянет динамик, в моём случае транзистор рассчитан на 100 мА.
При использовании 3-х батареек формата AA транзистор немножко грелся, при использовании двух — громкость осталась на приличном уровне но уже транзистор был слегка тёплым.
Резистор R2 — стандартная обвязка для микроконтроллера, служит защитой от случайных перезагрузок микроконтроллера, в принципе работать должно и без него, резистор R1 служит для ограничения тока на базе транзистора.
На фото видно ещё защитный диод, защищает он от невнимательности, а именно от переполюсовки, в моём случае, переполюсовка очень быстро выведет микроконтроллер из строя, причём вполне возможны как пиротехнические так и звуковые эффекты. Кстати, на схеме ниже я забыл указать его, подойдёт любой диод который рассчитан на напряжение от 10 В и ток от 200 мА, ставиться последовательно входу платы, или по минусу или по плюсу, у меня по минусу.
Динамик от старого Dial up модема Zyxel, кстати, про Dial up модемы этой фирмы есть один известный анекдот:

Анекдот

Сидят два хакера, и в комнату заходит кот. Один хакер спрашивает:
— Твой кот?
— Да, мой. Зухель зовут!
— Почему Зухель?
— Вот смотри. Берет веник, тычет им в кота и говорит: «Зухель, коннект. » Кот:
— Пшшшшшшшшшшшшшш!

Код, скажу сразу, нагуглил, точней нашёл на просторах ютуба, вот собственно само видео:

Под видео есть ссылка на код, вот он:

Код из описания к видео
Размер скетча в двоичном коде: 946 байт (из 1 024 байт максимум)

Как Вы можете видеть, есть два массива frequences — в переводе из английского частота и durations — длительность, всё данные типа word, PROGMEM — данные хранятся во флеш-памяти микроконтроллера(без использования библиотеки pgmspace.h работать не будет) ну и есть генератор частоты buzz() который принимает три параметра — пин, на котором будет генерироваться частота, второй — частота в герцах, третий — длительность в миллисекундах.
Данный код должен быть Arduino совместимым и работать даже на Arduino Uno, Arduino Nano или же Arduino Pro Mini ну и и других дуинах.

Как Вы могли слышать на видео, звучание моего видео немного отличается от второго видео, дело в том, что я немного изменил длительность нот и в три раза популярным методом «научного тыка», поднял частоту, так как такой маленький динамик как у меня плохо воспроизводит те частоты что были изначально, и добавил кнопку, какой же дверной звонок без кнопки?

Немного подправил под себя и закомментировал
Размер скетча в двоичном коде: 976 байт (из 1 024 байт максимум)

Как видите, добавления срабатывания при нажатии на кнопку превысило 1024 байта и пришлось вставлять кусочки кода Си чтобы уместиться в attiny13.
Частоту поднял строках buzz(PIN_BUZZER, pgm_read_word(&(frequences[i])) * 3, 2 * pgm_read_word(&(durations[i]))); тем самим умножив генерируемые частоты, как Вы поняли на три, это чисто мой каприз, можете ничего не умножать вообще.

Если Вы опытный ардуинщик, то думаю заметите в коде что я сделал программную подтяжку PULLUP резистора к порту PB4.
Для тех кто не знает делается это так:
Выставляем порт на вход и подаём на него логическую единицу. Теперь на порту будет напряжение, примерно равно напряжению питания, если этот порт закоротить на землю то он изменит своё состояние с логической единицы на логический ноль, причём микроконтроллер при этом не будет страдать, так как используется внутренний резистор, номинал которого 10-100 кОм.
Сделал я это чисто для экономии размеров платы, можно было просто подпаять резистор на 10 кОм к плюсу питанию и нужному порту, при нажатии на кнопку мы «притягиваем порт к земле» и на нём будет логической ноль.

Добавляю код на чистом AVR-С для тру AVR'щиков:

Код на AVR-С

Вроде как должен компилироваться без проблем, а вот при использовании этого кода в Arduino IDE почему-то размер hex файла как минимум удваивается «Размер скетча в двоичном коде: 1 986 байт (из 1 024 байт максимум)».
Как мне удалось выяснить всё это из за использования _delay_us(*); хотя ардуиновская функция delayMicroseconds(*); по сути делает то же самое, думаю это недочёт файлов ядра для тини13, вот ветка на буржуйском форуме ардуино откуда я и взял файлы ядра, правда самую малость доработал под себя, ссылка на доработанные мною файлы ядра есть в статье про прошивку Attiny13 при помощи Arduino.
Если кто-то поможет разобраться с этим багом буду только рад, ведь чисто теоретически Arduino IDE должна без проблем проглатывать С-шний код.

Ну и пару слов по прошивке — на первом видео запускал тиньку на частоте 1.2 мГц, как по мне, так 1.2 миллиона операций вполне достаточно чтобы играть любимую мелодию и при этом кушать совсем не много, кстати hex-файл скомпилирован именно под эту частоту.
Вот фьюзы из калькулятора фьюзов:

Скрытый текст

image

Теперь, каждый кто имеет AVR программатор сможет повторить это устройство.

Как было обещано в начале статьи вот все нужные файлы.

И напоследок — «Да прибудет с Вами сила».

UPD 05.01.2015

Хаброюзер SparF сделал то, что я ленился сделать всё это время, а именно довести до ума энергопотребление и сделать проигрывание при нажатии на кнопку PB1.
Теперь после проигрывания мелодии МК не «молотит» дальше в ожидании нажатия кнопки а засыпает и при каждом нажатии на кнопку он просыпается, проигрывает любимый нами Имперский марш и засыпает дальше, потребляя при этом практически ничего, батареек хватит на десяток лет в таком режиме потребления.

Открываем дверь домофона при помощи голосового ассистента и ардуино

Сегодня у меня статья про то, как при помощи Яндекс-колонки Алиса и Ардуино, можно открыть дверь, подключенную к домофону. Если Вам это интересно, то прошу под кат.

Часто бывает так, что кто-то звонит в домофон, а ты в этот момент чем-то занят или просто лень подходить для того, чтобы открыть дверь. Знакомая ситуация, не правда ли?

А мой домофон так вообще без поднятия трубки не открывает дверь и если в течении 30 секунд после вызова не поднять трубку, то кнопка открывания двери перестанет быть активной до того момента, пока не поступит новый вызов. Так как домофон не из дешёвых (на тот момент) меня жаба душила менять его на другой. И я решил с этим бороться.

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

Второй проект был реализован на роутере TL-MR3020 с прошивкой CyberWRT и программным СИП телефоном BareSIP. При нажатии на кнопку вызывной панели, роутер параллельно с вызовом интеркома звонил на мобильный телефон и можно было даже находясь в другом городе разговаривать с человеком, стоящим около двери твоей квартиры, но программный телефон или сам роутер, работали крайне нестабильно и пришлось от него отказаться.

Но тут к моему счастью в прошлом году на день рождения мне подарили голосового ассистента Алису и у меня появилась новая идея — отрывать дверь голосом, через Яндекс колонку.
И сегодня настал тот день, когда я взялся реализовать свою задумку.

Немного о том, как работает вызывная панель видео-домофона

Вызывная панель соединена с монитором домофона при помощи 4-х проводов GND, +12 В, аудио и видео.

Если на вызывной панели, провод Audio замкнуть через резистор 100 Ом на GND, то раздастся сигнал вызова. А если на провод Audio подать напряжение +12 В, то сработает реле открытия электромагнитного замка.

На изображении ниже показана схема соединения вызывной панели с домофоном.


Если для подключения вызывной панели к монитору, у Вас используется специальный домофонный кабель, то он подключается как правило по следующей инструкции:

GND — экранирующая оплетка
+12 В — красный провод
Аудио — синий провод
Видео — центральная жила коаксиального кабеля


Схема

Из схемы видно, что для подключения устройства на Ардуино к домофону, потребуется подсоединить всего 2 провода. Для коммутации этих проводов я использовал то, что у меня было под рукой. Вместо реле можно использовать ключ на N-P-N транзисторе или оптроне PC817.

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


Используемые компоненты

Вместо Arduino nano можно применить любой другой микроконтроллер из линейки ардуино. Я же использовал Ардуино нано потому, что у меня их достаточно много.

Исходник для Arduino

Код достаточно простой и понятный.

Для получения и сохранения кода нажатой кнопки, нужно перевести контроллер Ардуино в режим добавления кнопки пульта. Потребуется установить перемычку на выводы D2 и GND и нажать кнопку сброса на Arduino, после чего на плате контроллера засветится системный светодиод и контроллер будет ожидать нажатия кнопки на пульте.

Рекомендую использовать пульт от телевизора, чтобы кроме голосового управления можно было открыть дверь с ПДУ, не вставая с дивана. На пульте лучше всего выбрать кнопку, которой редко пользуетесь, как правило это четыре цветных кнопки, предназначенные для телетекста. После получения кодовой посылки Ардуино весело подмигнет светодиодом и снова перейдет в режим ожидания.

Можно нажимать кнопки сколько угодно, но Arduino запомнит только последнее нажатие. Чтобы выйти из режима запоминания кода, достаточно удалить перемычку и нажать на микроконтроллере кнопку «Reset».

Код для Ардуино

IRrecv irrecv(IR_RECEIVE_PIN);
decode_results results;

void setup()
irrecv.enableIRIn(); //запустить ожидание нажатия кнопки на пульте
pinMode(RELAY_PIN, OUTPUT);
digitalWrite(RELAY_PIN, LOW);
pinMode(SET_PIN, INPUT_PULLUP); //D10 конфигурируем на вход, для режима «запоминания кода»
pinMode(LED_BUILTIN, OUTPUT);
digitalWrite(LED_BUILTIN, LOW);
// Serial.begin(115200);

while(!digitalRead(SET_PIN)) //если пины D2 и GND замкнуты то заходим в режим запоминания ИК кода
set_command();
>
>

void loop()
if (irrecv.decode(&results)) //если был принят код с пульта
<
if(LoadEEPROM()==results.value) //если код совпадает с сохраненным (ir_command==results.value)LoadEEPROM();
digitalWrite(RELAY_PIN, HIGH); //включить реле
digitalWrite(LED_BUILTIN, HIGH);
delay(500);
digitalWrite(LED_BUILTIN, LOW);
digitalWrite(RELAY_PIN, LOW); //Выключить реле
>
irrecv.resume(); //запустить ожидание нажатия кнопки на пульте
>
>

void set_command() //режим запоминания кода пульта ДУ
digitalWrite(LED_BUILTIN, HIGH);
if (irrecv.decode(&results))
digitalWrite(LED_BUILTIN, LOW);
SaveEEPROM(results.value); //сохраняем полученый код кнопки ПДУ в EEPROM
irrecv.resume(); //запустить ожидание нажатия с пульта
>
delay(100);
>

void SaveEEPROM(unsigned long ir_code) // записываем полученый код кнопки ПДУ в EEPROM
EEPROM.write(0, ir_code & 0xFF);
EEPROM.write(1, (ir_code & 0xFF00) >> 8);
EEPROM.write(2, (ir_code & 0xFF0000) >> 16);
EEPROM.write(3, (ir_code & 0xFF000000) >> 24);
>

unsigned long LoadEEPROM() // считываем код кнопки ПДУ из EEPROM
byte val = EEPROM.read(3);
unsigned long ir_code=val;
val = EEPROM.read(2);
ir_code= (ir_code << 8) | val;
val = EEPROM.read(1);
ir_code= (ir_code << 8) | val;
val = EEPROM.read(0);
ir_code= (ir_code << 8) | val;
return ir_code;
>

При публичном размещении, выложенного мной выше кода — указывайте, пожалуйста, ссылку на первоисточник.

Подключение к Яндекс.Станции Алиса

Для подключения к умной колонке понадобится Умный пульт Яндекс.


Не обязательно его покупать у Российского поисковика и партнеров, пульт можно купить на Алиэкспресс немного дешевле. Но разница не настолько большая, чтобы играть в лотерею, покупая пульт у китайцев. Рассказывать, как подключить пульт к станции, я не буду, так как в интернете очень много подробных инструкций на эту тему, Вы без труда сможете их найти у того же Яндекса. Я только расскажу как настроить взаимодействие Яндекс.Станции с Ардуино открывалкой.

Для этого нужно зайти приложение Яндекс.Браузер — Все сервисы — Устройства — Управление устройствами — Пульт — Добавить устройство — Настроить вручную — вводим название «Дверь» — Добавить команду — вводим название голосовой команды «Открой» — берем пульт от любой бытовой техники, направляем его на Яндекс.пульт и нажимаем требуемую кнопку. После того, как синий светодиод на Я.пульте погас — колонка готова к выполнению этой команды. Теперь можно проверять, произносим фразу «Алиса открой дверь», она, немного подумав, выполнит Ваш приказ.

Заключение

Использование Яндекс пульта в умном доме позволит Вам управлять любой бытовой техникой, в состав которой входит ПДУ. А так же достаточно легко, собрав простейшую схему на Arduino интегрировать управление любыми другими устройствами, не имеющих ПДУ. Это просто, надежно и не требует подключения этих устройств к интернету.

Если Вам понравилась моя статья — можете подписаться на мой канал, чтобы не пропустить следующую публикацию.

Простейший звонок с двумя мелодиями

Звонок состоит собственно из Ардуино(в моём случае Nano, пойдёт любая), двух тактовых кнопок и динамика.


Одна кнопка меняет мелодию(4 пин), другая проигрывает её(5 пин). Кнопки имеют четыре ноги - по две с каждой стороны. Они соединены с землёй на Ардуино через резистор на 10кОм. С другой стороны любая из ног соединяется с 4 или 5 пином, соответственно с назначением данной кнопки. Всего мелодий две - главная тема Звёздных войн и тема Вейдера, т.е. Имперский марш. При желании можно самому внести изменения в код и добавить любую другую мелодию. Для воспроизведения звука используется стандартная ардуиновская функция tone(), которая принимает три параметра - номер пина динамика, частоту ноты, длительность ноты. Номер пина - 3.

Номер выбранной мелодии записывается в EEPROM, так что отключение питания не представляет собой никакой угрозы для звонка.


Список радиоэлементов
Arduino Nano 3.0
Прикрепленные файлы:
    (2 Кб) (606 Кб)
Andii5 Опубликована: 21.02.2017 0 1


Вознаградить Я собрал 0 2

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

  • Техническая грамотность
Оценить Сбросить

Средний балл статьи: 3.6 Проголосовало: 2 чел.

Комментарии (4)
| Я собрал ( 0 ) | Подписаться

Для добавления Вашей сборки необходима регистрация

0


На форуме автоматически создана тема для обсуждения статьи. 0


Тема звёздных войн фальшивит. 0 Не открывается скетч скинь пожалуйста сам код 0

void playTone() long elapsed_time = 0;
if (toneM > 0) while (elapsed_time < duration) digitalWrite(speakerOut,HIGH);
delayMicroseconds(toneM / 2);
digitalWrite(speakerOut, LOW);
delayMicroseconds(toneM / 2);
elapsed_time += (toneM);
>
>
else for (int j = 0; j < rest_count; j++) delayMicroseconds(duration);
>
>
>

Музыкальный звонок с тайной кнопкой

Сегодня рассмотрим схему, представляющую собой дверной звонок (хотя применение может не ограничиваться этой сферой, просто основная задумка подразумевает именно дверной звонок). Но звонок не простой, а с возможностью проигрывать несколько различных аудио файлов в зависимости от нажатой кнопки. При этом одну из кнопок можно сделать тайной или спрятанной относительно основной кнопки дверного звонка. Идея такого финта заключается в том. что расположение спрятанной кнопки будут знать только друзья или родные и в случае необходимости попасть в дом будут нажимать именно эту кнопку, звонок проиграет аудио файл либо заведомо известный - выбранный для "своих", либо подаст голосовое оповещение как в данной статье, что пришли "свои". При этом основная кнопка звонка на двери спрятана не будет и любой почтальон или курьер или просто прохожий будет жать именно на нее. Раздастся звонок, оповещающий о том, что в дверь звонит незнакомец. Аналогично можно выбирать любой файл, удобный для Вас, либо просто использовать голосовой аудио файл о нахождении у двери незнакомца как в статье.

На создание этого устройства побудило именно то, что часто звонят в дверь часто из баловства или какие-нибудь свидетели чего-то там с целью промывки мозгов, поэтому, чтобы отвлекаться на открытие двери только для знакомых появилась задумка создать что-то типа кодового сигнала о том, что это именно пришли "свои", а не случайные посторонние.

Схема электрическая принципиальная дверного звонка с тайной кнопкой представлена ниже:


Схема построена на микроконтроллере AVR ATmega8 и карте памяти micro SD. Микроконтроллер можно использовать в любом корпусе - DIP или TQFP. Для питания такой карты памяти необходимо напряжение 3,3 вольта. Основное питание схемы - 5 вольт. Источник напряжения может быть любой - например, можно применить небольшой силовой трансформатор и выпрямительные диоды, либо взять схему импульсного источника питания (да хоть просто взять старое зарядное устройство вольт на 7,5). Напряжение стабилизируется микросхемой L7805 до 5 вольт постоянного тока. Данную микросхему линейного стабилизатора напряжения можно заменить на отечественные аналоги, например КР142ЕН5А или заменить на LM317, слегка подправив включение в схему, либо опять же можно заменить импульсным стабилизатором напряжения на микросхемах MC34063 или LM2576. Это питание основной схемы. Для нормальной работы карты памяти напряжение 3,3 вольта получаем при помощи стабилитрона на 3,3 вольта. Резистор R5 ограничивает ток, протекающий через стабилитрон. Потребление карты памяти очень не большое, поэтому применение стабилитрона себя оправдывает и хорошо справляется с поставленной задачей. Конденсаторы в обвязке линейного стабилизатора и параметрического стабилизатора (на стабилитроне) фильтруют помехи, возможно возникающие в цепях питания этой схемы. Конденсаторы C2 и С4 в обвязке микроконтроллера выполняют ту же функцию. Карта памяти соединяется с микроконтроллером по интерфейсу SPI. но так как питание у них различное по напряжению, то необходимо применить преобразователь уровней. В схеме используется самый простой вариант на резисторах R5, R6, R7, R8, R10, R11. Попарно они образуют по большому счету делители напряжения сигналов от микроконтроллера.

Звуковой сигнал формируется ШИМ'ом в контроллере, однако уровень громкости не всегда годится, поэтому используется усилитель на двух транзисторах Т1 и Т2. L2 и C13 образуют высокочастотный фильтр, чтобы убрать помехи, конденсатор C12 ограничивает ток, проходящий через динамик. Динамик можно использовать любой, подходящий по размеру и мощности. Транзисторы усилителя можно также использовать любые в зависимости от мощности динамика - на маленькие динамики можно брать транзисторы малой мощности, динамики от нескольких ватт нужно использовать с транзисторами средней мощности или больше. Резистор R3, подключенный к выводу reset микроконтроллера предотвращает самопроизвольный перезапуск микроконтроллера в случаях наводок или других помех. Резисторы R1 и R2 ограничивают ток, проходящий через светодиоды в пределах нормального, они необходимы для предотвращения порчи светодиодов. Все резисторы в схеме постоянного сопротивления мощность 0,25 Вт. Номиналы резисторов можно варьировать в разумных пределах. Аналогично в разумных пределах можно заменять номиналы конденсаторов. Так как схема собиралась для демонстрации на макетной плате в качестве кнопок были использованы тактовые кнопки. Но в повседневной жизни для такого устройства их использовать не удобно скорее всего, поэтому одну из тактовых кнопок, выбранную для общего звонка для незнакомцев можно заменить на стандартную клавишу дверного звонка, а снизу ее или сбоку, в общем в удобном месте сделать небольшое отверстие и внутри основной кнопки звонка расположить небольшую тактовую кнопку, слегка выпирающую наружу. При этом ее расположение должно учитывать удобность доступа для "своих".

Вот так готовая схема (за исключением применения стандартной клавиши дверного звонка) выглядит на макетной плате:



Работает данная схема следующим образом. Само собой нужно подать напряжение питания на схему. После внутрисхемной прошивки микроконтроллера устройство не нуждается в настройке и наладке. Нужно записать на карту памяти необходимые аудио файлы и при нажатии одной из четырех кнопок прозвучит одна из четырех мелодий. При нажатии кнопок S3 и S4 во время проигрывания аудио файла будут загораться светодиоды LED1 или LED2 в зависимости от нажатой кнопки. Кнопки S1 и S2 не дублируются светодиодами. Данный функционал можно использовать в любых своих целях, например, световая индикация звонка в дверь или что-то другое. Динамик применяется любой, подходящий для Вас.

Чтобы верно прошить микроконтроллер, необходимо знать конфигурацию фьюз битов (микроконтроллер работает от внутреннего генератора на 8 МГц):


Микроконтроллер программировался в AVR Studio программатором AVRdoper (STK500) (перепрошивается USBasp соответствующей прошивкой и получаем AVRdoper).

Также немало важно знать конфигурацию параметров аудио файлов данного устройства: файлы аудио с разрешением *.WAV, параметры аудио - 8 bit, mono, 44 khz. Названия файлов должны быть такими: "1zv.WAV", "2zv.WAV" , "3zv.WAV" , "4zv.WAV" для каждой из кнопок. Первый аудио файл для четвертой кнопки, второй аудио файл для третьей кнопки и так далее. Немного нумерация наоборот, но думаю, это не проблема, просто нужно это знать. О методах создания собственных голосовых аудио файлов можно узнать в этой статье.

Напоследок привожу рисунок конфигурации выводов флеш карт с адаптером и без него:


К статье прилагается прошивка для микроконтроллера ATmega8, архив с исходным кодом для устройства, архив с аудио файлами, проект протеус, а также небольшое видео, демонстрирующее работу дверного звонка.

Электронный замок своими руками


Данный проект является модульным, т.е. можно подключать/отключать разные элементы и получить разную функциональность. На картинках выше показан вариант с полной функциональность, а именно:

  • Запирающий механизм. Служит для ОТКРЫТИЯ и ЗАКРЫТИЯ двери. В этом проекте рассмотрено использование трёх разных механизмов:
    • Сервопривод. Бывают большие, бывают маленькие. Очень компактный, и вкупе с тяжёлым засовом – отличный вариант
    • Электропривод замка дверей автомобиля. Большая и мощная штука, но жрёт просто безумные токи
    • Соленоидная щеколда. Хороший вариант, так как сама захлопывается

    В настройках прошивки можно выбрать любой из трёх типов (настройка lock_type)

    • Тактовая кнопка
    • Датчик холла + магнит на самой двери
    • Геркон + магнит на самой двери
    • Горит зелёный — замок ОТКРЫТ. Горит чтобы не забыть закрыть дверь
    • Горит жёлтый — система проснулась и ожидает ввод пароля
    • Мигает красный — сел аккумулятор

    Любой из этих элементов можно исключить из системы:

    • Убираем концевик. В прошивке в настройках тоже его отключаем (настройка tail_button). Теперь чтобы закрыть замок, нужно нажимать кнопку
    • Убираем наружную кнопку. В прошивке в настройках тоже её отключаем (настройка wake_button). Теперь систему не нужно будить, она просыпается сама (потребление энергии чуть больше). А также у нас теперь нет кнопки закрыть на передней части двери, и нужен концевик. Либо замок – щеколда
    • Убираем внутреннюю кнопку. Этот вариант годится для шкафов и сейфов. В настройках ничего менять не нужно
    • Убираем светодиод. В настройках ничего менять не нужно
    • Кнопку сброса доступа можно отпаять после первого использования, либо переписать код под себя

    Версия с кнопкой

    • Дверь закрыта, нажато СНАРУЖИ — проснуться, ждать ввод пароля/RFID метку/электронный ключ/отпечаток пальца
    • Дверь закрыта, система проснулась, ждёт ввод пароля. Время можно настроить (настройка sleep_time)
    • Дверь закрыта, введён пароль/метка/ключ и т.д. — открыть
    • Дверь закрыта, нажато ВНУТРИ — открыть
    • Дверь открыта, нажато СНАРУЖИ — закрыть
    • Дверь открыта, нажато ВНУТРИ — закрыть
    • Дверь открыта, нажат КОНЦЕВИК — закрыть

    В замке предусмотрена работа от аккумулятора в режиме пониженного энергосбережения (включить выключить: настройка sleep_enable), а именно:

    • Просыпаться каждые несколько секунд, следить за СОБЫТИЕМ (опциональный вариант, если снаружи нет кнопки. Включить можно в настройке wake_button)
    • Каждые несколько минут следить за напряжением акума (вкл/выкл настройка battery_monitor)
    • Если акум разряжен (напряжение устанавливается в настройке bat_low):
      • открыть дверь (опционально, можно настроить в прошивке open_bat_low)
      • запретить дальнейшее открытие и закрытие
      • при нажатии на кнопки мигать красным светодиодом
      • перестать следить за СОБЫТИЕМ (т.е. ввод пароля/метка и т.д.)

      Версия с клавиатурой

      Когда система не спит, нажать кнопку смены пароля (скрытая кнопка). Попадаем в режим смены пароля:
      Вводим пароль из цифр (МАКСИМУМ 10 ЦИФР. )

      Когда система не спит (проснулись по кнопки или сон отключен), нажать * для входа в режим ввода пароля
      Если система спит и периодически просыпается проверять СОБЫТИЕ, то нажимаем * и удерживаем, пока не загорится красный светодиод
      Режим ввода пароля:

      Читайте также: