Arduino готовые проекты. Умный дом на базе Ардуино: пошаговая инструкция по сборке

Что такое цифровая драм-машина или иначе бит-машина слышали наверное все. Совсем другое дело электромеханическая драм-машина, созданая норвежским композитором Koka Nikoladze. В ней звук формируется за счет механического воздействия. Машинка работает под управлением Arduino, который позволяет запрограммировать мелодию для исполнения.

Вы слышали про Arduino и вам хочется поскорее разобраться с ней, чтобы сделать свое устройство, робота или что там еще придумали. Помигать светодиодом вы сможете уже в первый вечер, но на создание более сложного гаджета уйдет куда больше времени. Впереди долгие недели и даже месяцы изучения программирования на C, поиск совместимых библиотек и модулей, костылей и превозмогания трудностей. Как ускорить процесс? Начните с Arduino совместимой платы, которую можно программировать на JavaScript.

Оригинал статьи на английском http://www.bunniestudios.com/blog/?p=2407

На фотографии готовые печатные платы для Leonardo

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

Arduino, самодельная перчатка с 5-тью зашитыми датчиками изгиба, 5 сервоприводов HITEC HS-81 и механическая рука. Как все это работает можно посмотреть на видео. Arduino cчитывает данные с датчиков изгиба и управляет сервомоторчиками так, чтобы механическая рука повторяла движения кисти человека. Кстати, в первом видео автор использует готовый набор механики руки, который можно купить на ebay, правда без электронных компонентов и приводов. В другом проекте автор сделал подобную руку из подручных материалов.

В этом проекте автор покажет, как можно подключить полноцветную светодиодную матрицу 8x8 к Arduino. Сама матрица имеет 32 входа: 8 анодов, 8 катодов красного цвета, 8 зеленого и 8 синего. При этом для управления матрицей будут задействованы всего 3 выхода на Arduino. Никакой магии тут нет, а есть 4 сдвиговых регистра 74HC595.

Более подробно об использовании 74HC59 с Arduino можно почитать в инструкции Использование сдвигового регистра 74HC595 для увеличения количества выходов .

Один регистр дает нам 8 выходов, так как у нашей матрицы 32 входа, в проекте использована техника каскадирования сдвиговых регистров. Нам понадобится 4 регистра 74HC59, при этом количество подключений к Arduino не изменится и будут задействованы 3 выхода на Arduino. для управления. Питание осуществляется по USB, но можно подключить и автономное.

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

Cтрого говоря, Arduino будет управлять не затвором камеры, а фотовспышкой. К сожалению, задержка реакции камеры на сигнал — в районе 20 миллисекунд, что для человеческого глаза не заметно, но все же дольше, чем можно себе позволить при съемке лопнувшего шарика. Поэтому съемка производится в темной комнате с выдержкой 10 секунд, а вот вспышка срабатывает именно в нужный момент. Так как в комнате практически нет освещения, то всё экспонирование фотографии произойдет именно в момент работы вспышки (около 1 миллисекунды).


Собрали лучшие и даже сумасшедшие Arduino-проекты, которые мы встретили в 2015 году.

Arduino Wake-Up Machine

Взлом кодовых замков с помощью Arduino

Этот механизм, управляемый Arduino, может открыть любой кодовый замок менее чем за 30 секунд. Проект хакера Samy Kamkar продемонстрировал уязвимость.

Робот, сортирующий Skittles

Проект распечатанного на 3D-принтере Arduino-робота, который поможет сэкономить время, необходимое на сортировку Skittles. Возможно, самое большое разочарование, что механизм не универсален и подходит для M&M’s. Видео и более подробное описание

Protopiper — гаджет для прототипирования

Удивительный гаджет для прототипирования. Устали бегать с рулеткой? Обладая этим устройством, вы можете быстро набросать эскиз размером с комнату.

Open Source снегоуборщик

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

Бластер для переключения музыки

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

