Как сделать пианино на ардуино
Перейти к содержимому

Как сделать пианино на ардуино

  • автор:

Пианино на Arduino с записью и воспроизведением звука

В этой статье мы рассмотрим создание на основе платы Arduino простого пианино, которое будет включать в себя 8 кнопок и зуммер. Для воспроизведения звука с помощью Arduino будет использоваться функция tone(). Чтобы сделать проект более интересным мы добавили в него функцию записи мелодии, которую вы сыграли. Записанную мелодию можно затем прослушать в любое время.

Внешний пианино на основе платы Arduino

Необходимые компоненты

  1. Плата Arduino Uno (купить на AliExpress).
  2. ЖК дисплей 16х2 (купить на AliExpress).
  3. Зуммер (Buzzer) (купить на AliExpress).
  4. Конденсатор точной настройки (Trimmer) 10k.
  5. Переключатель SPDT типа.
  6. Кнопки – 8 шт.
  7. Резисторы 10 кОм, 560 Ом, 1,5 кОм, 2,6 кОм, 3,9 кОм, 5,6 кОм, 6,8 кОм, 8,2 кОм, 10 кОм (купить на AliExpress).
  8. Макетная плата.
  9. Соединительные провода.

Работа схемы

Схема пианино на основе платы Arduino, сделанная для сборки на макетной плате представлена на следующем рисунке.

Схема пианино на основе платы Arduino, сделанная для сборки на макетной плате

Схема достаточно простая и ее без особых затруднений можно собрать на макетной плате. После сборки схемы на макетной плате у нее должна получиться примерно следующая конструкция:

Внешний вид собранного на макетной плате пианино

Номиналы резисторов в схеме слева направо: 10 кОм, 560 Ом, 1,5 кОм, 2,6 кОм, 3,9 кОм, 5,6 кОм, 6,8 кОм, 8,2 кОм, 10 кОм. Если у вас нет переключателя SPDT типа, то вы можете использовать обычный переключатель.

Принципиальная схема пианино на основе платы Arduino представлена на следующем рисунке.

Принципиальная схема пианино на основе платы Arduino

Одной из основных вещей, которые необходимо понять в этой схеме, является то, как мы соединили 8 кнопок к одному аналоговому контакту A0 платы Arduino. Обычно для подключения 8 кнопок используют 8 контактов платы Arduino, но в данном проекте мы не можем так сделать – у нас не хватит контактов поскольку необходимо подключать к плате Arduino еще и ЖК дисплей.

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

В представленной схеме на вход контакта АЦП (англ. ADC) будет подаваться напряжение +5V в случае когда кнопки не нажаты. При нажатии первой кнопки в цепь делителя напряжения будет включен резистор сопротивлением 560 Ом, а при нажатии второй кнопки — резистор сопротивлением 1,5 кОм. Соответственно, будет изменяться и напряжение, подаваемое на вход контакта АЦП (аналого-цифрового преобразователя). Аналогичный принцип используется и в делителе напряжения в проекте нашего пианино – только в нем 8 кнопок и 8 резисторов.

В представленной схеме пианино ЖК дисплей подключен к контактам 8, 9, 10, 11 и 12 платы Arduino. Зуммер подключен к контакту 7, а переключатель – к контакту 6 платы Arduino. Схема запитывается через USB кабель от компьютера, но также для этой цели можно использовать адаптер на 12 В или батарейку на 9 В.

Принципы работы функции Tone() в Arduino

Прежде чем рассматривать функцию Tone() сначала рассмотрим как работает пьезоэлектрический зуммер (Piezo Buzzer). По сути, это кристалл, который преобразует механические колебания в электрические или наоборот. В этом проекте мы используем переменный ток (частоту) под действием которой кристалл вибрирует и, таким образом, производит звук. То есть чтобы заставить пьезоэлектрический зуммер издавать какой-нибудь шум (звук), мы должны заставить его вибрировать, тон этого звука будет зависеть от того как быстро кристалл вибрирует. То есть тоном звука можно управлять с помощью частоты подаваемого на кристалл тока.

А каким образом мы можем получить переменную частоту в плате Arduino? И здесь как раз на помощь приходит функция tone (). Эта функция позволяет генерировать определенную частоту на заданном контакте. Можно регулировать и время генерации частоты если это необходимо. Синтаксис функции tone () выглядит следующим образом:

