Как сделать умный дом на Arduino своими руками.

Отладочная плата Arduino Mega 2560 построена на микроконтроллере ATmega2560. Она имеет 54 цифровых входных/выходных выводов (15 из которых могут использоваться в качестве ШИМ выходов), 16 аналоговых входов, 4 порта UART (аппаратных последовательных порта), кварцевый резонатор 16 МГц, подключение USB, разъем питания, разъем ICSP и кнопку перезагрузки. Она содержит всё необходимое для работы с микроконтроллером; для того, чтобы начать работу с ней, просто подключите ее к компьютеру с помощью USB кабеля или подайте питание от блока питания AC/DC или от батареи. Плата Arduino Mega 2560 совместима с большинством плат расширения, разработанных для Arduino Uno и Arduino Duemilanove.

Arduino Mega 2560 является обновленной заменой для Arduino Mega.

Технические характеристики

Микроконтроллер ATMega2560
Рабочее напряжение 5 В
Входное напряжение (рекомендуемое) 7-12 В
Входное напряжение (предельное) 6-20 В
Цифровые входные/выходные выводы 54 (15 из которых могут использоваться в качестве ШИМ выходов)
Аналоговые входные выводы 16
Постоянный ток через входные/выходные выводы 20 мА
Постоянный ток через вывод 3,3 В 50 мА
Флеш-память 256 Кбайт, из которых 8 Кб используются загрузчиком
Оперативная память SRAM 8 Кбайт
Энергонезависимая память EEPROM 4 Кбайт
Тактовая частота 16 МГц
Длина 101,52 мм
Ширина 53,3 мм
Вес 37 г

Документация

Схемы, разводка платы, размеры

Arduino Mega 2560 является открытой аппаратной платформой. Вы можете изготовить собственную плату, используя следующие файлы:

Программирование

Arduino Mega 2560 программируется с помощью Arduino IDE.

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

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

Предупреждение

Arduino Mega 2560 имеет самовосстанавливающийся предохранитель, который защищает USB порты вашего компьютера от короткого замыкания и перегрузки по току. Несмотря на то, что большинство компьютеров обеспечивают свою собственную внутреннюю защиту, этот предохранитель дает дополнительный уровень защиты. Если ток через USB порт превышает 500 мА, предохранитель автоматически разрывает соединение, пока короткое замыкание или перегрузка не будут устранены.

Питание

Arduino Mega 2560 может получать питание либо через подключение USB, либо от внешнего источника питания. Источник питания выбирается автоматически.

Внешнее (не USB) питание может подаваться либо от AC/DC адаптера, либо от батареи. Адаптер может быть подключен с помощью 2,1 мм разъема питания с положительным контактом в центре. Питание от батареи может быть подано на выводы Vin и GND разъема POWER.

Плата может работать от внешнего питания от 6 до 20 вольт. Если подается питание меньше, чем 7 вольт, то на выводе 5V питание может составлять менее пяти вольт, и плата может начать работать нестабильно. Если используется питание более 12В, регулятор напряжения может перегреться и повредить плату. Рекомендуется использовать напряжение питания в диапазоне от 7 до 12 вольт.

Выводы питания:

  • Vin . Вход питания платы при использовании внешнего источника питания (используется при отсутствии 5 вольт от USB подключения или от другого регулируемого источника питания). Вы можете подать питание через этот вывод, или, если напряжение питания подается через разъем питания, то это напряжение 5В будет доступно и на этом выводе.
  • 5V . С этого вывода можно взять регулируемое напряжение 5В с выхода регулятора на плате. Плата может питаться через разъем питания (7-12В), через USB разъем (5В) или через вывод Vin на плате (7-12В). Подача напряжения через выводы 5V и 3.3V обходит регулятор и может повредить плату. Поэтому не советуем подавать питание на плату через эти выводы.
  • 3V3 . Питание 3,3 вольта, выдаваемое регулятором на плате. Максимальный ток 50 мА.
  • GND . Выводы земли.
  • IOREF . Этот вывод обеспечивает опорное напряжение, с которым работает микроконтроллер. Правильно, сконфигурированная плата расширения, может прочитать напряжение на выводе IOREF и выбрать подходящий источник питания или перевести буферы выходов для работы с напряжением либо 5В, либо 3,3В.

Память

ATmega2560 обладает 256 килобайтами флэш-памяти для хранения кода программы (из которых 8 килобайт используется загрузчиком), 8 килобайтами SRAM и 4 килобайтами EEPROM (которая может быть считана и записана с помощью библиотеки EEPROM).

Входы и выходы