Придай своим волосам больше возможностей

Незаметно отправлять сообщения, запускать приложения, транслировать свое место положение — все это можно делать аккуратно поглаживая свои волосы — это так естественно для девушек.

Вяжи с Arduino

Чтобы вязать необязательно обращаться к бабушке или покупать профессиональное оборудование. Сделай сам робота, который вяжет, используя Arduino.

Робот BB-8 на Arduino

Проект для тех, кто мечтает сделать робота BB-8 из Звездных Войн.

О’кей Google, Сезам, открой дверь

В это проекте студент MIT реализовал открывание двери с помощью голосовой команды Google Now. Чтобы попасть в дом, нужно просто сказать: «Сезам, откройся». Видео и описание проекта .

Печатная машинка, играющая симфонию

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

Робот AT-AT

Управляемый робот AT-AT из Звездных Войн.

Робот T-800 из Терминатора

В мире очень много поклонников фильма «Терминатор», но немногие воссоздали робота T-800. Подробнее почитать о проекте и посмотреть видео можно .

Робот миньон из яйца от Kinder-сюрприза

Веселый самодельный робот, которого можно сделать самому. Подробнее оп проекте .

Управление телевизором силой мысли

Пульт от телевизора больше не нужен. Все что нужно сделать — это подумать о смене канала. В проекте использован чип из игры Star Wars Force Trainer (Звездные войны), выпущенной в 2009 году. Подробнее .

Arduino - это маленькое электронное устройство, состоящее из одной печатной платы, которое способно управлять разными датчиками, электродвигателями, освещением, передавать и принимать данные… Arduino - это целое семейство устройств разных размеров и возможностей. А также это целый зоопарк клонов Ардуино и мир ардуино-совместимых устройств. Но давайте обо всём по порядку.

1 «Мозг» Arduino

«Мозг» Arduino - это микроконтроллер семейства Atmega . Микроконтроллер представляет из себя микропроцессор с памятью и различными периферийными устройствами, реализованный на одной микросхеме. Фактически это однокристальный микрокомпьютер, который способен выполнять относительно простые задачи. Разные модели из семейства Arduino оснащены разными микроконтроллерами.

Atmega328 - мозг Arduino UNO

На фото микроконтроллер Atmega328 . Такие микроконтроллеры стоят на Arduino UNO и Arduino Nano (но в другом корпусе).

2 «Руки» Arduino

Но какой толк от мозга, если он не имеет рук? Руками в данном случае служат электрические выводы , размещённые по периметру платы Arduino. Есть платы с большим количеством выводов, есть с меньшим. Например, самая большая плата в семействе Ардуино - Arduino Mega - имеет более 70 независимых выводов, а самая маленькая - Arduino Pro Mini - всего 22 вывода.


На фотографии показаны в сравнении Arduino Mega и Arduino Pro Mini. Представляете, что мог бы делать человек, имея столько рук, сколько Arduino Mega - выводов?

3 Цифровые и аналоговые выводы

Не все выводы у Arduino одинаковые. Есть выводы цифровые , а есть аналоговые . Принципиальная разница между ними в том, что на цифровых выводах может быть только два значения: либо логическая "1" (TRUE, от 3 до 5 вольт), либо логический "0" (FALSE, от 0 до 1,5 вольт), а на аналоговых выводах диапазон от логической "1" до "0" поделён на множество мелких участков.

Зачем это нужно? Давайте рассмотрим такой наглядный пример. Если подключить к цифровому выводу Arduino светодиод и подать на вывод логическую "1", то светодиод загорится с максимальной яркостью; если подать "0" - светодиод погаснет. Никаких промежуточных вариантов нет. Если светодиод подключить к аналоговому выводу, то яркостью светодиода можно управлять плавно. На практике к аналоговым выводам чаще всего подключаются какие-либо аналоговые датчики.

4 Чем может управлять Arduino

