? ардуино проекты для начинающих

Модули и решения «умного дома» на Ардуино

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

Существует три основных микроконтроллера в системе:

Arduino UNO – средних размеров плата с собственным процессором и памятью. Основа — микроконтроллер ATmega328.  В наличии 14 цифровых входов/выходов (6 из них можно использовать как ШИМ выводы), 6 аналоговых входов, кварцевый резонатор 16 МГц, USB-порт (на некоторых платах USB-B), разъем для внутрисхемного программирования, кнопка RESET. Флэш-память – 32 Кб, оперативная память (SRAM) – 2 Кб, энергонезависимая память (EEPROM) – 1 Кб.

Arduino UNO

Arduino NANO – плата минимальных габаритов с микроконтроллером ATmega328. Отличие от UNO – компактность, за счет используемого типа контактных площадок – так называемого «гребня из ножек».

Arduino Nano

Arduino MEGA – больших размеров плата с микроконтроллером ATMega 2560. Тактовая частота 16 МГц (как и в UNO), цифровых пинов 54 вместо 14, а аналоговых 16, вместо 6. Флэш-память – 256 Кб, SRAM – 8 Кб, EEPROM – 4.

Arduino Mega

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

Сейчас на рынке представлено 3 поколение плат (R3) Ардуино. Обычно, при покупке платы, в комплект входит обучающий набор для собирания StarterKit, содержащий:

  1. Шаговый двигатель.
  2. Манипулятор управления.
  3. Электросхематическое реле SRD-05VDC-SL-C 5 В.
  4. Беспаечная плата для макета MB-102.
  5. Модуль с картой доступа и и двумя метками.
  6. Звуковой датчик LM393.
  7. Датчик с замером уровня жидкости.
  8. Два простейших устройства отображения цифровой информации.
  9. LCD-дисплей для вывода множества символов.
  10. LED-матрица ТС15-11GWA.
  11. Трехцветный RGB-модуль.
  12. Температурный датчик и измеритель влажности DHT11.
  13. Модуль риал тайм DS1302.
  14. Сервопривод SG-90.
  15. ИК-Пульт ДУ.
  16. Матрица клавиатуры на 16 кнопок.
  17. Микросхема 74HC595N сдвиговый регистр для получения дополнительных выходов.
  18. Основные небольшие компоненты электроники для составления схемы.

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

Сенсоры и датчики

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

Плата дополняется совместимыми датчиками движения или иными PIR-сенсорами, которые определяют присутствие или отсутствие человека в зоне действия, и привязывается через реле к освещению.

Датчик Arduino

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

Газовый датчик Arduino

Реле

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

Реле Arduino

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

Для более крупного проекта лучше применять шину реле, например, восьмиканальный модуль реле 5V.

Контроллер

В качестве контроллера выступает плата Arduino UNO. Для монтажа необходимо знать:

описание элементов;

распиновку платы;

принципиальную схему работы платы;

распиновку микроконтролеера ATMega 328.

Программная настройка

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

https://youtube.com/watch?v=OsXFswotVNI

Или воспользоваться готовым скетч решением Ardublock – графический язык программирования, встраиваемый в IDE. По сути, вам нужно только скачать и установить ПО, а затем использовать блоки для создания схемы.

https://youtube.com/watch?v=jVhLUIBYWL8

С чего начать работу с Ардуино

Если вы делаете первые шаги в мире Ардуино, то советуем вам заранее приготовиться к двойному потоку знаний. Во-первых, вам придется разобраться с тем, что такое контроллер Arduino, какие устройства можно к нему подключить и как это сделать. Потребуется разобраться с основами электроники. Во-вторых, придется научиться навыкам программирования в Arduino. Для профессиональной работы нужны знания C++, для начинающих доступны многочисленные графические среды с блочным программированием. Например, mBlock или ArduBlock. При отсутствии реальной платы можно воспользоваться одним из эмуляторов ардуино.

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

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

Дистанционное управление «умным» домом

Для подключения платы к интернету, понадобится:

  • Wi-Fi-адаптер, настроенный на прием и передачу сигнала через маршрутизатор;
  • или подключенный через Ethernet кабель Wi-Fi роутер.

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

Есть несколько вариантов управления умным домом Arduino: с помощью приложения для смартфона или через веб. Рассмотрим каждое подробнее.

Приложения управления

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

Blynk

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

Virtuino

Крутое бесплатное приложение на Android, позволяющее совмещать проекты в одно целое и управлять с помощью Wi-Fi или Bluetooth сразу несколькими платами.

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

Bluino Loader – Arduino IDE

Приложение для телефона, представляет собой программную среду для кодирования Arduino. С его помощью можно быстро и легко скомпилировать код в файл, а затем отправить по OTG-переходнику на плату.

Arduino Bluetooth Control

Приложение контролирует контакты Arduino и управляет основными функциями по Блютузу. Но, программа не направлена на удаленное управление, только мониторинг.

RemoteXY: Arduino Control

С помощью приложения пользователь может создать свой собственный интерфейс управления платой. Подключение происходит с помощью Wi-Fi, Блютуз или интернет, через облачный сервер.

Bluetooth Controller 8 Lamp

Созданное с помощью Bluetooth-модулей HC-05, HC-06 и HC-07 приложение, обеспечивает восьмиканальный контроль. Таким способом достигается контроль и регулирование работы Ардуино, в соответствии с каждым из 8 светодиодов.

BT Voice Control for Arduino

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

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

IoT Wi-Fi контроллер

Приложение с интерфейсом, информирующем о конфигурации каждого входа/выхода в плате Arduino. В утилите можно переключать в реальном времени GPIO и показывать значение АЦП.

Веб-клиент

Управлять удаленно платой умного дома можно, разместив получение и обработку данных умного дома на веб-сервере. Естественно, сервер для умного дома Ардуино нужно создавать самостоятельно.

Для этих целей понадобится Arduino Ethernet Shield – сетевое расширение для пинов Ардуино Уно, позволяющее добавить разъем RJ-45 для подключения к сети.

При удаленном подключении, необходимо обеспечить внешнее питание платы не от USB.

Затем, подключите по USB плату к компьютеру, а по Ethernet плату к роутеру, которой раздает интернет компьютеру. При правильном установлении соединения, вы увидите зеленый свечение на порту.

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

https://youtube.com/watch?v=ByvjWLtpL6o

Уведомления по SMS

С помощью подключаемой библиотеки GSM в Arduino IDE можно:

  1. Работать с голосовыми вызовами.
  2. Получать и отправлять СМС.
  3. Подключаться к Интернету через GPRS.

Работает схема через специальную плату расширения GSM, содержащую специальный модем.

О создании универсальной сигнализации на Arduino, с отправкой СМС уведомления на смартфон можно узнать из соответствующей видеоинструкции.

https://youtube.com/watch?v=WbtQaFot78E

Особенности аппаратуры

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

Такая плата представляет собой простой микроконтроллер AVR, который прошивается бутлоадером. Он имеет USB-UART порт.
Микроконтроллер представляет собой устройство, построенное на одной схеме.

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

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

А для некоторых механизмов необходимы переходные устройства.

Процесс сборки

Первый шаг – припаять 16-контактные штыревые разъемы на Аrduino display. Затем вы можете использовать либо 16-контактный разъем для подключения к Ардуино, либо просто использовать разъем «женщина-женщина». Если вы впервые подключаетесь к микроконтроллеру, проще всего использовать макет.

Исходные соединения для светодиодного экрана и Arduino

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

  • Подключите контакт 15 на мониторе к контакту 5V от Arduino 128х64 lcd spi.
  • Затем подключите вывод 16 на устройстве к выходу GND.

Эти контакты используются для питания подсветки ЖК-дисплея. Затем вам нужно настроить логические операции для устройства.

  • Для этого подключите вывод 1 на мониторе к выходу GND Arduino. Затем подключите контакт 2 на экране к выходу 5V Ардуино.
  • Затем вам нужно настроить потенциометр регулировки контрастности.

Возьмите потенциометр 10K и подключите первую клемму к выходу 5V Arduino, а второй – к контакту 3 и третьему терминалу к выходу GND.

Затем включите микропроцессор. Вы заметите, что подсветка на ЖК-дисплее включена. Кроме того, когда вы поворачиваете ручку на потенциометре, блоки символов на ЖК-дисплее становятся яркими/тусклыми. Посмотрите картинку ниже, чтобы узнать, о чем я говорю. Если монитор отображает то, что показано на фотографии ниже, это означает, что ваш экран настроен правильно! Если вы не смогли этого достичь, проверьте свои соединения и потенциометр.

Регулировка контрастности на устройстве

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

Конечные соединения между Arduino, потенциометром и устройством

Начнем с подключения контрольных проводов для ЖК-дисплея. Подключите контакт 5 (RW) монитора к контакту GND от Arduino. Этот контакт не используется и служит для чтения/записи. Затем подключите контакт 4 (RS) экрана к цифровому выходу 7 Arduino. Штырек RS используется для указания на ЖК-дисплее, отправляем ли мы данные или команды (чтобы изменить положение курсора).

Затем подключите контакт 6 (EN) ЖК-дисплея к цифровому выходу Arduino 8. EN – это контактное гнездо на устройстве, оно используется, чтобы сообщить монитору, что данные готовы для чтения.

Затем мы должны подключить четыре вывода данных на устройстве. Подсоедините контакт 14 (DB7) экрана к цифровому выступу 12 Arduino. Затем подключите контакт 13 (DB6) монитора к цифровому выходу 11 Arduino. Затем вывод 12 на мониторе (DB5) на цифровой вывод 10, затем Вывод LCD № 11 (DB4) на цифровой вывод 9.

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

Паяные 16-контактные разъемы

Самые простые проекты на Ардуино

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

На самом деле, здесь всё достаточно просто, ведь, в первую очередь, люди зачастую берутся за автоматизацию каких-то систем, наподобие «Смарт-хауса» или умного дома, по-русски.

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

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

Итак, среди Аrduino проектов для начинающих вы, наверняка, отыщете:

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

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

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

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

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

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

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

Обратите внимание: в этом примере вентилятор может быть любым. Но можно применить и прибор, специально выпущенный для работы в составе той или иной системы

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

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

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

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

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

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

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

Удивительные проекты на Ардуино Уно

Большинство профессионалов в сфере разработки электронных проектов на Аrduino uno любят экспериментировать. Вследствие этого появляются интересные и удивительные устройства, которые рассмотрены ниже:

  1. Добавление ИК-пульта в акустическую систему. В бытовой электронике пульт дистанционного управления является компонентом электронного устройства, такого как телевизор, DVD-плеер или другой бытовой прибор, используемый для беспроводного управления устройством с короткого расстояния. Пульт дистанционного управления, в первую очередь, удобен для человека и позволяет работать с устройствами, которые не подходят для непосредственной работы элементов управления.
  2. Будильник. Часы реального времени используются для получения точного времени. Здесь эта система отображает дату и время на ЖК-дисплее, и мы можем установить будильник с помощью кнопок управления. Как только время сигнала тревоги наступит, система подает звуковой сигнал.
  3. Шаговый двигатель. Шаговый двигатель означает точный двигатель, который можно поворачивать на один шаг за раз. Такое устройство делают с помощью робототехники, 3D-принтеров и станков с ЧПУ.- Для этого проекта возьмите самый дешевый шаговый двигатель, который вы можете найти. Двигатели доступны в режиме онлайн. В этом проекте используется шагомер 28byj-48, который подходит для большинства других подобных проектов. Его легко подключить к плате Arduino.
    — Вам понадобятся 6 кабелей с разъемами типа «женщина-мужчина». Вам просто нужно подключить двигатель к плате, и все! Вы также можете добавить небольшую часть ленты на вращающуюся головку, чтобы увидеть, что она производит вращательные движения.
  4. Ультразвуковой датчик расстояния. В этом проекте используется популярный ультразвуковой датчик HC-SR04, чтобы устройство могло избежать препятствий и двигаться в разных направлениях.

Когда вы закончите работу, на экране появится результат ваших действий. Чтобы все было просто и понятно, рекомендуется использовать ЖК-дисплей с конвертером I2C, поэтому вам нужно всего лишь 4 кабеля для подключения к плате Arduino.

Ардуино. Метеостанция на LCD 1602 и DHT11


Ардуино. Метеостанция с дисплеем LCD 1602 и DHT22

После сборки схемы, загрузите в микроконтроллер следующий скетч (здесь ссылка на скачивание архива со скетчем для метеостанции и необходимыми библиотеками). Информация с датчика DHT22 выводиться будет на монитор порта Arduino IDE и на жидкокристаллический дисплей 1602a, для отображения информации использован русский шрифт для LCD и символы (в скетче есть подробные комментарии).

Скетч для метеостанции с DHT11 на Ардуино

#include <Wire.h>                 // библиотека для протокола IIC 
#include <LiquidCrystal_I2C.h>    // подключаем библиотеку LCD IIC
LiquidCrystal_I2C lcd(0x27,20,2); // присваиваем имя lcd для дисплея

#include "DHT.h"   // подключаем библиотеку для DHT11
DHT dht(2, DHT11); // к какому порту подключаем датчик

// создаем символ градуса и присваиваем имя "gradus"
byte gradus = {
0b01100,0b10010,0b10010,0b01100,0b00000,0b00000,0b00000,0b00000
};

// создаем русскую букву "П"
byte P = {
0b11111,0b10001,0b10001,0b10001,0b10001,0b10001,0b10001,0b00000
};

// создаем русскую букву "У"
byte Y = {
0b10001,0b10001,0b10001,0b01111,0b00001,0b00001,0b01110,0b00000
};

// создаем русскую букву "Л"
byte L = {
0b00111,0b01001,0b10001,0b10001,0b10001,0b10001,0b10001,0b00000
};

// создаем русскую букву "Ж"
byte ZH = {
0b10101,0b10101,0b10101,0b01110,0b10101,0b10101,0b10101,0b00000
};

// создаем русскую букву "Ь"
byte znak = {
0b10000,0b10000,0b10000,0b11110,0b10001,0b10001,0b11110,0b00000
};

void setup() {
  Serial.begin(9600); // запуск последовательного порта
  lcd.init();         // инициализация LCD дисплея
  lcd.backlight();    // включение подсветки дисплея

  lcd.createChar(1, gradus);
  lcd.createChar(2, P);
  lcd.createChar(3, Y);
  lcd.createChar(4, L);
  lcd.createChar(5, ZH);
  lcd.createChar(6, znak);
}

void loop() {
  // если нужны точные значение, то используйте float, вместо byte
  byte h = dht.readHumidity();    // считываем значение температуры
  byte t = dht.readTemperature(); // считываем значение влажности

  Serial.print("Temperature: ");
  Serial.println(t);   // отправляем значение температуры на монитор

  Serial.print("Humidity: ");
  Serial.println(h);   // отправляем значение температуры на монитор

  Serial.println(" "); // пустая строка

  lcd.setCursor(0,0);  // ставим курсор на 1 символ первой строки
  lcd.print("TEM");    // используем латинские буквы
  lcd.print(char(2));  // выводим русскую букву "П"
  lcd.print("EPAT");   // используем латинские буквы
  lcd.print(char(3));  // выводим русскую букву "У"
  lcd.print("PA: ");   // используем латинские буквы
  lcd.print(t);        // выводим значение температуры на LCD
  lcd.print(char(1));  // выводим знак градуса

  lcd.setCursor(2,1);  // ставим курсор на 3 символ второй строки
  lcd.print("B");      // используем латинские буквы
  lcd.print(char(4));  // выводим русскую букву "Л"
  lcd.print("A");      // используем латинские буквы
  lcd.print(char(5));  // выводим русскую букву "Ж"
  lcd.print("HOCT");   // используем латинские буквы
  lcd.print(char(6));  // выводим русскую букву "Ь"
  lcd.print(": ");     // используем латинские буквы
  lcd.print(h);        // выводим значение влажности на LCD
  lcd.print("%");      // выводим знак процент
  
  delay(1000);
}

Пояснения к коду:

  1. в скетче можно использовать до 8 русских букв и символов, при необходимости заменяйте буквы из кириллицы — латинскими буквами;
  2. скорость обновления данных замените на необходимое значение.

Заключение. Мы рассмотрели, как сделать простую домашнюю метеостанцию на Ардуино c дисплеем 1602а и датчиком температуры и влажности воздуха DHT11. Данный проект можно доработать, добавив к схеме еще больше датчиков для анализа метеоусловий. Также можно сделать беспроводную метеостанцию на Arduino Uno, используя блютуз или радио модули для передачи информации на расстояние.