Таблица соответствия портов ATmega2560 выводов Arduino Mega 2560
Номер вывода Atmega2560 Название вывода ATmega2560 Соответствующий вывод на Arduino Mega 2560
1 PG5 (OC0B) Цифровой вывод 4 (PWM)
2 PE0 (RXD0/PCINT8) Цифровой вывод 0 (RX0)
3 PE1 (TXD0) Цифровой вывод 1 (TX0)
4 PE2 (XCK0/AIN0)
5 PE3 (OC3A/AIN1) Цифровой вывод 5 (PWM)
6 PE4 (OC3B/INT4) Цифровой вывод 2 (PWM)
7 PE5 (OC3C/INT5) Цифровой вывод 3 (PWM)
8 PE6 (T3/INT6)
9 PE7 (CLKO/ICP3 / INT7)
10 VCC VCC
11 GND GND
12 PH0 (RXD2) Цифровой вывод 17 (RX2)
13 PH1 (TXD2) Цифровой вывод 16 (TX2)
14 PH2 (XCK2)
15 PH3 (OC4A) Цифровой вывод 6 (PWM)
16 PH4 (OC4B) Цифровой вывод 7 (PWM)
17 PH5 (OC4C) Цифровой вывод 8 (PWM)
18 PH6 (OC2B) Цифровой вывод 9 (PWM)
19 PB0 (SS/PCINT0) Цифровой вывод 53 (SS)
20 PB1 (SCK/PCINT1) Цифровой вывод 52 (SCK)
21 PB2 (MOSI/PCINT2) Цифровой вывод 51 (MOSI)
22 PB3 (MISO/PCINT3) Цифровой вывод 50 (MISO)
23 PB4 (OC2A/PCINT4) Цифровой вывод 10 (PWM)
24 PB5 (OC1A/PCINT5) Цифровой вывод 11 (PWM)
25 PB6 (OC1B/PCINT6) Цифровой вывод 12 (PWM)
26 PB7 (OC0A/OC1C / PCINT7) Цифровой вывод 13 (PWM)
27 PH7 (T4)
28 PG3 (TOSC2)
29 PG4 (TOSC1)
30 RESET RESET
31 VCC VCC
32 GND GND
33 XTAL2 XTAL2
34 XTAL1 XTAL1
35 PL0 (ICP4) Цифровой вывод 49
36 PL1 (ICP5) Цифровой вывод 48
37 PL2 (T5) Цифровой вывод 47
38 PL3 (OC5A) Цифровой вывод 46 (PWM)
39 PL4 (OC5B) Цифровой вывод 45 (PWM)
40 PL5 (OC5C) Цифровой вывод 44 (PWM)
41 PL6 Цифровой вывод 43
42 PL7 Цифровой вывод 42
43 PD0 (SCL/INT0) Цифровой вывод 21 (SCL)
44 PD1 (SDA/INT1) Цифровой вывод 20 (SDA)
45 PD2 (RXDI/INT2) Цифровой вывод 19 (RX1)
46 PD3 (TXD1/INT3) Цифровой вывод 18 (TX1)
47 PD4 (ICP1)
48 PD5 (XCK1)
49 PD6 (T1)
50 PD7 (T0) Цифровой вывод 38
51 PG0 (WR) Цифровой вывод 41
52 PG1 (RD) Цифровой вывод 40
53 PC0 (A8) Цифровой вывод 37
54 PC1 (A9) Цифровой вывод 36
55 PC2 (A10) Цифровой вывод 35
56 PC3 (A11) Цифровой вывод 34
57 PC4 (A12) Цифровой вывод 33
58 PC5 (A13) Цифровой вывод 32
59 PC6 (A14) Цифровой вывод 31
60 PC7 (A15) Цифровой вывод 30
61 VCC VCC
62 GND GND
63 PJ0 (RXD3/PCINT9) Цифровой вывод 15 (RX3)
64 PJ1 (TXD3/PCINT10) Цифровой вывод 14 (TX3)
65 PJ2 (XCK3/PCINT11)
66 PJ3 (PCINT12)
67 PJ4 (PCINT13)
68 PJ5 (PCINT14)
69 PJ6 (PCINT 15)
70 PG2 (ALE) Цифровой вывод 39
71 PA7 (AD7) Цифровой вывод 29
72 PA6 (AD6) Цифровой вывод 28
73 PA5 (AD5) Цифровой вывод 27
74 PA4 (AD4) Цифровой вывод 26
75 PA3 (AD3) Цифровой вывод 25
76 PA2 (AD2) Цифровой вывод 24
77 PA1 (AD1) Цифровой вывод 23
78 PA0 (AD0) Цифровой вывод 22
79 PJ7
80 VCC VCC
81 GND GND
82 PK7 (ADC15/PCINT23) Аналоговый вывод 15
83 PK6 (ADC14/PCINT22) Аналоговый вывод 14
84 PK5 (ADC13/PCINT21) Аналоговый вывод 13
85 PK4 (ADC12/PCINT20) Аналоговый вывод 12
86 PK3 (ADC11/PCINT19) Аналоговый вывод 11
87 PK2 (ADC10/PCINT18) Аналоговый вывод 10
88 PK1 (ADC9/PCINT17) Аналоговый вывод 9
89 PK0 (ADC8/PCINT16) Аналоговый вывод 8
90 PF7 (ADC7) Аналоговый вывод 7
91 PF6 (ADC6) Аналоговый вывод 6
92 PF5 (ADC5 /TMS) Аналоговый вывод 5
93 PF4 (ADC4 /TMK) Аналоговый вывод 4
94 PF3 (ADC3) Аналоговый вывод 3
95 PF2 (ADC2) Аналоговый вывод 2
96 PF1 (ADC1) Аналоговый вывод 1
97 PF0 (ADC0) Аналоговый вывод 0
98 AREF Опорное напряжение АЦП
99 GND GND
100 AVCC VCC