В итоге такое количество «рук» у Arduino позволяет подключать к нему огромное количество различных периферийных устройств. Среди них, например:

  • кнопки, герконы и джойстики,
  • светодиоды и фотодиоды,
  • микрофоны и динамики,
  • электродвигатели и сервоприводы,
  • ЖК дисплеи,
  • считыватели радиометок (RFID и NFC),
  • bluetooth, WiFi и Ethernet модули,
  • считыватели SD карт,
  • радиоприёмники и радиопередатчики,
  • GPS и GSM модули…

А также десятки различных датчиков:

  • освещённости,
  • магнитного поля,
  • ультразвуковые и лазерные дальномеры,
  • гироскопы и акселерометры,
  • датчики дыма и состава воздуха,
  • датчики давления, температуры и влажности…

И ещё многое, многое другое

Всё это превращает Arduino в универсальное ядро системы, которое может быть сконфигурировано совершенно разнообразными способами. Хотите сделать радиоуправляемую кормушку для питомца? Пожалуйста! Хотите чтобы при начале дождя у вас на лоджии закрывалось окно? Пожалуйста! Хотите управлять яркостью освещения в комнате со смартфона? Запросто! Хотите получать уведомления на e-mail, если почва комнатных растений стала слишком сухой? И это можно!


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

5 Общение с Arduino

Как же процессор узнаёт, что именно ему следует делать? Вы должны рассказать ему это. Написание сообщений для Arduino называется программирование . Существует язык для общения с микроконтроллером, упрощённый и адаптированный специально для Arduino. Освоить этот язык совсем не сложно при желании и определённой настойчивости, даже если вы никогда раньше не программировали.

И для упрощения этого процесса разработана специальная программная среда - Arduino IDE . В её состав включены десятки примеров хороших, работающих программ. Изучив их, вы очень быстро многое узнаете о языке общения с Arduino.

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

Вы можете заказать Arduino и множество разнообразных датчиков для него в китайском онлайн-магазине Али-Экспресс . Здесь цены ниже, но доставка занимает время от 3 недель до 1,5 месяцев. Можно заказать Arduino в магазине электроники Voltiq.ru . Здесь цены чуть выше, чем в китайских интернет-магазинах, но не придётся ждать целый месяц. Ещё один хороший магазин электроники и робототехники - FastNVR.ru .

Ну и напоследок, посмотрите, какие разные и замечательные проекты можно воплотить с помощью Ардуино!

Arduino - это универсальная платформа для самоделок на микроконтроллерах. К ней есть множество шилдов (плат расширения) и датчиков. Это многообразие позволяет сделать целый ряд интересных проектов, направленных на улучшение вашей жизни и повышение её комфорта. Сферы применения платы безграничны: автоматизация, системы безопасности, системы для сбора и анализа данных и прочее.

Из этой статьи вы узнаете, что можно сделать интересного на Ардуино. Какие проекты станут зрелищными, а какие полезными.

Что можно сделать с помощью Arduino

Робот пылесос

Уборка в квартире - рутинное занятие и малопривлекательное, тем более на это нужно время. Сэкономить его можно, если часть хлопот по дому возложить на робота. Этого робота собрал электронщик из г. Сочи - Дмитрий Иванов. Конструктивно он получился достаточно качественным и не уступает в эффективности .

Для его сборки вам понадобятся:

1. Arduino Pro-mini, или любая другая подобная и подходящая по размерам...

2. USB-TTL переходник, если вы используете Pro mini. Если вы выбрали Arduino Nano, то он не нужен. Он уже установлен на плате.

3. Драйвер L298N нужен для управления и реверсирования двигателей постоянного тока.

4. Маленькие двигателя с редуктором и колесами.

5. 6 ИК-датчиков.

6. Двигатель для турбины (побольше).

7. Сама турбина, а вернее крыльчатка от пылесоса.

8. Двигателя для щеток (небольшие).

9. 2 датчика столкновения.