Синтаксис
tone(pin, frequency)
tone(pin, frequency, duration)
Параметры
pin: контакт, на котором необходимо генерировать частоту (тон)
frequency: частота тона в герцах — unsigned int
duration: продолжительность тона в миллисекундах (опционально) — unsigned long

В качестве pin может выступать любой цифровой контакт платы Arduino. Генерируемая частота зависит от размера таймера в вашей плате Arduino. Для Arduino Uno и других подобных ей плат минимальная частота звука составляет 31 Гц, а максимальная – 65535 Гц. Диапазон воспринимаемых ухом обычного человека частот значительно меньше.

Проигрывание мелодий пианино с помощью Arduino

Мы знаем что мы можем проигрывать различные звуки с помощью функции Tone() платы Arduino. Но каким образом проигрывать с помощью этой функции определенные музыкальные ноты? Для этой цели можно использовать, к примеру, специальную библиотеку под названием “pitches.h”, которую написал Brett Hagman. Эта библиотека содержит всю необходимую информацию о частотах, которые соответствуют каждой музыкальной ноте. В нашем предыдущем аналогичном музыкальном проекте (в нем вы можете более подробно прочитать об использовании данной библиотеки) мы использовали эту библиотеку для проигрывания таких мелодий как Pirates of Caribbean, Crazy Frog, Mario и даже titanic – и это звучало превосходно.

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

В этом проекте мы будем использовать следующие музыкальные ноты — C4, D4, E4, F4, G4, A4, B4 и C5.

Объяснение программы для Arduino

Полный код программы приведен в конце статьи, здесь же мы рассмотрим его наиболее важные фрагменты.

В нашей программе мы будем считывать аналоговое значение напряжения с контакта A0 чтобы определить какая кнопка была нажата и затем проигрывать мелодию, соответствующую этой кнопке. Также мы должны записывать какие кнопки нажимал пользователь и как долго он их нажимал чтобы потом можно было воспроизвести сыгранную пользователем музыку.

В программе сначала мы должны объявить 8 используемых нот. Соответствующие частоты для этих нот будут браться из файла pitches.h и затем будет формироваться массив как показано в следующем фрагменте кода. К примеру, из данного массива следует, что ноте C4 будет соответствовать частота 262 и т.д.

Arduino Tutorial : Mini Piano © GPL3+

In this video, I show you how to make a mini piano using Arduino.

  • 52,541 views
  • 9 comments
  • 50 respects

Components and supplies

Necessary tools and machines

About this project

Step 1: Parts and Material

components components

The Parts which we need are :

* Push Buttons — 7

Step 2: Connections

connections connections

The Buttons are connected to D4 to D10 of the Arduino

The Piezo Buzzer -> D11 of the Arduino

Step 3: The Code

Before you can start playing your piano, you will need to obtain and install the Tone Arduino library if it is not already installed. This can be downloaded from Github here. If you do not know how to install third-party Arduino libraries in your version of the Arduino IDE, reference this guide on Arduino.cc. Attached below, you will find a zip file that contains the Arduino code for Arduino Piano. Download it and unzip it somewhere on your computer. Open Arduino_Piano.ino in the Arduino IDE and upload the code to your Arduino.

And that’s it! You should now be able to tap on the keys and hear the corresponding notes played through the buzzer. If the note isn’t accurate, you can adjust the note value in the Arduino sketch to set what value that the pitch is achieved.You can also change the scale that is played by uncommenting one of the few scales included, or make your own scale! If you make your own piano, please comment and show us some pictures and videos. We’d love to see some creative instruments!

Give a thumbs up if it really helped you and do follow my channel for interesting projects 🙂

Thanks for reading!

Working of the Project

CodeArduino
Project Repo

Schematics

Connections

 dsc3885 awoqqth9hm

Comments

Please log in or sign up to comment.

Author
Rahul Khanna D
  • 14 projects
  • 196 followers
Published on
Members who respect this project

Profilepic 18519821 10210612391839040 7063500931368551327 n

Table of contents
Similar projects you might like

Electronic Piano Keyboard With Preset Songs

An electronic keyboard with 7 piano keys, programmed to Middle B/A/G/F/E/D/C, and an 8th button used to access a menu of preset songs.

Electronic Piano Keyboard With Preset Songs