Каждый из 54 цифровых выводов Arduino Mega может быть использован и как вход, и как выход, с помощью функций pinMode() , digitalWrite() и digitalRead . Они работают с напряжением 5 вольт. Каждый вывод может пропускать ток 20 мА (рекомендуемое) и имеет внутренний подтягивающий резистор (по умолчанию отключен) 20-50 кОм. Ток не должен превышать максимальное значение, равное 40 мА, чтобы избежать повреждения микроконтроллера.

Также некоторые выводы обладают специальными функциями:

  • последовательный порт: 0 (RX) и 1 (TX); последовательный порт 1: 19 (RX) и 18 (TX); последовательный порт 2: 17 (RX) и 16 (TX); последовательный порт 3: 15 (RX) и 14 (TX) . Выводы используются для приема (RX) и передачи (TX) последовательных данных с TTL уровнями. Выводы 0 и 1 также подключены к соответствующим выводам преобразователя USB-TTL на ATmega16U2;
  • внешние прерывания: 2 (прерывание 0), 3 (прерывание 1), 18 (прерывание 5), 19 (прерывание 4), 20 (прерывание 3) и 21 (прерывание 2) . Эти выводы могут быть сконфигурированы для вызова прерывания по фронту или по спаду импульса или по изменению уровня на выводе. Смотрите работу с прерываниями на Arduino для более подробной информации;
  • ШИМ: выводы со 2 по 13 и с 44 по 46 . Обеспечивают 8-битный ШИМ выход с помощью функции analogWrite() ;
  • SPI: 50 (MISO), 51 (MOSI), 52 (SCK), 53 (SS) . Эти выводы поддерживают связь через SPI с помощью соответствующей библиотеки. SPI выводы также подключены к разъему ICSP, который физически совместим с платами Arduino/Genuino Uno и старыми платами Arduino Duemilanove и Diecimila;
  • светодиод: 13 . Встроенный светодиод подключен к цифровому выводу 13. При высоком уровне на выводе светодиод загорается, при низком - гаснет;
  • TWI: 20 (SDA) и 21 (SCL) . Поддерживают связь через TWI с помощью библиотеки Wire . Обратите внимание, что эти выводы не совпадают по расположению с аналогичными выводами на старых платах Arduino Duemilanove и Diecimila.

Arduino Mega 2560 обладает 16 аналоговыми входами, каждый из которых обеспечивает 10-битное разрешение (т.е. 1024 разных значений). По умолчанию они измеряют напряжение от 0 до 5 вольт, хотя можно изменить верхнюю границу их диапазона, используя вывод AREF и функцию analogReference() . И еще пара выводов на плате:

  • AREF . Опорное напряжение для аналоговых входов. Используется совместно с analogReference() ;
  • Reset . Низкий уровень на этом выводе приводит к перезагрузке микроконтроллера. Обычно используется для добавления кнопки сброса на платы расширения, закрывающей доступ к кнопке сброса на самой плате Arduino.

Связь

Плата Arduino Mega 2560 обладает рядом возможностей для связи с компьютером, с другой платой или с другими микроконтроллерами. ATmega2560 обеспечивает четыре аппаратных UART порта для последовательной связи с TTL уровнями (5 вольт). ATmega16U2 (ATmega8U2 на платах версий 1 и 2) на плате связывает один из этих UART портов с USB и обеспечивает виртуальный COM порт для связи с программным обеспечением на компьютере (Windows машинам понадобится inf-файл, машины на OSX и Linux определят плату, как COM порт, автоматически). Arduino IDE включает в себя монитор последовательного порта, который позволяет посылать и принимать от платы простые текстовые данные. Светодиоды RX и TX на плате загораются при передаче данных через микросхему ATmega8U2/ATmega16U2 и USB соединение (но не при передаче данных через выводы 0 и 1 последовательного порта).