10. 4 аккумулятора 18650.

11. 2 преобразователя постоянного напряжения (повышающий и понижающий).

13. Контроллер для работы (заряда и разряда) аккумуляторов.

Система управления выглядит следующим образом:

А вот система питания:

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

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

Вы можете сделать своими руками RGB-контроллер на Ардуино, даже более того, в этом проекте реализовано управление через Bluetooth.

На фото приведен пример использования одного RGB-светодиода. Для управления лентой потребуется дополнительный блок питания на 12В, тогда будут управлять затворами полевых транзисторов включенных в цепь. Ток заряда затвора ограничен резисторами на 10 кОм, они устанавливаются между пином Ардуино и затвором, последовательно ему.

Пульт управления на базе Arduino и смартфона

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

Для этого понадобится:

    Arduino любой модели;

    ИК-приемник TSOP1138;

    ИК-светодиод;

    Bluetooth-модуль HC-06.

Проект может считывать коды с заводских пультов и сохранять их значения. После чего вы можете управлять этой самоделкой через Bluetooth.

Веб-камера устанавливается на поворотный механизм. Её подключают к компьютеру, с установленным программным обеспечением. Оно базируется на библиотеке компьютерного зрения - OpenCV (Open Source Computer Vision Library), после обнаружения программой лица, координаты его перемещения передаются через USB-кабель.

Ардуино даёт команду приводу поворотного механизма и позиционирует объектив камеры. Для движения камеры используется пара сервоприводов.

На видео изображена работа этого устройства.

Следите за своими животными!

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

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

Ниже приведена схема оригинального варианта устройства.

В оригинальной версии проекта использовалась плата TinyDuino и шилды к ней. Если вы не можете найти такую, вполне можно использовать маленькие экземпляры Arduino: mini, micro, nano.

Для питания использовался элемент Li-ion, малой ёмкости. Маленького аккумулятора хватает примерно на 6 часов работы. У автора в итоге все поместилось в обрезанную баночку из-под тик-така. Стоит отметить, что антенна GPS должна смотреть вверх, чтобы получать достоверные показания датчика.

Взломщик кодовых замков

Для взлома кодовых замков с помощью Ардуино понадобятся серво- и шаговый двигатель. Этот проект разработал хакер Samy Kamkar. Это достаточно сложный проект. Работа этого устройства изображена на видео, где автор рассказывает все подробности.

Конечно, для практического применения такое устройство вряд ли подойдет, но это отличный демонстрационный.

Ардуино в музыке

Это скорее не проект, а небольшая демонстрация какое применение нашла эта платформа у музыкантов.

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

Номиналы деталей:

    Транзистор NPN-типа, например 2n3904 - 1 шт.

    Резистор 1 кОм (R2, R4, R5) - 3 шт.

    330 Ом (R6) - 1 шт.

    10 кОм (R1) - 1 шт.

    100 кОм (R3) - 1 шт.

    Электролитический конденсатор 3.3 мкФ - 1 шт.

Для работы проекта потребуется подключение библиотеки для быстрого разложения в ряд Фурье.

Это достаточно простой и интересный проект из разряда «можно похвастаться перед друзьями».

3 проекта роботов

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

BEAM-робот на Ардуино

Для сборки четырёхногого шагающего робота вам понадобятся:

    Для движения ног нужны сервомоторчики, например, Tower Hobbies TS-53;

    Кусок медной проволоки средней толщины (чтобы выдерживала вес конструкции и не гнулась, но и не слишком толстой, т.к. не имеет смысла);

    Микроконтроллер - AVR ATMega 8 или плата Ардуино любой модели;

    Для шасси в проекте указано, что использовалась Рамка Sintra. Это что-то вроде пластика, он сгибается в любую форму при нагревании.

В результате вы получите:

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

Этот проект мне, почему-то, напомнил робота из мультфильма Wall-e. Его особенностью является использование для зарядки аккумуляторов. Он перемещается подобно автомобилю, на 4-х колесах.