Project tutorial by Lindsay Fox

  • 108,063 views
  • 77 comments
  • 231 respects

Unravel Preset Piano Easy Arduino (Even a Ghoul Can Make It)

This is an easy how-to make a mini-piano using Arduino, including a preset song!

Полностью автоматическое пианино на Arduino ⁠ ⁠

Оставив на некоторое время свой Arduino в чулане, Брэндон Свитцер решил вытащить его и начать экспериментировать. Он мог начать с малого, но пошел дальше и решил вместо этого создать свою собственную систему для проигрывания любых MIDI файлов на пианино.

Это обошлось Брэндону в 650$ (42 657 рублей)

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

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

Одной из моих целей при создании этого было показать, что можно копировать удивительные вещи за небольшие деньги, и я думаю, что доказал это. В то время как система проигрывателя от Yamaha или Pianodisc стоила более 10000 долларов, я построил свою собственную систему за жалкие 650 долларов. Более того, когда вы покупаете пианино за $ 10 000, вам нужно будет покупать дополнительные приложения и песни, если вы действительно хотите что-то на них играть. В целом, я очень доволен тем, как получилось пианино, и я рад использовать его в будущем.

1.2K постов 19.3K подписчиков

Правила сообщества

В нашем сообществе запрещается:

• Добавлять посты не относящиеся к тематике сообщества, либо не несущие какой-либо полезной нагрузки (флуд)

• Задавать очевидные вопросы в виде постов, не воспользовавшись перед этим поиском

• Выкладывать код прямо в посте — используйте для этого сервисы ideone.com, gist.github.com или схожие ресурсы (pastebin запрещен)

• Рассуждать на темы политики

Ну хз. Главный минус мы уже заметили, пианино нужно регулярно настраивать иначе оно вызывает четыреждыблядскую ярость!
Как учебный проект это прекрасно, но свершенно неутилитарно. Еще и щелкает).
Критикуя, предлагаю:))))
Покупаем холлы. Вешаем на каждую клавишу. Планшет уже есть. Теперь пускаем по планшету ноты. Если в нужное время нужную клавишу не нажал, пианино бьет током. Еще ведется журнал использования. Если суточная норма не выполнена, пайка еды урезается вдвое. ))

Настоящий кошачий концерт!

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

Мне от видео процесса сборки стало больно. Бредборды были придуманы для быстрого прототипирования. Делать проект на бредборде с такой кучей соединений. ну фиг знает. Мне кажется гораздо проще было бы развести печатную плату (тем более что там много типовых кусков то есть разводка платы по большей части была бы ctrl+c, ctrl-v), а потом заказать её на заводе.

Под этим видео товарищ, сделавший пианинку, писал, что обновил её, сделал соленоиды тише чуть улучшил код.
Но это видео никто не заметил
https://www.youtube.com/watch?v=vXbN-LINvxU

Захотел — сделал!) респект и уважуха)

Я сначала подумал что он делает съёмник нажатий, который ещё силу нажатия измеряет, но потом понял что просто играйку делает, при чём только двух позиционную, которая будет долбить. Хотя, мб, если подавать меньшую напругу или через шим — может медленнее будут идти клавиши, но это много мороки.

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

Просветите, какая композиция играет в видео

Что за модули, которые используются для нажатия?

Лучшие заказчики, топ 3⁠ ⁠

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

Лучшие заказчики, топ 3 Arduino, Электроника, Самоделки, Своими руками, Хобби, Работа, Длиннопост

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

Разные товарищи предлагают реализовать разные проекты. Обычно это ардуино(синоним — дешево) или что то вроде. Контроллеры и другие электронные устройства. Рассмотрим несколько примеров.

1.Да здесь знающему — все просто.
Обычно это достаточно сложный контроллер промышленного уровня. Заказчик что то придумал, собрал, сколотил, прикрутил. Датчики, герконы, кнопки, двигатели и все остальное. А вот работающую плату управления изготовить не вышло. Пора искать исполнителя. Задача усложняется размерами устройства и установкой где нибудь на производстве или в гараже. Плюсом как всегда отсутствие тех задания. Вот тебе железки, вот примерные хотелки — разберись.
Совсем недавно получил заманчивое предложение.

Лучшие заказчики, топ 3 Arduino, Электроника, Самоделки, Своими руками, Хобби, Работа, Длиннопост