Библиотека SoftwareSerial позволяет организовать последовательную связь через любые цифровые выводы Arduino Mega 2560.

Arduino Mega 2560 также поддерживает связь через TWI и SPI. Arduino IDE включает в себя библиотеку Wire для упрощения использования шины TWI. Для связи через SPI используется библиотека SPI .

Магазины и цены

Цены на Arduino Mega 2560
Товар в магазине Количество штук в комплекте Стоимость Расчетная стоимость за 1 шт.
1 406.51 руб. / 6.01 USD
(на 25 ноября 2018)
406.51 руб. / 6.01 USD
Arduino Mega 2560 на AliExpress 1 451.83 руб. / 6.68 USD
(на 1 октября 2016)
451.83 руб. / 6.68 USD
Arduino Mega 2560 на AliExpress 1 486.32 руб. / 7.19 USD
(на 25 ноября 2018)
486.32 руб. / 7.19 USD
Arduino Mega 2560 на AliExpress 1 502.56 руб. / 7.43 USD
(на 25 ноября 2018)

Эта плата отличается от других ардуинок большим количеством вводов и выводов, увеличенным объемом памяти и другими характеристиками, о которых мы расскажем ниже. Ардуино Мега представлена в нескольких версиях. Они практически не отличаются друг от друга. Отличия Arduino Mega 2560 R3 от предыдущих версий платы заключаются в следующих деталях:

  • Для преобразования интерфейса USB-UART используется микроконтроллер ATmega16U2 в R3 версии и ATmega8U2 в версиях платы R1 и R2.
  • Начиная с версии R2 на плате добавлен притягивающий резистор для линии HWB. Это делает процесс прошивки микроконтроллера более простым и удобным.
  • В версии R3 были добавлена пара выводов для последовательного интерфейса I2C SDA и SCL.
  • Так же была улучшена помехоустойчивость цепи сброса.
  • Заменен микроконтроллер для работы с интерфейсом USB-UART с ATmega8U2 на ATmega16U2

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

Arduino Mega 2560 R3

Ардуино Мега 2560 снабжена микроконтроллером ATmega2560 с тактовой частотой 16 мГц.

Характеристики Ардуино Мега 2560

  • Микроконтроллер: ATmega2560
  • Тактовая частота: 16 мГц
  • Рабочее напряжение: 5 В
  • Предельные напряжения питания: 5-20 В
  • Рекомендуемое напряжение питания: 7-12 В
  • Максимальная сила тока с одного вывода: 40 мА
  • Цифровые входы/выходы: 54
  • Цифровые входы/выходы с поддержкой ШИМ: 15
  • Аналоговые входы: 16
  • Flash-память: 256 КБ (8 из них используются загрузчиком)
  • SRAM: 8 КБ
  • EEPROM: 4 КБ

Подключение Arduino Mega 2560 к питанию

Эту плату можно питать четырьмя разными способами:

  1. Через порт USB. Можно питать ардуино от компьютера, powerbank, смартфона (если он поддерживает режим OTG) или от адаптера, вставленного в розетку.
  2. Через пин +5V. Этот пин является не только выводом, но и вводом. Будьте внимательны! На этот пин нужно подавать ровно 5 вольт. В противном случае можно спалить сам микроконтроллер.
  3. Через штекер питания, расположенный на плате. Можно использовать, батарейки, аккумуляторы и разнообразные блоки питания. Этот штекер подключен к пину VIN. О напряжении и мерах предосторожности написано в следующем пункте.
  4. Через пин VIN. Ток от этого пина проходит через встроенный стабилизатор напряжения. По заявлениям производителя можно подавать от 5 до 20 вольт. Но это не совсем так. Так как стабилизатор имеет не 100% КПД, то при подаче 5 вольт на пин VIN напряжения может не хватить на питание микроконтроллера, да и на цифровых пинах будет не 5 вольт, а меньше. Также не стоит работать на максимальном напряжении. При 20 вольтах на пине VIN будет сильно греться стабилизатор напряжения, вплоть до выхода из строя. Поэтому рекомендуется использовать напряжение от 7 до 12 вольт.

Как уже было написано выше, плата имеет 54 цифровых пинов. Они могут быть как входом так и выходом. Рабочее напряжение этих пинов составляет 5 В. Каждый из них имеет подтягивающий резистор и поданное на один из этих пинов напряжения ниже 5 вольт все равно будет считаться как 5 вольт (логическая единица).

Аналоговые пины являются входами и не имеют подтягивающих резисторов. Они измеряют поступающее на них напряжение и возвращают значение от 0 до 1024 при использовании функции . Эти пины измеряют напряжение с точностью до 0,005 В.

ШИМ Arduino Mega