Его составляющие детали:

    Пластиковая бутылка подходящего размера;

  • Перемычки мама-папа;

    Солнечная панель с выходным напряжением в 6В;

    В качестве донора колес, двигателей и других деталей - машинка на радиоуправлении;

    Два сервопривода непрерывного вращения;

    Два обычных сервопривода (180 градусов);

    Держатель для батареек типа АА и для «кроны»;

    Датчик столкновений;

    Светодиоды, фоторезисторы, постоянные резисторы на 10 кОм - всего по 4 штуки;

    Диод 1n4001.

Вот основа - плата Ардуино с прото-шилдом.

Вот так выглядят запчасти от - колеса.

Конструкция почти в сборе, датчики установлены.

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

Это скорее ЧПУ станок, чем робот, но проект весьма занимательный. Он представляет собой 2-х осевой станок для рисования. Вот перечень основных компонентов, из которых он состоит:

    (DVD)CD-приводы - 2 шт;

    2 драйвера для шаговых двигателей A498;

    сервопривод MG90S;

    Ардуино Уно;

    Источник питания 12В;

    Шариковая ручка, и другие элементы конструкции.

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

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

Полный процесс сборки и работы показан на этом видео.

Заключение

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

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

Что такое «умный дом»

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


Система «умный дом» от Arduino представляет собой комплект оборудования для управления работой различных устройств с помощью мобильного телефона на базе ОС Android

В любой системе «умный дом» можно выделить следующие составляющие:


Современные системы «умный дом» делятся на несколько разновидностей:

  1. Оснащённые собственным контроллером.
  2. Использующие в этом качестве процессор пользовательского компьютера (планшета, смартфона).
  3. Обрабатывающие информацию при помощи удалённого сервера, принадлежащего компании-разработчику (облачный сервис).

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

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

Знакомимся с Arduino

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

Набор Arduino Uno содержит необходимые компоненты для реализации устройств, описанных в прилагаемой книге

Такой подход обеспечил высокую популярность системам итальянской компании, но у него есть и недостаток: из-за того что за производство компонентов для Arduino-систем берутся, так сказать, все кому не лень, не всегда удаётся с первого раза приобрести качественное изделие. Зачастую приходится сталкиваться и с проблемой совместимости компонентов от разных производителей.

Потенциальному пользователю следует знать, что с 2008 года существуют две компании, выпускающие продукцию под торговой маркой Arduino. У первой, которая начинала это направление, официальный сайт размещён по адресу www.arduino.cc ; у второй, новообразовавшейся - по адресу www.arduino.org . То, что было разработано до раскола, на обоих сайтах представлено одинаково, а вот ассортимент новой продукции уже отличается.

ПО для систем «умный дом» Arduino имеет вид программной оболочки (называется IDE), в которой можно писать и компилировать программы. Распространяется бесплатно. Программы пишутся на языке C++.

Версии программы Arduino IDE, представленные на указанных сайтах, тоже сильно отличаются, хотя имеют одинаковые не только название, но и номера версий. Из-за этого в них довольно легко запутаться. Отличие состоит в том, что каждое ПО поддерживает свои библиотеки и платы.

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


На процессорную плату можно устанавливать специальные расширения (шилды), которые увеличивают функциональность системы

Преимущества системы Arduino

Этот аппаратно-программный комплекс привлекает пользователя такими достоинствами:

  • возможность автономной работы, обусловленная наличием собственного контроллера;
  • широкие возможности по настройке работы системы (пользователь сам пишет программу, в которой могут быть предусмотрены сценарии любой сложности);
  • простота процесса загрузки программы в контроллер: программатор для этого не требуется, достаточно иметь USB-кабель (в микроконтроллере имеется прошивка загрузчика Bootloader);
  • доступная стоимость компонентов, обусловленная отсутствием у того или иного производителя монопольных прав (архитектура является открытой).

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