Итого:
-нет внятного тех задания
-уже установлены моторы и прочая электроника
-необходимость работать на территории заказчика
-на самом деле все просто
На последнем пункте стоит прекратить обсуждение потенциального заказа.

2.Лень писать.
Любимый вариант. Полное отсутствие тех задания и желания описать хотя бы концепцию в виде текста. Такие товарищи любят говорить по телефону и записывать голосовые.

Лучшие заказчики, топ 3 Arduino, Электроника, Самоделки, Своими руками, Хобби, Работа, Длиннопост

Несколько раз пытался объяснить, что технические моменты лучше обсуждать в виде текста, так как потом проще разобраться и если что то пойдет не так — найти виновного. А в идеале, составление подробного тех задания. Не работает. Для таких, кажется, будет отдельный котел.
Вывод: сразу прекращать обсуждения, извиняться и отказываться от потенциального заказа.

3. Произвольная тема.
Действительно сложный заказ, на выполнение которого уйдет много времени. Моих знаний и опыта либо впритык, либо сильно недостаточно. Отсутствие тех задания. Тебе предлагают взять промышленный станок и заняться реверс инжинирингом исходной платы управления и изготовить что то похожее на современном микроконтроллере с современной элементарной базой. Добавить разные плюшки, вроде "совместимость с частотником, пультом и энкодерами". Уровень конечного продукта "промышленный". Станок скорее всего используется на производстве.

Лучшие заказчики, топ 3 Arduino, Электроника, Самоделки, Своими руками, Хобби, Работа, Длиннопост

При этом заказчик не представляет объем и сложность работ. Ищет исполнителя среди ардуинщиков. Претензий нет. Объясняю, что лучше поискать профессиональных разработчиков. Быть готовым заплатить в разы больше 70к за работу. Культурно отказываемся.

p.s. Умные дядьки объяснили, что на этом денег не заработать. Нужно искать что-то свое. Делать и продавать. Да и заказчики часто не понимают, за что платить? Здесь всего то нужно узнать все нюансы, придумать за них тех задание, придумать алгоритм, изготовить плату, написать программу и переделать, если что-то в течении испытаний пошло не так. А устройство требуется в единичном экземпляре. И последнее время, мне все чаще кажется, что они правы. Поэтому, извиняюсь перед теми, кто писал с предложениями и кому я толком ничего не ответил.

p.p.s. Не жалуюсь, но захотел поделиться. А вы можете накидать плюсОв или минусОв, от этого пост либо утонет, либо улетит в горячее. Спасибо тем, кто дочитал.

Делаем зеркало бесконечности внутри журнального столика Lack⁠ ⁠

Мы переделали икеевский столик в зеркальный со световым туннелем. Благодаря «шпионскому» зеркалу столик обладает иллюзией бесконечности 🕵️‍♀️ Управляется стол через WiFi при помощи микроконтроллера ESP-01

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

Информация изложена в двух видеороликах.

1️⃣В первом ролике на основном канале мы рассказываем о том как правильно выбрать зеркала и светодиодную ленту, как собрать стол и спаять электронную схему.

Второй ролик исключительно технический с занудными подробностями – залит на второй канал с занудными подробностями. В нем мы рассказали о прошивке микроконтроллера ESP-01 и о двух бесплатных программах WLED и LED FX:

⭐WLED открывает широкие возможности управления лентой. С ее помощью можно задавать эффекты свечения и цветовые схемы, переключать режимы в зависимости от времени или дня недели. Ленту можно разделить на сегменты и отдельно управлять каждым.

⭐LED FX помогает превратить стол из светового в светомузыкальный.

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

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

Делаем зеркало бесконечности внутри журнального столика Lack Электроника, Самоделки, Arduino, YouTube, Чип, Wled, Видео, Длиннопост

Делаем зеркало бесконечности внутри журнального столика Lack Электроника, Самоделки, Arduino, YouTube, Чип, Wled, Видео, Длиннопост

Вырезали крышку в столещнице и вынули оттуда всю труху. Оставили только бакулки в углах, в которые вкручиваются ножки.

Делаем зеркало бесконечности внутри журнального столика Lack Электроника, Самоделки, Arduino, YouTube, Чип, Wled, Видео, Длиннопост

Светодиодная лента может перегреться внутри столешницы. Чтобы такого не произошло – необходим алюминиевый профиль рассеивающий тепло. К профилю клеится LED-лента.