Если внимательно посмотреть на плату то можно увидеть значок тильды (~) рядом с некоторыми цифровыми пинами. Этот значок означает, что данный пин может быть использован как выход ШИМ. На некоторых платах ардуино этого значка нет так как производители не всегда находят место для этого символа на плате. У Arduino Mega есть 15 выводов ШИМ, это цифровые пины со 2 по 13 и с 44 по 46. Для использования ШИМ в Arduino есть специальная функция .

Другие пины:

  • Serial: 0 (rx) и 1 (tx), Serial1: 19 (rx) 18 (tx), Serial2: 17 (rx) и 16 (tx), Serial3: 15 (rx) и 14 (tx) используются для передачи данных по последовательному интерфейсу.
  • Выводы 53 (SS), 51 (MOSI), 50 (MISO), 52 (SCK) рассчитаны для связи по интерфейсу SPI.
  • Так же на выводе 13 имеется встроенный в плату светодиод.
  • 20 (SDA) и 21 (SCL) могут использоваться для связи с другими устройствами по шине I2C. Подробнее про этот интерфейс вы можете почитать на википедии . В среде разработке Arduino IDE есть встроенная библиотека «wire.h» для более легкой работы с I2C.
  • Внешние прерывания: выводы 2 (прерывание 0), 3 (прерывание 1), 18 (прерывание 5), 19 (прерывание 4), 20 (прерывание 3) и 21 (прерывание 2). Эти выводы могут использоваться в качестве источников прерываний, возникающих при различных условиях: при низком уровне сигнала, при фронте, спаде или изменении сигнала. Для получения дополнительной информации см. функцию .
  • AREF. Опорное напряжение для аналоговых входов. Может быть задействован функцией .
  • Reset. Формирование низкого уровня (LOW) на этом выводе приведет к перезагрузке микроконтроллера. Обычно этот вывод служит для функционирования кнопки сброса на платах расширения

Физические характеристики

Arduino Mega имеет следующие размеры: длина 102 мм и ширина 54 мм. Arduino Mega весит около 45 грамм. Плата имеет 4 отверстия для возможности ее закрепления на поверхности. Расстояние между выводами равняется 2,5 мм, кроме выводов 7 и 8. Между ними 4 мм.

Принципиальная схема


Плата Arduino Mega 2560 r3 — это самый мощный микроконтроллер в линейке по своей производительности, объему памяти и по возможности подключения огромного количества устройств к плате. Рассмотрим характеристики Arduino Mega 2560, распиновку портов на микроконтроллере и схему платы, чтобы по максимуму использовать возможности данного устройства при создании новых проектов.

Arduino Mega 2560: распиновка платы

Схема портов на плате Arduino Mega R3 представлена на следующем фото. Главной отличительной особенностью микроконтроллера является увеличенное количество цифровых и аналоговых портов входа/выхода и портов UART для коммуникации с периферийными модулями. В отличии от Arduino Uno и Arduino Nano , на данной плате порты для работы по интерфейсу I2C расположены на 20(SDA) и 21(SCL) пинах.

Схема распиновки платы Arduino Mega 2560 на русском

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

Характеристики Arduino Mega 2560

  • Микроконтроллер: ATmega2560
  • Тактовая частота процессора: 16 МГц
  • Напряжение логических уровней: 5 В
  • Напряжение питания платы: 7–12 В
  • Портов ввода-вывода общего назначения: 54
  • Максимальный ток порта ввода-вывода: 40 мА
  • Максимальный выходной ток порта 3.3V: 50 мА
  • Максимальный выходной ток порта 5V: 800 мА
  • Порты Ардуино Мега с поддержкой ШИМ: 15
  • Порты Ардуино Мега, подключенные к АЦП: 16
  • Разрядность АЦП платы: 10 бит
  • Flash-память платы: 256 КБ
  • EEPROM-память платы: 4 КБ
  • Оперативная память: 8 КБ
  • Габариты Arduino Mega: 101×53 мм

Arduino Mega 2560: схема электрическая


Плата Arduino Mega 2560: схема электрическая принципиальная

Arduino Mega 2560: схема портов, питание

Напряжение питания Ардуино Мега 2560 при подключении через USB равно 5 Вольт. При подключении питания через разъем от аккумулятора или блока питания, питание платы автоматически переключается на внешний источник. Рекомендуемое питание платы Arduino Mega, согласно описанию производителя от 7 до 16 Вольт. Распиновка портов платы (при клике откроется в новом окне) представлена на фото ниже.


Arduino Mega 2560: питание, подключение

5V – на пин платы подается стабилизированное напряжение 5 В;
3.3V – на пин подается стабилизированное напряжение 3.3 В;
VIN – на пин подается внешнее напряжение;
IREF – информирования о напряжении платы Arduino Mega;
GND – общий вывод земли.

Arduino Mega 2560: прошивка, память

