Умен дом, базиран на контролери на Arduino: дизайн и организация на контролирано пространство
Развитието на автоматизацията доведе до създаването на интегрирани системи, които подобряват качеството на човешкия живот. Много известни производители на електронна и софтуерна среда предлагат стандартни решения за различни продукти.
Дори неопитен потребител ще може да разработи независими проекти и да сглоби „интелигентен дом“ на Arduino, за да отговаря на неговите нужди. Основното е да разберете основите и да не се страхувате да експериментирате.
В тази статия ще разгледаме принципа на създаване и основните функции на автоматизирана къща, базирана на устройства на Arduino. Също така разгледайте типовете използвани дъски и основните модули на системата.
Съдържанието на статията:
Създаване на системи на платформата Arduino
Arduino е платформа за разработване на електронни устройства с автоматично, полуавтоматично или ръчно управление. Той е направен според принципа на конструктор с ясно определени правила за взаимодействието между елементите. Системата е отворена, което позволява на трети производители да участват в нейното развитие.
Класически “умен дом”Състои се от автоматизирани единици, които изпълняват следните функции:
- събиране на необходимата информация чрез сензори;
- анализирайте данни и вземайте решения, като използвате програмируем микропроцесор;
- реализирайте решенията, взети чрез издаване на команди на различни устройства.
Платформата Arduino е добра именно защото не се доближава до конкретен производител, но позволява на потребителя да избере компонентите, които му подхождат. Изборът им е огромен, така че можете да реализирате почти всякакви идеи.
Препоръчваме ви да се запознаете с най-добрите умни устройства за дома.
В допълнение към разнообразието от свързани устройства, програмната среда, реализирана в C ++, добавя променливост.Потребителят може не само да се възползва от създадените библиотеки, но и да програмира реакцията на системните компоненти на възникващи събития.
Основни елементи на дъската
Основният елемент на интелигентния дом е една или повече централни (дънни) дъски. Те са отговорни за взаимодействието на всички елементи. Само след като определим задачите, които ще трябва да бъдат решени, можем да пристъпим към избора на основния възел на системата.
Дънната платка комбинира следните елементи:
- Микроконтролер (процесор). Основната му цел е да издава и измерва напрежението в портовете в диапазона 0-5 или 0-3.3 V, да съхранява данни и да извършва изчисления.
- Програмист (не всички дъски го имат). С помощта на това устройство в паметта на микроконтролера се записва програма, според която „умният дом“ ще работи. Свързва се с компютър, таблет, смартфон или друго устройство, използвайки USB интерфейс.
- Стабилизатор на напрежението. Необходимо е 5 волтово устройство, необходимо за захранване на цялата система.
Под марката Arduino се предлагат няколко модела дънна платка. Те се различават един от друг по форма фактор (размер), брой портове и размер на паметта. Именно за тези показатели трябва да изберете правилното устройство.
Има два типа пристанища:
- цифровкоито са отбелязани на дъската с букви "D";
- аналогмаркирани с буква "А".
Благодарение на тях микроконтролерът комуникира със свързани устройства. Всеки порт може да работи както при получаване на сигнал, така и върху неговия изход. Цифровите портове, означени като "pwm", са предназначени за въвеждане и извеждане на сигнал от тип PWM (модулация на импулсна ширина).
Ето защо, преди да закупите дъска, трябва поне приблизително да оцените нивото на нейното натоварване на различни устройства. Това ще определи желания брой портове от всички видове.
Трябва да се разбере, че системата „интелигентен дом“ не трябва да бъде свързана в контролно устройство, базирано на една дънна платка. Такива функции като например включване на изкуствено осветление на местната зона в зависимост от времето на деня и поддържане на водния резерв в резервоара за съхранение са независими една от друга.
От гледна точка на осигуряването на надеждността на електронната система е по-добре да се разделят несвързани задачи в различни блокове, което концепцията на Arduino улеснява изпълнението. Ако комбинирате много устройства на едно място, възможно е микропроцесорът да се прегрява, да се конфликтират библиотеките на софтуера и да се затруднят намирането и отстраняването на софтуерни и хардуерни неизправности.
Всеки микропроцесор е оборудван с три вида памет:
- Флаш памет Основната памет, в която се съхранява програмният код за управление на системата. Една малка част от него (3-12%) е заета от кабелния зареждащ механизъм.
- SRAM. RAM, която съхранява временни данни, необходими за програмата. Различава се с висока скорост на работа.
- EEPROM. По-бавна памет, в която също могат да се съхраняват данни.
Основната разлика между видовете памет за съхранение на данни е, че когато захранването е изключено, информацията, която се записва в SRAM, се губи, но остава в EEPROM. Но енергонезависимият тип има и недостатък - ограничен брой цикли на запис. Това трябва да се помни, когато създавате свои собствени приложения.
За разлика от използването на Arduino в роботиката, за повечето задачи на „интелигентния дом“ не ви трябва много памет нито за програми, нито за съхранение на информация.
Видове дъски за изграждане на умен дом
Помислете за основните видове дъски, които най-често се използват при сглобяване на система за интелигентно жилище.
Вижте №1 - Arduino Uno и неговите производни
Най-разпространените системи за интелигентен дом използват дъските Arduino Uno и Arduino Nano. Те имат достатъчно функционалност за решаване на типични проблеми.
Основни параметри на Arduino Uno Rev3:
- процесор: ATMega328P (8 бита, 16 MHz);
- брой цифрови портове: 14;
- от които с PWM функция: 6;
- брой аналогови портове: 6;
- флаш памет: 32 KB;
- SRAM: 2 KB;
- EEPROM: 1 KB.
Не толкова отдавна излезе модификация - Uno Wi-Fi, която съдържа интегриран модул ESP8266, който ви позволява да обменяте информация с други устройства според стандарта 802.11 b / g / n.
Разликата между Arduino Nano и по-големия му аналог е липсата на собствен захранващ гнездо от 12 V. Това се прави, за да се постигне по-малко устройство, което улеснява скриването в малко пространство. Също за тези цели стандартната USB връзка се заменя с чип с mini-USB кабел. Arduino Nano има още 2 аналогови порта в сравнение с Uno.
Има още една модификация на Uno дъската - Arduino Mini. Той е дори по-малък от Нано и е много по-трудно да се работи с него. Първо, липсата на USB порт създава проблем с фърмуера, тъй като за това ще трябва да използвате USB-сериен конвертор. Второ, тази платка е по-придирчива по отношение на мощността - необходимо е да се осигури обхват на входното напрежение от 7-9 V.
Поради гореописаните причини, борда Arduino Mini рядко се използва за работа с „умен дом“. Обикновено се използва или в роботиката, или при изпълнението на готови проекти.
Изглед №2 - Ардуино Леонардо и Микро
Дъската Arduino Leonardo е подобна на Uno, но малко по-мощна. Друга интересна особеност на този модел е неговата дефиниция, когато е свързан към компютър като клавиатура, мишка или джойстик. Поради това той често се използва за създаване на оригинални игрални устройства и симулации.
Основните параметри на Arduino Leonardo са следните:
- процесор: ATMega32u4 (8 бита, 16 MHz);
- брой цифрови портове: 20;
- от които с PWM функция: 7;
- брой аналогови портове: 12;
- флаш памет: 32 KB;
- SRAM: 2,5 KB;
- EEPROM: 1 KB.
Както можете да видите от списъка с параметри, Леонардо има повече портове, което позволява зареждането на този модел с голям брой сензори.
Също така за Леонардо има напълно идентичен миниатюрен аналог, наречен Micro. Липсва му мощност от 12 V и вместо пълноценен USB вход има чип за mini-USB кабел.
Модификацията на Леонардо, наречена Esplora, е чисто игрови модел и не отговаря на нуждите на „умен дом“.
Изглед №3 - Arduino 101, Arduino Zero и Arduino MKR1000
Понякога за работата на системи „интелигентен дом“, реализирани на базата на Arduino, е необходима голяма изчислителна мощност, която 8-битовите микроконтролери не са в състояние да осигурят. Задачи като разпознаване на глас или изображение изискват бърз процесор и значително количество RAM памет за такива устройства.
За решаването на тези специфични проблеми се използват мощни табла, които работят според концепцията на Arduino. Броят на портовете, които имат, е приблизително същият като този на Uno или Leonardo дъски.
Една от най-лесните за използване, но мощни дъски - Arduino 101 има следните характеристики:
- процесор: Intel Curie (32 бита, 32 MHz);
- флаш памет: 196 KB;
- SRAM: 24 KB;
- EEPROM: не.
Освен това платката е оборудвана с BLE-функционалност (Bluetooth с ниска енергия) с възможност за лесно свързване на готови решения, като сензор за сърдечен пулс, получаване на информация за времето извън прозореца, изпращане на текстови съобщения и т.н. В устройството са интегрирани и жироскоп и акселерометър, но те се използват главно в роботиката.
Друг подобен борд - Arduino Zero има следните показатели:
- процесор: SAM-D21 (32 бита, 48 MHz);
- флаш памет: 256 KB;
- SRAM: 32 KB;
- EEPROM: не.
Отличителна черта на този модел е наличието на интегриран отладчик (EDBG). Използването му е много по-лесно за търсене на грешки при програмиране на дъската.
Arduino MKR1000 е друг модел, подходящ за мощни изчисления.Той има микропроцесор и памет, подобни на Zero. Основната му разлика е наличието на интегриран Wi-Fi чип с 802.11 b / g / n протокол и крипто чип с поддръжка на алгоритъма SHA-256 за защита на предаваните данни.
Вижте # 4 - Мега модели от семейството
Понякога е необходимо да се използва голям брой сензори и да се контролира значителен брой устройства. Например, това е необходимо за автоматичното функциониране на разпределените климатични системи, които поддържат определена температура за отделни зони.
За всяка местна зона е необходимо да се проследяват показанията на два температурни датчика (вторият се използва като управление) и в съответствие с алгоритъма да се регулира положението на амортисьора, което определя количеството топъл въздух.
Ако във вилата има повече от 10 такива зони, тогава са необходими повече от 30 порта за контрол на цялата система. Разбира се, можете да използвате няколко Uno платки под общия контрол на една от тях, но това създава допълнителни трудности при превключване. В този случай е препоръчително да се използват модели от семейство Мега.
Arduino Mega е базиран на доста прост 8-битов 16-MHz aTMega1280 микропроцесор.
Има голямо количество памет:
- флаш памет: 128 KB;
- SRAM: 8 KB;
- EEPROM: 4 KB.
Но основното му предимство е наличието на много портове:
- брой цифрови портове: 54;
- от които с PWM функция: 15;
- брой аналогови портове: 16.
Тази дъска има две модерни разновидности:
- Mega 2560 е базиран на микропроцесора aTMega2560, разполагащ с голяма флаш памет - 256 KB;
- В допълнение към микропроцесора aTMega2560, Mega ADK е оборудван с USB интерфейс с възможност за свързване към устройства, базирани на операционната система Android.
Моделът ADK на Arduino Mega има една характеристика. Когато свързвате телефона към USB входа, е възможна следната ситуация: ако телефонът се нуждае от зареждане, той ще започне да го „издърпва“ от платката. Следователно има допълнително изискване за източник на електричество - той трябва да осигурява сила на тока 1,5 ампера. Когато доставяте батерии, трябва да се има предвид това състояние.
Due е друг модел Arduino, който съчетава мощността на микропроцесор и голям брой портове.
Характеристиките му са следните:
- процесор: Atmel SAM3X8E (32 бита, 84 MHz);
- брой цифрови портове: 54;
- от които с PWM функция: 12;
- брой аналогови портове: 14;
- флаш памет: 512 KB;
- SRAM: 96 KB;
- EEPROM: не.
Аналоговите контакти на тази платка могат да работят както в обичайната 10-битова резолюция за Arduino, която се прави за съвместимост с предишни модели, така и в 12-битова резолюция, която ви позволява да получите по-точен сигнал.
Характеристики на взаимодействието на модулите чрез портове
Всички модули, които ще бъдат свързани към платката, имат най-малко три изхода. Два от тях са силови проводници, т.е. „Заземяване“, както и напрежение от 5 или 3,3 V. Третият проводник е логичен. Предава данни към пристанището. За да свържете модулите, използвайте специални проводници, групирани в 3 броя, които понякога се наричат джъмпери.
Тъй като моделите на Arduino обикновено имат само 1 порт с напрежение и 1-2 порта със земя, за да свържете няколко устройства, ще трябва или да спойкате проводниците или да използвате дъски.
Запояването е по-надеждно и се използва в устройства, които са подложени на физическо въздействие, например контролни табла за роботи и квадрокоптери. За интелигентен дом е по-добре да използвате дъски, тъй като е по-лесно както по време на инсталирането, така и при премахването на модул.
При някои модели (например Arduino Zero и MKR1000) работното напрежение е 3,3 V, така че ако по-висока стойност се приложи към портовете, тогава платката може да се повреди. Цялата информация за захранването е налична в техническата документация за устройството.
Карти за добавяне (щитове)
За да увеличите възможностите на дънните платки, използвайте щитове (Shields) - разширяване на функционалността на допълнителни устройства. Те са направени за специфичен форм-фактор, който ги отличава от модулите, които се свързват към портове. Щитовете са по-скъпи от модулите, но работата с тях е по-лесна. Те също са оборудвани с готови библиотеки с код, което ускорява разработването на собствените им контролни програми за „интелигентния дом“.
Щитове прото и сензор
Тези два стандартни екрана не носят никакви особености. Те се използват за по-компактно и удобно свързване на голям брой модули.
Proto Shield е почти пълно копие на оригинала от гледна точка на портове, а в средата на модула можете да залепите дъска. Това прави монтажа по-лесен. Такива добавки съществуват за всички дъски Arduino в цяла дължина.
Но ако има много устройства (повече от 10), тогава е по-добре да използвате по-скъпи пластини за сензорни щитове.
Те нямат бордборд, но всички заключения на портовете са индивидуално снабдени с мощност и заземяване. Това ви позволява да не се бъркате в проводниците и джъмперите.
Също така на тази платка има подложки за лесно свързване на няколко модула: Bluetoots, SD карти, RS232 (COM-порт), радио и ултразвук.
Свързване на спомагателна функционалност
Щитове с интегрирана функционалност, предназначени за решаване на сложни, но типични задачи. Ако трябва да внедрите оригинални идеи, по-добре е да изберете правилния модул.
Моторен щит. Той е предназначен да контролира скоростта и въртенето на двигатели с малка мощност. Оригиналният модел е оборудван с един чип L298 и може да работи едновременно с два DC двигателя или с едно серво задвижване. Има съвместима част от трети производител, която има два чипа L293D с възможност за управление на два пъти повече дискове.
Реле щит. Често използван модул с интелигентни домашни системи. Платка с четири електромеханични релета, всяко от които позволява преминаване на ток със сила до 5А. Това е достатъчно за автоматично включване и изключване на киловат устройства или осветителни линии, проектирани за променлив ток 220 V.
LCD щит. Позволява ви да показвате информация на вградения екран, който може да бъде надстроен до TFT устройство. Това разширение често се използва за създаване на метеорологични станции с отчитане на температурата в различни жилищни помещения, пристройки, гараж, както и температура, влажност и скорост на вятъра на улицата.
Щит за регистриране на данни. Основната задача на модула е да записва данни от сензори на пълноформатна SD карта до 32 Gb с поддръжка на файловата система FAT32. За да записвате на микро SD карта, трябва да закупите адаптер. Този щит може да се използва като хранилище на информация, например при запис на данни от DVR. Продукция на американската компания Adafruit Industries.
Щит за SD-карта. По-опростена и по-евтина версия на предишния модул. Такива разширения се издават от много производители.
EtherNet Shield. Официалният модул за свързване на Arduino към Интернет без компютър. Има слот за micro SD карта, който ви позволява да записвате и изпращате данни през световна мрежа.
Wi-Fi щит. Позволява ви да обменяте безжично информация с поддръжка за криптиране. Служи за връзка с Интернет и устройства, които могат да бъдат контролирани чрез Wi-Fi.
GPRS щит. Този модул по правило се използва за комуникация на „интелигентен дом” със собственика по мобилен телефон чрез SMS съобщения.
Интелигентни модули за дома
Свързването на модули на трети страни и възможността за работа с тях чрез вградения език за програмиране е основното предимство на отворената система Arduino в сравнение с „патентованите“ решения за „интелигентен дом“. Основното е, че модулите имат описание на приетите или предаваните сигнали.
Начини за получаване на информация
Информацията може да бъде въведена чрез цифрови или аналогови портове. Зависи от вида на бутона или сензора, който получава информацията и я предава на платката.
Сигналът до микропроцесора може да бъде изпратен от лице, което използва два метода за това:
- Натискане на бутон (клавиши), Логическият проводник в този случай отива към цифровия порт, който получава стойността „0“ в случай на освободения бутон и „1“ в случай на натискане.
- Въртене на капачката на въртящия се потенциометър (резистор) или плъзгач на лоста за превключване В този случай логическият проводник отива към аналоговия порт. Напрежението преминава през аналогово-цифров преобразувател, след което данните отиват в микропроцесора.
Бутоните се използват за стартиране на събитие, например за включване и изключване на светлините, отопление или вентилация. Ротационните копчета се използват за промяна на интензивността - увеличаване или намаляване на яркостта на светлината, силата на звука или скоростта на въртене на лопатките на вентилатора.
Сензорите се използват за автоматично определяне на параметрите на средата или произхода на събитието.
Следните разновидности са най-търсени за работата на „умен дом“:
- Звуков сензор. Дигиталните версии на това устройство се използват за задействане на събитие чрез поп или глас. Аналоговите модели ви позволяват да разпознавате и обработвате звук.
- Светлинен сензор. Тези устройства могат да работят както във видимия, така и в инфрачервения диапазон. Последното може да се използва като система за предупреждение за пожар.
- Датчик за температура. За къщата и улицата те използват различни модели, тъй като външните са по-добре защитени от влага. На жицата има и отдалечени устройства.
- Сензор за влажност. Моделът DHT11 е подходящ за вътрешна употреба, а по-скъпият DHT22 за външна употреба. И двете устройства могат също да дадат отчитане на температурата. Свържете се към цифров порт.
- Сензор за налягане на въздуха. За да работите с Arduino дъски, аналоговите барометри на Bosh са се доказали: bmp180, bmp280. Те също измерват температурата. Моделът bme280 може да се нарече метеорологична станция, тъй като допълнително дава и стойност на влажността.
- Сензори за движение и присъствие Те се използват за целите на сигурността или за автоматично включване на светлината.
- Сензор за дъжд. Реагира на вода, навлизаща в повърхността му. Той може да се използва и за задействане на аларма за течове във водата или отоплителния кръг.
- Ток сензор. Те се използват за откриване на счупени електрически уреди (изгорели лампи) или за анализ на напрежението, за да се предотврати претоварването.
- Сензор за изтичане на газ Използва се за откриване и реагиране на повишени концентрации на пропан.
- Сензор за въглероден диоксид Използва се за определяне на концентрацията на въглероден диоксид в дневни и в специални помещения, като винарски изби, където се извършва ферментация.
Има много различни сензори за конкретни задачи, например за измерване на теглото, дебита на водата, разстоянието, почвената влага и т.н.
Много сензори и сензори могат да бъдат направени независимо с помощта на по-прости компоненти. Ще струва по-малко.Но за разлика от използването на серийни устройства, ще трябва да отделите време за калибриране.
Управление на инструменти и системи
В допълнение към събирането и анализа на информация, „умен дом“ трябва да реагира на възникващи събития. Наличието на модерна електроника на съвременните домакински уреди ви позволява да получите достъп до тях директно с помощта на Wi-Fi, GPRS или EtherNet. Обикновено за системи Arduino те осъществяват превключване на микропроцесор и високотехнологични устройства чрез Wi-Fi.
За да използвате Arduino за включване на климатика при висока температура в къщата, блокиране на телевизора и интернет през нощта в детската стая или стартиране на отоплителния котел при пристигането на собствениците, трябва да се извършат три стъпки:
- Инсталирайте Wi-Fi модула на дънната платка.
- Намерете незаети честотни канали, за да избегнете конфликти в системите.
- Разберете командите на инструментите и действията на програмата (или използвайте готови библиотеки).
В допълнение към „комуникацията“ с компютризирани устройства, често възникват задачи, свързани с извършването на каквито и да е механични действия. Например, можете да свържете серво задвижване или малка скоростна кутия към платката, която ще се захранва от него.
Ако е необходимо да свържете мощни устройства, работещи от външен източник на захранване, използвайте две опции:
- Включване в релейна верига.
- Свързване на ключа за захранване и триака.
Електрическа верига електромагнитна или твърдо състояние реле затваря и отваря един от проводниците по команда от микропроцесора. Основната им характеристика е максимално допустимият ток (например 40 A), който може да премине през това устройство.
Що се отнася до свързването на захранващ превключвател (mosfet) за постоянен ток и триак за променлив ток, те имат по-ниска стойност на допустимата сила на тока (5-15 A), но могат плавно да увеличат натоварването. Именно поради тази причина, PWM портовете са предвидени на платките. Това свойство се използва за контрол на яркостта на осветлението, скоростта на вентилатора и т.н.
Използвайки релета и захранващи превключватели, можете напълно да автоматизирате всички електрически вериги на къщата и да стартирате генератора при липса на ток. Затова на базата на Arduino реалистично е възможно да се осигури независимо жилище или сграда, включително всички особено важни функции - отопление, водоснабдяване, канализация, вентилация и охранителна система.
Искате ли домът ви да е по-интелигентен, но с програмиране за „вие“? В този случай препоръчваме да разгледате готови решения от Xiaomi и Apple, които са лесни за инсталиране и конфигуриране дори за начинаещ. И дори можете да издавате команди и да контролирате тяхното изпълнение дори от вашия смартфон.
Повече за интелигентния дом от Xiaomi и Apple в следващите статии:
- Умен дом на Xiaomi: дизайнерски функции, преглед на основните компоненти и работни елементи
- Apple умния дом: тънкостите на организирането на системи за домашен контрол от ябълковата компания
Изводи и полезно видео по темата
Пример за самостоятелно сглобено празно входно ниво за „интелигентен дом“:
Отвореността на платформата Arduino позволява използването на компоненти от различни производители. Това улеснява проектирането на „интелигентен дом“ за потребителски заявки. Ето защо, ако има поне незначителни знания в областта на програмирането и свързването на електронни устройства, струва си да обърнете внимание на тази система.
На практика познавате ли платформата Arduino и искате да споделите опита си с новодошлите в този бизнес? Може би искате да допълнете горния материал с полезни препоръки или коментари? Напишете вашите коментари под тази публикация.
Ако имате някакви въпроси относно проектирането на автоматизирана къща система, базирана на Arduino, попитайте нашите експерти и други посетители на сайта в блока по-долу.