Делаем зеркало бесконечности внутри журнального столика Lack Электроника, Самоделки, Arduino, YouTube, Чип, Wled, Видео, Длиннопост

Делаем зеркало бесконечности внутри журнального столика Lack Электроника, Самоделки, Arduino, YouTube, Чип, Wled, Видео, Длиннопост

Профили вместе со светодиодной лентой приклеиваются к столешнице.

Делаем зеркало бесконечности внутри журнального столика Lack Электроника, Самоделки, Arduino, YouTube, Чип, Wled, Видео, Длиннопост

Схему мы паяли на макетной плате.

Делаем зеркало бесконечности внутри журнального столика Lack Электроника, Самоделки, Arduino, YouTube, Чип, Wled, Видео, Длиннопост

Делаем зеркало бесконечности внутри журнального столика Lack Электроника, Самоделки, Arduino, YouTube, Чип, Wled, Видео, Длиннопост

Убедимся что электроника работает как нужно.

Делаем зеркало бесконечности внутри журнального столика Lack Электроника, Самоделки, Arduino, YouTube, Чип, Wled, Видео, Длиннопост

Теперь вставляем зеркало.

Делаем зеркало бесконечности внутри журнального столика Lack Электроника, Самоделки, Arduino, YouTube, Чип, Wled, Видео, Длиннопост

Внутрь столешницы мы приклеили кристаллы дополнительно рассеивающие свет.

Делаем зеркало бесконечности внутри журнального столика Lack Электроника, Самоделки, Arduino, YouTube, Чип, Wled, Видео, Длиннопост

Рендер готового столика.

Делаем зеркало бесконечности внутри журнального столика Lack Электроника, Самоделки, Arduino, YouTube, Чип, Wled, Видео, Длиннопост

При полной яркости светодиодов фотографии получались пересвеченными, поэтому на фото светодиоды горят тускло. В реальности стол выглядит эффектнее.

Делаем зеркало бесконечности внутри журнального столика Lack Электроника, Самоделки, Arduino, YouTube, Чип, Wled, Видео, Длиннопост

Фото с добавлением боке.

Делаем зеркало бесконечности внутри журнального столика Lack Электроника, Самоделки, Arduino, YouTube, Чип, Wled, Видео, Длиннопост

Перечень компонентов

— esp-01 (можно заменить на ESP8266)

— блок питания 5вольт, 40ватт (я использовал Mean Well LPV-60-5. Благодаря малым габаритам -можно установить его внутрь столешницы)

— конвертер уровней 5в — 3,3в

— понижающий преобразователь напряжения 5в — 3,3в

— светодиодная лента WS2812B, класс защиты IP65 — 1,8 метра

— конденсатор 6,3в 1000мкф

— конденсатор 6,3в 470мкф

— резистор 100ом (точность и мощность любая)

— быстросъёмные разъемы для подсоединения ленты (желательно заменить на пайку, особенно если питаете большее число светодиодов)

— макетная плата 2х8см

— кабельный ввод для сетевого шнура PG7 (размер зависит от вашего шнура)

— сетевой шнур с вилкой

— провод сечением 0,75мм², меньшее сечение не желательно, большее можно. Чем больше — сечение провода, тем меньше просадка напряжения в нём.

Детали и материалы для сборки стола:

— профиль алюминиевый 40х20мм — 2 метра

— зеркало с титановым напылением (оно же зеркало Гезелла, оно же зеркало шпион) толщиной 6 или 8мм, с еврокромкой. Еврокромкой называют способ обработки граней стекла. Если шпионское зеркало достать сложно, то заменяем его на простое закалённое стекло. При желании закажите тонировку стекла. Подробности смотрите в PDF файле

— зеркальная плёнка самоклеящаяся (только если не нашли зеркало с титановым напылением)

— зеркало обычное, толщиной 4мм, со шлифовкой кромки

— искусственные кристаллы (по желанию)

— клей (прозрачный – для фиксации кристаллов)

— скотч двусторонний (прозрачный, тонкий)

Если вы хотите читать об анонсах новых проектов – подписывайтесь на telegram

Многофункциональные часы своими руками на ESP8266 и дисплее DWIN⁠ ⁠

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

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