Прошивка выполняется в среде Arduino IDE . Советуем вам ознакомиться с аналогом оригинальной платы Arduino Mega 2560 от китайской компании RobotDyn . Данная платформа ничем не отличается по своим характеристикам от оригинала, но при этом позволяет значительно сэкономить финансы. Это лишь краткий обзор платы, если требуется более подробное описание, то обратитесь к сайту производителя.

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

Flash – память объемом 256 КБ, используется для хранения программ, которые пользователь загружает в микроконтроллер.

SRAM память - это оперативная память, где хранятся переменные, создаваемые в скетче. При отключении питания все данные из памяти удалятся.

EEPROM - энергонезависимая память объемом 4 КБ позволяет сохранять данные, которые не удалятся при выключении питания.

Также часто читают:

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

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

Одним из главных элементов системы умный дом в рассматриваемом варианте является Arduino. Что это такое? Как он работает? Какие функции выполняет? Все подробно мы рассмотрим в этой статье.

Что такое Arduino?

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

В основе платформы лежит открытый код, а само устройство построено на печатной плате с «вшитым» в ней программным обеспечением.

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

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

Существует несколько моделей плат, самые распространённые из них – UNO, Mega 2560 R3.

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

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

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

Устройства на Ардуино могут работать в комплексе с ПО на компьютере или самостоятельно.

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

ЧИТАЙТЕ ПО ТЕМЕ : , обзор, комплектация, подключение и настройка своими руками, сценарии.

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

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

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

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

Принцип работы системы

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

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

Питание

Питание Arduino производится через USB разъем или от внешнего питающего устройства. Источник напряжения определяется в автоматическом режиме.

Если выбран вариант с внешним питанием не через USB, можно подключать АКБ или блок питания (преобразователь напряжения). В последнем случае подключение производится с помощью 2,1-миллиметровго разъема с «+» на главном контакте.

Провода от АКБ подключаются к различным выводам питающего разъема - Vin и Gnd.

Для нормальной работы платформа нуждается в напряжении от 6 до 20 Вольт. Если параметр падает ниже 7 вольт, на выводе 5V может оказаться меньшее напряжение и появляется риск сбоя.

Если подавать 12 В, возможен перегрев регулятора напряжения и повреждения платы. По этой причине оптимальным уровнем является питание с помощью 7 - 12 В.

В отличие от прошлых типов плат, Arduino Mega 2560 работает без применения USB-микроконтроллера типа FTDI. Для обеспечения обмена информацией по USB применяется запрограммированный под конвертер USB-to-serial конвертер.

ПОПУЛЯРНО У ЧИТАТЕЛЕЙ : .

На Ардуино предусмотрены следующие питающие выводы:

  • 5V - используется для подачи напряжения на микроконтроллер, а также другие элементы печатной платы. Источник питания является регулируемым. Напряжение подается через USB-разъем или от вывода VIN, а также от иного источника питания 5 Вольт с возможностью регулирования.
  • VIN - применяется для подачи напряжения с внешнего источника. Вывод необходим, когда нет возможности подать напряжение через USB-разъем или другой внешний источник. При подаче напряжения на 2,1-миллиметровй разъем применяется этот вход.
  • 3V3 - вывод, напряжение на котором является следствием работы самой микросхемы FTDI. Предельный уровень потребляемого тока для этого элемента составляет 50 мА.
  • GND - заземляющие выводы.

Принципиальную схему платы в pdf формате можно посмотреть .

Связь

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

Модель ATmega 2560 отличается наличием 4 портов, через которые можно передавать данные для TTL и UART. Специальная микросхема ATmega 8U2 на плате передает интерфейс (один из них) через USB-разъем. В свою очередь, программы на ПК получают виртуальный COM.

Здесь имеются нюансы, которые зависят от типа операционной системы:

  • Если на ПК установлен Linux, распознавание происходит в автоматическом режиме.
  • Если стоит Windows, потребуется дополнительный файл.inf.

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

Мигание светодиодов TX и RX свидетельствует о передаче данных. Для последовательной отправки информации применяется специальная библиотека Software Serial.

К особенностям ATmega 2560 стоит отнести наличие интерфейсов SPI и I2C. Кроме того, в состав Ардуино входит библиотека Wire.

Разработка проекта

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

Какие проекты можно создавать на Arduino?

Ардуино позволяет создавать множество уникальных проектов. Вот лишь некоторые из них:

  • Сборка кубика Рубика (система справляется за 0,887 с);
  • Контроль влажности в подвальном помещении;
  • Создание уникальных картин;
  • Отправка сообщений;
  • Балансирующий робот на двух колесах;
  • Анализатор спектра звука;
  • Лампа оригами с емкостным сенсором;
  • Рука-робот, управляемая с помощью Ардуино;
  • Написание букв в воздухе;
  • Управление фотовспышкой и многое другое.