В программе Arduino IDE, представленной на сайте arduino.cc, заложена возможность создания пользовательских аппаратно-программных платформ, в то время как в версии программы на arduino.org такая функция отсутствует.

Какие решения предлагает Arduino

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


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


Стартовый набор системы Arduino включает в себя процессорную плату и несколько наиболее часто используемых устройств

Исполнительная часть содержит огромный набор устройств, например:

  • электромоторы;
  • реле и различные переключатели;
  • диммеры (позволяют плавно менять интенсивность освещения);
  • доводчики дверей;
  • вентили и 3-ходовые клапаны с сервоприводами.

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

Видео: начинаем работать с Arduino - управляем светодиодом через web-интерфейс

Составление проекта на Arduino

Процесс создания и настройки «умного дома» Arduino покажем на примере системы, в которую будут заложены следующие функции:

  • мониторинг температуры на улице и в помещении;
  • отслеживание состояния окна (открыто/закрыто);
  • мониторинг погодных условий (ясно/дождь);
  • генерация звукового сигнала при срабатывании датчика движения, если активирована функция сигнализации.

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

Используемые сокращения:

  1. «GND» - заземление.
  2. «VCC» - питание.
  3. «PIR» - датчик движения.

Необходимые компоненты для изготовления системы «умного дома»

Для системы «умного дома» Arduino потребуется следующее:

  • микропроцессорная плата Arduino;
  • модуль Ethernet ENC28J60;
  • два температурных датчика марки DS18B20;
  • микрофон;
  • датчик дождя и снега;
  • датчик движения;
  • переключатель язычковый;
  • реле;
  • резистор сопротивлением 4,7 кОм;
  • кабель «витая пара»;
  • кабель Ethernet.

Стоимость всех компонентов составляет примерно 90 долларов.


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

Сборка «умного дома»: пошаговая инструкция

Вот в какой последовательности необходимо действовать.

Подключение исполнительных и сенсорных устройств

Подключаем все компоненты согласно схеме.


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

Разработка программного кода

Пользователь пишет всю программу целиком в оболочке Arduino IDE, для чего последняя оснащена текстовым редактором, менеджером проектов, компилятором, препроцессором и средствами для заливки программного кода в микропроцессор платы Arduino. Разработаны версии IDE для операционных систем Mac OS X, Windows и Linux. Язык программирования - С++ с некоторыми упрощениями. Пользовательские программы для Arduino принято называть скетчами (sketch) или набросками, программа IDE сохраняет их в файлы с расширением «.ino».

Функцию main(), которая в С++ является обязательной, оболочка IDE создаёт автоматически, прописывая в ней ряд стандартных действий. Пользователь должен написать функции setup() (выполняется единоразово во время старта) и loop() (выполняется в бесконечном цикле). Обе эти функции для Arduino являются обязательными.

Заголовочные файлы стандартных библиотек вставлять в программу не нужно - IDE делает это автоматически. К пользовательским библиотекам это не относится - они должны быть указаны.

Добавление библиотек в «Менеджер проекта» IDE осуществляется несколько необычным способом. В виде исходных текстов, написанных на С++, они добавляются в особую папку в рабочем каталоге оболочки IDE. После этого названия этих библиотек появятся в соответствующем меню IDE. Те, что отметит пользователь, будут внесены в список компиляции.

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

Вот пример самой простой программы, заставляющей каждые 2 секунды мигать подключённый к 13-му выводу платы светодиод:

void setup () { pinMode (13, OUTPUT); // Назначение 13 вывода Arduino выходом}

void loop () { digitalWrite (13, HIGH); // Включение 13 вывода, параметр вызова функции digitalWrite HIGH - признак высокого логического уровня

delay (1000); // Цикл задержки на 1000 мс - 1 секунду

digitalWrite (13, LOW); // Выключение 13 вывода, параметр вызова LOW - признак низкого логического уровня

delay (1000); // Цикл задержки на 1 секунду}

Однако в настоящий момент перед пользователем далеко не всегда встаёт необходимость лично писать программу: в сети выложено множество готовых библиотек и скетчей (загляните сюда: http://arduino.ru/Reference). Имеется готовая программа и для системы, рассматриваемой в этом примере. Её нужно загрузить, распаковать и импортировать в IDE. Текст программы снабжён комментариями, поясняющими принцип её работы.


Все программы на Arduino работают по одному принципу: пользователь посылает запрос процессору, а тот загружает необходимый код на экран компьютера или смартфона

Когда пользователь нажимает в браузере или установленном на смартфоне приложении кнопку «Refresh» (Обновление), микроконтроллер Arduino осуществляет отсылку данных этому клиенту. С каждой из страниц, обозначенных как «/tempin», «/tempout», «/rain», «/window», «/alarm», поступает программный код, который и отображается на экране.

Установка клиентского приложения на смартфон (для ОС Android)

Для получения данных от системы «умный дом» в сети можно скачать готовое приложение.

Вот что необходимо сделать владельцу гаджета:


С помощью этого приложения можно не только получать информацию от системы «умный дом», но и управлять ею - включать и отключать сигнализацию. Если она включена, то при срабатывании датчика движения приложению будет отправлено уведомление. Опрос системы Arduino на предмет срабатывания датчика движения приложение выполняет с периодичностью раз в минуту.

Активировав иконку «Настройки», можно отредактировать свой IP-адрес.

Настройка браузера на работу с «умным домом»

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

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

Работа с роутером


Настройка учётной записи на noip.com

Этот этап не является обязательным, но он необходим, если вы хотите присвоить адресу доменное имя. Для этого надо зарегистрироваться на сайте https://www.noip.com/ , перейти в раздел «Add host» и ввести IP-адрес системы.


После регистрации на сайте noip.com доступ к системе можно получать не только по IP-адресу, но и по полному доменному имени

Создание проекта завершено, можно проверять работоспособность системы.

Видео: умный дом на «Ардуино»

Особенности работы некоторых аппаратных средств Arduino

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

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

В отношении некоторых комплектующих для систем Arduino пользователи заметили следующее:

  1. Датчик температуры DHT11, поставляемый с базовым набором (StarterKit), даёт значительную погрешность в 2–3 градуса. В помещении рекомендуют применять температурный датчик DHT22, дающий более точные показания, а для установки на улицу - DHT21, способный работать при отрицательных температурах и имеющий защиту от механических повреждений.
  2. На некоторых микропроцессорных платах Arduino при замыкании подключённых к ним реле выходит из строя COM-порт. Из-за этого на микроконтроллер не удаётся загрузить скетч: как только начинается заливка, процессор перезагружается. Реле при этом щёлкает, COM-порт отключается и процесс загрузки скетча прекращается.
  3. Датчик закрытия окна/двери иногда преподносит сюрпризы в виде ложных срабатываний. С учётом этого скетч пишут так, чтобы система производила необходимое действие только по получении нескольких сигналов подряд.
  4. Для настройки управления процессами при помощи хлопков некоторые пользователи по неопытности вместо микрофона заказывают детектор звука с ручной настройкой порога. Для подобных целей этот компонент не подходит, так как имеет слишком малый радиус действия: хлопать приходится не далее 10 см от детектора. Кроме того, этот датчик передаёт сигналы импульсами малой продолжительности, так что при наличии большого скетча, на обработку которого уходит сравнительно много времени, микроконтроллер просто не успевает их зафиксировать.
  5. Для устройства противопожарной сигнализации следует использовать датчик дыма, а не датчик огня. Последний регистрирует пламя не далее 30 см от себя.
  6. На случай сбоя в работе микроконтроллера или ошибки в коде лучше применять нормально замкнутые реле с последовательно подключёнными ручными выключателями.

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

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