Многофункциональные часы своими руками на ESP8266 и дисплее DWIN Arduino, Самоделки, Электрика, Видеоблог, Дисплей, Тачскрин, Видео, YouTube, Длиннопост, Часы, Умные часы

Для управления музыкой предусмотрена отдельная страница управления.

Многофункциональные часы своими руками на ESP8266 и дисплее DWIN Arduino, Самоделки, Электрика, Видеоблог, Дисплей, Тачскрин, Видео, YouTube, Длиннопост, Часы, Умные часы

Страница управления подсветкой позволяет изменять не только цвет светодиодов, но и цвет оформления интерфейса устройства.

Многофункциональные часы своими руками на ESP8266 и дисплее DWIN Arduino, Самоделки, Электрика, Видеоблог, Дисплей, Тачскрин, Видео, YouTube, Длиннопост, Часы, Умные часы

При выборе соответствующего цвета меняется цвет интерфейса на странице вывода времени и на странице управления музыкальными композициями.

Многофункциональные часы своими руками на ESP8266 и дисплее DWIN Arduino, Самоделки, Электрика, Видеоблог, Дисплей, Тачскрин, Видео, YouTube, Длиннопост, Часы, Умные часы

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

Многофункциональные часы своими руками на ESP8266 и дисплее DWIN Arduino, Самоделки, Электрика, Видеоблог, Дисплей, Тачскрин, Видео, YouTube, Длиннопост, Часы, Умные часы

Скачать исходные материалы проекта можно на моём сайте.

Многофункциональные часы своими руками на ESP8266 и дисплее DWIN Arduino, Самоделки, Электрика, Видеоблог, Дисплей, Тачскрин, Видео, YouTube, Длиннопост, Часы, Умные часы

Подробнее о розыгрыше читайте тут.

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

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

Датчик угарного газа с смс, но без регистрации на ардуино⁠ ⁠

Подписался собрать датчик напряжения в розетке с оповещением по смс. Добавить датчик угарного (и других) газа — моя инициатива. Вот что вышло.

Датчик угарного газа с смс, но без регистрации на ардуино Самоделки, Своими руками, Электроника, Хобби, Arduino, Автоматизация, Умный дом, Длиннопост

Но путь был тернист и труден) Причем на ровном месте — там где не ожидалось.

Из деталей понадобилось следующее:

-оригинальная зарядка apple

-gsm модуль sim800l

-АКБ и держатель

-датчик(показометр) газов mq-7

-немного того, немного другого

кривые прямые руки

-микроконтроллер atmega168, зря что-ли заказывал партию?

Датчик угарного газа с смс, но без регистрации на ардуино Самоделки, Своими руками, Электроника, Хобби, Arduino, Автоматизация, Умный дом, Длиннопост

Эта картинка вызывает почти детский восторг.

Устройство предназначается для котельной. Где судя по всему, критически важно не пропустить отключение электричества. Я же решил, что было бы неплохо знать, есть ли в воздухе условно плохие газы. Особенно коварен в этом плане угарный газ CO. Он без запаха и убивает довольно быстро.

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

Датчик угарного газа с смс, но без регистрации на ардуино Самоделки, Своими руками, Электроника, Хобби, Arduino, Автоматизация, Умный дом, Длиннопост

Ну или как то так. Схемы не будет, но опытный электронщик сможет задать мне пару неудобных вопросов) Ответы уже подготовлены.

Распечатал и перевел на кусок фольгированного стеклотекстолита.

Датчик угарного газа с смс, но без регистрации на ардуино Самоделки, Своими руками, Электроника, Хобби, Arduino, Автоматизация, Умный дом, Длиннопост

Вытравил в растворе персульфата аммония. Он съедает лишнюю медь.

Датчик угарного газа с смс, но без регистрации на ардуино Самоделки, Своими руками, Электроника, Хобби, Arduino, Автоматизация, Умный дом, Длиннопост

Немного перетравилось. Бывает.

Очистил остатки тонера ацетоном.

Датчик угарного газа с смс, но без регистрации на ардуино Самоделки, Своими руками, Электроника, Хобби, Arduino, Автоматизация, Умный дом, Длиннопост

Залудил. То есть покрыл медь сплавом олова и свинца.

Датчик угарного газа с смс, но без регистрации на ардуино Самоделки, Своими руками, Электроника, Хобби, Arduino, Автоматизация, Умный дом, Длиннопост