Составление проекта для умного дома

Рассмотрим ситуацию, когда необходимо сделать автоматику для дома с одной комнатой.

Такое здание состоит из пяти основных зон - прихожей, крыльца, кухни, санузла, а также комнаты для проживания.

При составлении проекта стоит учесть следующее:

  • КРЫЛЬЦО . Включение света производится в двух случая - приближение хозяина к дому в темное время суток и открытие дверей (когда человек выходит из здания).
  • САНУЗЕЛ . В бойлере предусмотрен выключатель питания, который при достижении определенной температуры выключается. Управление бойлером производится в зависимости от наличия соответствующей автоматики. При входе в помещение должна срабатывать вытяжка, и загорается свет.
  • ПРИХОЖАЯ . Здесь требуется включение света при наступлении темноты (автоматическое), а также система обнаружения движения. Ночью включается лампочка небольшой мощности, что исключает дискомфорт для других жильцов дома.
  • КОМНАТА . Включение света производится вручную, но при необходимости и наличии датчика движения эта манипуляция может происходить автоматически.
  • КУХНЯ . Включение и отключение света на кухне осуществляется в ручном режиме. Допускается автоматическое отключение в случае продолжительного отсутствия перемещений по комнате. Если человек начинает готовить пищу, активируется вытяжка.

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

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

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

Визуальное программирование для Arduino можно осуществлять с помощью специального приложения FLProg, которое можно скачать с официального сайта http://flprog.ru/.

Подбираем комплектацию под проект на примере Arduino Mega 2560 R3

Для создания полноценной системы «Умный дом» и выполнения ею возложенных функций важно правильно подойти к комплектации и выбору оборудования.

Что входит в комплект поставки?

Если ваша цель - «Умный дом» на базе Arduino, требуется подготовить следующее оборудование - саму плату Mega 2560 R3, модуль Ethernet (ENC28J60), датчик движения, а также другие датчики и контроллеры.

Кроме того, стоит подготовить кабель вида «витая пара», резистор, реле, переключатель и кабель для модуля Ethernet.

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

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

Все программы для адаптации можно найти в сети на официальном сайте Arduino http://arduino.ru. При выборе датчиков стоит ориентироваться на задачи, которая должен решать «Умный дом».

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

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

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

Начало работы

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

Этапы

При организации системы «Умный дом» на базе Ардуино, стоит действовать по следующему алгоритму:

  • Инсталляция программного кода;
  • Конфигурация приложения под применяемое устройство;
  • Переадресация портов (для роутера);
  • Проведение тестов;
  • Внесение правок и так далее.

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

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

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

Чтобы начать работать с Ардуино в Windows, сделайте следующие шаги:


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

Для полноценной работы «Умного дома» важно правильно обращаться с роутером. Здесь требуется выполнить следующие действия - открыть конфигурацию, указать адрес Arduino IP, к примеру, 192.168.10.101 и открыть 80-й порт.

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

Расширение возможности на Ардуино

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

Упомянутая программная технология применяется для решения интернет-задач, поэтому для визуализации «Умного дома» используется язык Java Script (именно с его помощью создается обработчик и сервер). Результаты можно увидеть на экране компьютера или ПК.

Для реализации задуманного подойдет ноутбук, обычный ПК или Raspberry Pi. Применение такой системы позволяет увеличить ее возможности. Так, если на плате Ардуино имеется небольшой объем памяти, на сервере такие ограничения отсутствуют. Программа пишется таким образом, чтобы обеспечить полное управление платформой.

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

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

Общение с Arduino

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

Оформление и отправка сообщения контроллеру называется программированием. Чтобы упростить процесс, разработана среда Arduino IDE, в состав которой входит множество программ. Их изучение позволяет получить массу полезной информации о работе с Ардуино.

Как можно управлять?

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

Еще один способ - управление с помощью сообщений (MMS или SMS). Этот вариант актуален в случае, когда нет связи с Интернетом. Одним из преимуществ системы является возможность получения информации о форс-мажорной ситуации (например, протечке). Здесь помогает плата Edison от компании Intel.

В итоге, что мы получим?

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

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

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

Это и есть основные преимущества системы.

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

Управление автоматикой возможно через Интернет или посредством сообщений. Так что Ардуино отлично подходит для создания устройств повышенной сложности.

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

Давайте же разберёмся, с какими проблемами вы рано или поздно столкнетесь, и какие Ардуино проекты на возможно эффективно спроектировать под стандартный микроконтроллер?

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

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

Первая проблема . Минимизировать занимаемое место крайне легко – достаточно использовать специальные разновидности МК, будь то нано или мини. Здесь есть некоторые особенности, с недостатком памяти, например, на Attiny85, но для простого функционала – это не столь существенно.

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

Вторая проблема – менее приятная, но и у неё есть несколько путей для решения:

  1. Расширить число выводов, используя сдвиговые регистры. Данный метод имеет ряд недостатков, вроде отсутствия ШИМ под расширенные выводы и применения лишь к выходным сигналам. Но в некоторых случаях и такие «костыли» способны спасти ситуацию, позволив сэкономить средства и время.
  2. Объединить пару МК на одной платформе, а затем, через специальный «мост», создать между ними связь. Здесь стоит применить несколько паттернов проектирования, дабы не засорять буфер каждого контроллера информацией с другого, тем самым перегружая систему. Готовые решения уже размещены на просторах нашего сайта, но, чтобы их использовать, вам всё же придется углубиться в программную часть продукта, что не каждый захочет сделать. Ведь в таком случае нивелируется ценность самой платформы Ардуино.

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

Благо, есть и третий подход, используемый всё чаще, – , проекты на которой уже не страдают от обилия этих «костылей». Есть также аналог данной платы, поддерживающий usb-хосты, но давайте сначала разберёмся с основным МК.

Первое, что бросается в глаза при знакомстве с 2560, – внешний вид, ведь она в 1.8 раз длиннее уно, что является необходимым злом, дабы разместить на ней целых 54 порта. Притом, 15 из них можно использовать в качестве источников ШИМ-сигналов, чтобы регулировать мощность тока или другие параметры системы. Регуляция осуществляется с помощью широтно-импульсных модуляций, а дополнительные 16 портов под вход могут обработать цифровые сигналы и применяться в качестве всё тех же цифровых выходов. В результате, мы получаем более тонкую, длинную и функциональную плату.

Под связь с несколькими видами устройств установлено 4-о UART интерфейсов, на 0, 1, 14, 19 пинах. Притом, один из них направлен под usb с помощью микроконтроллера ATmega8U2, применяемого в качестве замены привычному USB-TTL, который использовался повсеместно в более старых платах. Но, что важнее, – прошивка располагается в паблик репозитории, а соответственно, доступна для скачивания и модификации любому желающему. Под связь с дисплеями присутствуют SPI и I2C технологии, которые вы также можете применить в своем проекте.

Технические характеристики

Ну, а если говорить конкретнее, то технические характеристики данного контроллера таковы:

  1. Тактовая частота ядер достигает 16 мГц.
  2. Воспринимаемое напряжение равно 5 Вольтам.
  3. Максимальное допустимое напряжение на цепи – 20 В.
  4. Соответственно, среднее рекомендуемое для работы – 9 В +-2 В
  5. С одного вывода максимальная сила тока может достигать 40 мА.
  6. Ну, а главное, что присутствуют 54 цифровых пина, из которых 15 – с поддержкой ШИМ.
  7. Аналоговых же всего 16, но для большинства проектов этого будет достаточно.
  8. Доступная постоянная память составляет 256 КБ, но учитывайте, что компилятором занято 8.
  9. Оперативная же составляет всего 8 КБ.

Все эти характеристики необходимо запомнить, чтобы подобрать под Аrduino mega 2560 проекты, подходящие по параметрам. Ведь далеко не в каждой ситуации такой длинный чип будет куда уместить, да и вообще возникнет в нём потребность.

Популярные и интересные проекты Ардуино с использованием контроллера 2560

В отличие от своих собратьев, данный МК имеет достаточные характеристики, чтобы реализовать то, что ещё вчера казалось невозможным сделать на подобной плате. Так, из интересных проектов, стоит отметить поддерживаемый правительством РФ Mega Server, идея которого в использовании данных контроллеров в качестве основы для сервера веб-ресурсов.

Естественно, проект предполагает серьезные ограничения по памяти, из-за того, что единственным её расширением являются SD-карты, а Ethernet поддерживает лишь 32 ГБ. Но, учитывая размеры конечного сервера, данные характеристики не кажутся столь значимыми.

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

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

Но это не единственные проекты, которые можно реализовать на плате. Однако остальное большинство можно разделить на:

  1. Стандартный для Ардуино .
  2. Автоматизированная котельная.
  3. Робот-бармен. Это один из интереснейших проектов, прогремевших в сети на днях. Все исходники доступны бесплатно, а соответственно, никто не мешает вам повторить опыт самостоятельно.

Питание Arduino Mega 2560

Для того, чтобы запитать плату, вам будет достаточно подключить к соответствующему пину источник тока в 9-10 В, главное – контролировать напряжение, чтобы оно не превысило доступный максимум в 20 В.

Подключение к компьютеру

Для подключения к компьютеру плата предполагает использование протокола USB-TTL или USB-c, в зависимости от разновидности, которую вы решили приобрести. А в остальном вам потребуется стандартный софт для программирования и работы с Ардуино через ПК, в зависимости от вашей операционной системы.



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: