​Arduino Home, умный дом на Arduino, Часть #2

Мы решили сэкономить вам пару кликов и разместить у себя свежие версии среды Arduino IDE, потому что на официальном сайте порой чёрт ногу сломит, пока найдёт нужную ссылку. Где скачать Arduino IDE — ваш выбор: файлы дистрибутивов абсолютно идентичны. Сейчас представлена стабильная версия Arduino IDE 1.8.19 (релиз от 20.12.2021) и релиз-кандидат 2.0 RC (2.0.0-rc3 от 22.12.2021).

Скачать для Linux

  • Linux x86 64 бита
  • Linux x86 32 бита
  • Linux ARM 64 бита
  • Linux ARM 32 бита

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

# Распаковываем архив и заходим в каталог $ tar xvf arduino-latest-*.tar.xz $ cd arduino-1.* # Устанавливаем (только для текущего пользователя) $ ./install.sh # Добавляем себе права на пользование USB-портами $ sudo usermod -a -G dialout $USER

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

# Arch Linux $ sudo pacman -S arduino # Fedora Linux $ sudo dnf install arduino # Debian, Ubuntu, Mint Linux $ sudo apt-get install arduino

Использование Arduino IDE

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

Потом нажимаем кнопку «Загрузить» и ожидаем окончания загрузки скетча. После загрузки сразу должен начать мигать встроенный светодиод. Это значит что все работает так как надо. Теперь вы можете писать свои прошивки или использовать готовые. Описание функций языка программирования Arduino есть на странице моего сайта Программирование

Как переключить язык

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

  1. Заходим в главном меню в пункт «Файл → Настройки».
  2. Выбираем нужный язык в выпадающем списке «Язык редактора».
  3. Перезапускаем среду.

Установка Arduino IDE

Если вы скачали архив, то просто распакуйте его и запустите Arduino.exe.

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

Запускаем установочный файл. Соглашаемся с условиями лицензионного соглашения (естественно после прочтения).

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

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

Во время установки может появиться окно с предложением установки драйвера USB-to-serial. Соглашаемся и ждем окончания установки. На этом весь процесс завершен. Осталось настроить среду разработки и можно творить.

Поддерживаемые платы

Arduino IDE из коробки работает со всеми оригинальными платами AVR-архитектуры и их прямыми аналогами.

  • Оригинальные контроллеры Arduino
  • Iskra Uno (аналог Uno)
  • Iskra Neo (аналог Leonardo)
  • Iskra Mega (аналог Mega 2560)
  • Iskra Mini (аналог Mini)
  • Uno Slot (гибрид Uno с платформой Troyka Slot)
  • Strela (аналог Leonardo с драйверами моторов)

Также поддерживаются сторонние платы и контроллеры на других архитектурах: SAM, SAMD, Cortex-M. Они добавляются в среду отдельными пакетами. Ниже перечислены примеры установки некоторых таких плат.

  • Aduino Due
  • Arduino M0 Pro
  • Arduino MKR GSM 1400
  • Arduino MKR Vidor 4000
  • Wi-Fi Slot
  • Troyka-модуль Wi-Fi
  • ESP32 DevKit v1
  • ESP8266 (ESP-01)
  • Контроллеры STM32
  • Контроллеры Teensy

Настройка Arduino IDE

После установки необходимо настроить программу. Сделать это очень легко:

1. Сначала подключите вашу ардуинку к компьютеру с помощью USB кабеля.

2. Потом перейдите в «Пуск >> Панель управления >> Диспетчер устройств«. Там надо найти «Порты COM и LPT». В этом списке будет указана ваша arduino и порт к которому она подключена (COM2). Запомните это значение.

Если вашего микроконтроллера нет в списке, или он показан как неопознанное устройство, значит драйвер установлен неправильно, или у вас китайская плата с чипом CH340. Это не проблема. Просто вам нужен другой драйвер. Где его скачать и как установить я рассказал в этой статье.

4. Далее надо выбрать плату. Для этого в меню»Инструменты >> Платы» выбираете модель вашей платы.

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

Писать без библиотек?

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

  • Современные микроконтроллеры имеют достаточно памяти для того, чтобы разработчик мог позволить себе сэкономить время и использовать готовые инструменты. Более того, серьёзные разработки делаются с использованием операционных систем реального времени, которые сами по себе являются огромной тяжёлой библиотекой. Никто не пишет на ассемблере, за окном не 1980 год.
  • Современные компиляторы “пишут” и оптимизируют код на весьма высоком уровне.
  • Если писать крупный проект чисто голым кодом – это будет полотно на десятки тысяч строк, в котором невозможно будет разобраться. Программу разбивают на файлы – по сути на те же самые библиотеки. Некоторые алгоритмы и части программы изначально удобно обернуть в класс и использовать как библиотеку для нескольких проектов. Так что писать без библиотек невозможно в принципе, неважно скачаете ли вы её с интернета или напишете сами.
  • Библиотека чаще всего содержит удобный класс, в котором реализованы готовые инструменты для работы, например с кнопкой. Если у вас в проекте одна кнопка – нет разницы, описывать её вручную или использовать класс. Но как только появляется две или больше одинаковых кнопки – с точки зрения количества памяти гораздо эффективнее использовать библиотеку, потому что одни и те же функции не будут дублироваться. К этому мы вернёмся в уроке про создание крупных проектов.
  • Если вы новичок, то в 99% библиотека из интернета будет написана и оптимизирована в разы лучше, чем ваш код.

​Arduino Home, умный дом на Arduino, Часть #2

29 июля 2018

Делаем умный дом на Arduino: с чего начать?

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

Первую часть из цикла статей читайте здесь

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

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

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

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

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

Официально самые первые умные дома появились еще в 1978 году и самой первой их функцией была возможность управлять освещением: плавно менять уровень освещенности в лампочках в зависимости от времени суток или рода деятельности. Все это производилось при помощи регуляторов напряжения — диммеров. Благодаря их повсеместному использованию росла энергоэффективность в домах (экономия электроэнергии достигала уровня в 20-30%).

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

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

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

Умный дом имеет очень много возможностей и функций, и только от вас зависит, что именно будет в вашей собственной системе.

Отвечая на вопрос “С чего начать?” нужно определиться с тем, каков набор функций, который вы будете использовать для своих нужд и целей.

После этого нужно составить список компонентов, которые необходимо приобрести.

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

1. Контроллер

С этим мы уже определились — будем использовать Arduino. Для новичков это идеальный вариант: открытая среда разработки, множество примеров и исходников в открытом доступе, библиотеки, упрощающие разработку, и несложный язык программирования (в Arduino используется wiring, представляющий собой упрощенный C++ . О том, насколько легко его понять говорит тот факт, что Arduino занимаются даже ученики начальных классов в школах робототехники).

2. Сервер

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

Сервер необходим для управления умным домом посредством удаленного доступа.

Платформа Arduino напрямую работать удаленно с другими устройствами не может (иными словами не может передавать информацию на расстоянии), поэтому ей необходимо дополнение, работающее с интернетом.

Отличный вариант — подключение к плате Arduino платы расширения Ethernet Shield (интернет шилд). Подключение происходит через UART интерфейс. Начинающим с ним будет работать довольно просто, поскольку в него встроена библиотека, упрощающая написание кода и работу с шилдом. Другим, но чуть более сложным вариантом будет взаимодействие Arduino с отдельным Wi-Fi модулем на базе ESP8266.

3. Устройства мониторинга и анализа

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

  • Контроль за оптимальным режимом температуры

Для этой цели вам понадобятся хорошие датчики температуры. Могу порекомендовать датчики Dallas DS18B20. Они обладают достаточной для комнатных условий точностью (точнее, чем датчики семейства DHT), быстродействием и способны показывать температуру как в фаренгейтах, так и в цельсиях. Они будут считывать информацию о текущей температуре и передавать данные на Arduino.

  • Содержание углекислого газа в помещении.

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

4. Исполнительные устройства

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

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

5. Компоненты для коммутации (обеспечивают взаимодействие всех составляющих умного дома)

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

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

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

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

Чем управляет Arduino?

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

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

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

Начало

Создание проекта на Arduino состоит из 3 главных этапов: написание кода, прототипирование (макетирование) и прошивка. Для того, чтоб написать код а потом прошить плату нам необходима среда разработки. На самом деле их есть немало, но мы будем программировать в оригинальной среде – Arduino IDE. Сам код будем писать на С++, адаптированным под Arduino. Скачать можно на официальном сайте. Скетч (набросок) – программа, написанная на Arduino. Давайте посмотрим на структуру кода:

main(){ void setup(){ } void loop(){ } }

Важно заметить, что обязательную в С++ функцию main() процессор Arduino создаёт сам. И результатом того, что видит программист есть:

void setup(){ } void loop(){ }

Давайте разберёмся с двумя обязательными функциями. Функция setup() вызывается только один раз при старте микроконтроллера. Именно она выставляет все базовые настройки. Функция loop() — циклическая. Она вызывается в бесконечном цикле на протяжении всего времени работы микроконтроллера.

Рейтинг
( 1 оценка, среднее 4 из 5 )
Понравилась статья? Поделиться с друзьями:
Для любых предложений по сайту: [email protected]