Просверлил отверстия и запаял детали. Магия монтажа. Не хватает картинки про сову.

Датчик угарного газа с смс, но без регистрации на ардуино Самоделки, Своими руками, Электроника, Хобби, Arduino, Автоматизация, Умный дом, Длиннопост

Казалось бы, победа близка.

А вот вид спереди.

Датчик угарного газа с смс, но без регистрации на ардуино Самоделки, Своими руками, Электроника, Хобби, Arduino, Автоматизация, Умный дом, Длиннопост

В этот раз решил все делать на разъемах. Всего их четыре. Для программатора, датчика газа, лампочки индикатора и 230 вольт. Вопрос к знатокам. Хватит ли данного аккумулятора для резервного питания и отправки смс при отключении электричества?

Осталось всего-то, проверить железо и запилить прошивку. Но все оказалось не так просто.

рукожоп туповат не сразу понимаю, в чем проблема

-uart не хочет адекватно работать на atmega168 при тактировании от встроенного источника. Кто бы знал? На 328 все работало

-моя паяльник, который я рекламировал, убивает транзисторы

-usb-ttl переходник на чипе ch340 не хочет адекватно прошивать atmega168 — ему подавай ft232

В режиме тестирования.

Датчик угарного газа с смс, но без регистрации на ардуино Самоделки, Своими руками, Электроника, Хобби, Arduino, Автоматизация, Умный дом, Длиннопост

Да, такой корпус. Постарался сделать все максимально аккуратно.

А логика работы простая. Если пропадает напряжение в сети, то контроллер засекает условно 5 секунд. Если напряжения по прежнему нет — отправляем смс хозяину и периодически включаем пищалку. Если датчик газа засекает незначительное превышение вредных газов — включаем более частое оповещение и отправляем смс. Если значительное — начинаем писать в спортлото заваливать смс или звонить звонками, и пищалка работает в режиме сирены.

Прошивка тестируется и еще может быть допилена. Но пока алгоритм примерно такой. Хочу добавить функцию калибровки датчика. К слову, при работе на стенде, отрабатывал он отлично. Даже замечал, если на него подышать. Молчу уже про зажигалку.

И вроде почти все. Фото красивые, устройство готово. На практике, я промучался много часов, пока не понял, что мой хваленый паяльник убивает компоненты и понял причину плохой работы uart. Вот она ложка дегтя в красивую плату.

Датчик угарного газа с смс, но без регистрации на ардуино Самоделки, Своими руками, Электроника, Хобби, Arduino, Автоматизация, Умный дом, Длиннопост

Если кто спросит, так и задумано. На надежность не влияет. Уже хотел переделывать плату, но обошлось малой кровью.

А вот корпус в сборе.

Датчик угарного газа с смс, но без регистрации на ардуино Самоделки, Своими руками, Электроника, Хобби, Arduino, Автоматизация, Умный дом, Длиннопост

Разъем uart, лампочка и датчик. Ничего лишнего. Размеры достаточно компактные.

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

Моя контакт телеги в профиле.

p.s. товарищи, помните. Ваши плюсы это замена словам «маладец» или «даешь больше авторских постов» и поднятие в горячее (если он там вообще будет). На рейтинг мне безразлично после появления возможности отключить рекламу. Спасибо тем, кто дочитал.

Копирование домофонных ключей mifare 1k⁠ ⁠

За последние пару месяцев собрал на заказ более 6 копировальщиков/снифферов. Ознакомиться можно по ссылке.
Казалось, что тема расписана вдоль и поперек (в том числе мной). Но у заказчиков по прежнему возникают детские вопросы. Попробую разжевать. Пост будет полезен тем, кто решил заняться копированием домофонных ключей, но тратить 30к+ на smkey не желает.

Копирование домофонных ключей mifare 1k Хобби, RFID, Инструкция, Своими руками, Домофон, Самоделки, Электроника, Arduino, Длиннопост

Речь пойдет о самых популярных mifare 1k, которые UID 4 байта.
Что нужно:
-телефон на андроид с приложением MCT
-сниффер/копировальщик mifare
-proxmark3
-заготовки

Нам принесли исходную метку и для начала нужно понять, что она из себя представляет.
Открываем приожение MCT, прикладываем и считываем TagInfo. Там увидим такую картинку.

Копирование домофонных ключей mifare 1k Хобби, RFID, Инструкция, Своими руками, Домофон, Самоделки, Электроника, Arduino, Длиннопост

Значит пациент наш. Далее попробуем прочитать метку со стандартными ключами этим же приложением.

Копирование домофонных ключей mifare 1k Хобби, RFID, Инструкция, Своими руками, Домофон, Самоделки, Электроника, Arduino, Длиннопост

Простой вариант, стандартные ключи. На скрине видно информацию, которая записана в сектор ноль. Он состоит из четырех блоков. Первые четыре байта нулевого блока — UID. Первые и последние шесть байт последнего блока — ключи А и Б. Между ними биты отвечающие за условия доступа. Подробнее читать здесь.
Если используются стандартные ключи как на скрине выше, то можно запросто считать, сохранить и записать на болванку этим же приложением. Можно использовать проксмарк или копировальщик/сниффер в режиме записи UID.
Возможно, что ключи будут стандартные, но другие. Можно встретить при попытке прочитать карту тройка. Впрочем, некоторые легко найти и дополнить словарь.
Приложение MCT пишет только на заготовки CUID, если нужно внести изменения в нулевой блок нулевого сектора. Для записи заготовок зеро используйте копировальщик или проксмарк. Последний умеет финализировать заготовки UFUID.

Средний вариант, нестандартные ключи. При попытке прочитать выдает такое.

Копирование домофонных ключей mifare 1k Хобби, RFID, Инструкция, Своими руками, Домофон, Самоделки, Электроника, Arduino, Длиннопост

Ну или как то так. Если просто скопировать UID, заготовка может не сработать. Нужно узнать ключ А нулевого сектора. Для этого можно включить проксмарк и попробовать атаки nested, hadrnested и darkside. Они позволяют получить ключи от секторов. Во многих случаях этого достаточно, чтобы сделать полный дамп ключа. Осталось записать на подходящую заготовку. Если считыватель (например iron logic) имеет фильтр, то стоит использовать cuid(mf3).

Сложный вариант, нестандартные ключи, атаки не работают. Достаем копировальщик/сниффер и отправляемся к домофону. Используем функцию захват криптоключа и забиваем их в приложение MCT. Считываем дамп и записываем на болванку CUID или CUID(MF3).
Домофоны вроде метаком со считывателем iron logic часто используют 14 сектор. Его тоже нужно скопировать.
Если 14 сектор не нужен и тот же метаком со старой прошивкой, можно использовать функцию "копирование сектора" или "запись на классик" на сниффере. В этом случае подойдут любые заготовки. Сравнить исходный и записанный ключ можно в приложении MCT. Вообще, рекомендую освоить его функционал — очень полезно.

Другой вариант, ключ не читается или TagInfo выдает что то другое. Попробуйте считать дамп приложением MCT, найдите подходящую заготовку и попробуйте записать. Но в этом случае, лучше использовать проксмарк как максимально функциональный инструмент. Но не факт, что у вас получится.
Возможно исходная метка низкочастотная em-marine. Можно опять же скопировать проксмарком или любым другим совместимым копировальщиком. Например.

Немного о копировальщике/сниффере.

Копирование домофонных ключей mifare 1k Хобби, RFID, Инструкция, Своими руками, Домофон, Самоделки, Электроника, Arduino, Длиннопост

Фнкционал:
-работа с mifare 1k 4 byte
-захват криптоключа(не все считыватели)
-запись на классик(работает с не самыми свежими метакомами, в том числе защищенные)
-запись uid(отличная функция для домофонов домру, beware и похожих — где авторизация по uid)
-копирование сектора целиком
-сброс испорченных заготовок zero и криптоколючей
-база меток(работает криво)
-эмуляция(работает криво)

Отлично дополняет приложение MCT и proxmark. Для простых ключей вполне самостоятельное устройство. Работает с андроид. Внешняя антенна нужна для перехвата и эмуляции.

Пост в том числе для определенных людей. Но в целом, информация будет полезна всем, кто не хочет покупать копировальщик по цене золотого слитка. И напротив, хочет разобраться — как оно работает. Получилось сумбурно. Если есть вопросы, пишите. В течении суток смогу дополнить информацию и ответить на интересующие вопросы. Все актуально для вполне серьезных СКУД работающих с тем же дырявым стандартом.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *