Всички сме запознати с думата „Автоматизация“, където човешкото взаимодействие е минимално и нещата могат да се контролират автоматично или дистанционно. Домашната автоматизация е много популярна и взискателна концепция в областта на електрониката и ние също полагаме всички усилия да направим тази концепция лесно разбираема и управляема като проекти за електроника. По-рано сме разработили няколко вида проекти за домашна автоматизация с работещо видео и код, моля, проверете:
- DTMF базирана домашна автоматизация
- GSM базирана домашна автоматизация, използваща Arduino
- Компютърна автоматизирана домашна автоматизация с помощта на Arduino
- Контролирана от Bluetooth автоматизация на дома чрез 8051
- IR дистанционно управлявана домашна автоматизация, използваща Arduino
И в този проект ще изградим следващия си проект за автоматизация на дома, използвайки MATLAB и Arduino, който е базирана на GUI система за домашна автоматизация, използваща Arduino и MATLAB
Компоненти:
- Arduino UNO
- USB кабел
- ULN2003
- Реле 5 волта
- Крушка с държач
- Свързващи проводници
- Лаптоп
- Захранване
- PVT
Работно обяснение:
В този проект използваме MATLAB с Arduino за управление на домакинските уреди чрез графичен потребителски интерфейс в компютъра. Тук използвахме жична комуникация за изпращане на данни от компютър (MATLAB) до Arduino. От страна на компютъра използвахме GUI в MATLAB, за да създадем някои бутони за управление на домакински уреди. За комуникация между Arduino и MATLAB, първо трябва да инсталираме „ Поддръжка на MATLAB и Simulink за Arduino “ или „ Arduino IO пакет “. За целта следвайте стъпките по-долу или проверете видеото по-долу:
- Изтеглете пакета Arduino IO от тук. Трябва да се регистрирате преди изтегляне.
- След това запишете / качете файла adioe.pde в Arduino с помощта на Arduino IDE. Този файл adioe.pde може да бъде намерен в пакета Arduino IO - ArduinoIO \ pde \ adioe \ adioe.pde
- След това отворете софтуера MATLAB, преминете през папката Arduino IO, отворете файла install_arduino.m и го стартирайте в Matlab. Ще видите съобщение на „Arduino папки, добавени към пътя“ в командния прозорец на MATLAB, означава, че пътят MATLAB се актуализира до папки Arduino.
Така правим Arduino, комуникираме с MATLAB. Горният метод е подходящ за „MATLAB R2013b или по-ранни версии“, ако използвате по-високата версия на MATLAB (като R2015b или R2016a), можете директно да кликнете върху раздела Добавки в MATLAB и след това да кликнете върху „Вземете пакети за хардуерна поддръжка“, от където можете да инсталирате Arduino пакети за MATLAB.
След като инсталирате файлове, сега можете да създадете GUI за Проект за автоматизация на дома. По принцип в GUI, ние създаваме бутони за управление на домакинските уреди от компютър. Бутоните могат да бъдат създадени чрез влизане в „Графичен потребителски интерфейс“ в меню „Ново“ в MATLAB. Освен това можем да зададем името и цветовете на тези бутони, създадохме 8 бутона, в които шест за включване и изключване на три домакински уреда и два бутона за включване и изключване едновременно на всички уреди.
След като създадете бутоните, когато щракнете върху бутона Run в този прозорец на GUI, той ще ви помоли да запишете този GUI файл (с разширение.fig), известен също като ' fig file'. Веднага щом запазите файла, той автоматично ще създаде кодов файл (с разширение.m), известен също като „ M файл“ (вижте снимката на екрана по-долу), където можете да поставите кода (даден в раздела Код по-долу). Можете да изтеглите GUI файла и файла с код за този проект от тук: Home_Automation_system.fig и Home_Automation_system.m (щракнете с десния бутон и изберете Запазване на връзката като…), или можете да ги създадете сами, както обяснихме.
След кодирането вече можете най-накрая да стартирате.m файла от прозореца на кода, ще видите „Опит за връзка..“ в командния прозорец. След това се появява съобщение „Arduino успешно свързан“, ако всичко върви добре. И накрая ще видите предварително създаден GUI (бутони) в прозореца на GUI, откъдето можете да управлявате домашните уреди, като просто щракнете върху бутоните в компютъра си. Уверете се, че Arduino е свързан с Arduino чрез USB кабел. Тук в този проект използвахме 3 крушки за демонстрация, което показва Fan, Light и TV.
Работата на целия проект, от инсталирането на пакета за поддръжка на Arduino MATLAB до включването или изключването на уреда, може да бъде разбрана във видеото в края.
Обяснение на веригата:
Веригата на този проект е много лесна. Тук използвахме Arduino UNO платка и реле драйвер ULN2003 за задвижващи релета. Три 5-волтови SPDT релета са свързани към Arduino пин номер 3, 4 и 5, чрез реле драйвер ULN2003, за управление на LIGHT, FAN и TV съответно.
Обяснение на програмирането:
Когато натиснем който и да е бутон от прозореца на GUI, той изпраща някои команди до Arduino и след това Arduino прави тази операция. След като инсталираме пакета за поддръжка на Arduino MATLAB IO, можем да получим достъп до Arduino от MATLAB, като използваме същите функции на Arduino, с някои малки вариации, като:
За да направите ПИН HIGH в Arduino, ние пишем код като digitalWrite (пин, HIGH)
В MATLAB ще използваме тази функция с помощта на обект или променлива като, и по същия начин.
Преди да направим това, трябва да инициализираме променлива по следния начин:
В този проект няма код на Arduino, освен кода или файла за поддръжка на Arduino MATLAB. Както беше обяснено по-рано, кодовият файл (.m файл) се генерира автоматично, докато се запазва GUI файлът (.fig файл). Вече има предварително записан код във.m файл. По принцип това са функции за обратно извикване за бутони, което означава, че можем да определим какво трябва да се случи при щракване върху тези бутони.
В кода на MATLAB първо инициализираме серийния порт и го правим обект с помощта на променлива. И тогава можем да започнем да програмираме като Arduino, използвайки променливата.
ясен ar; глобален ar; ar = arduino ('COM13'); ar.pinMode (3, 'ИЗХОД'); ar.pinMode (4, 'ИЗХОД'); ar.pinMode (5, 'OUTPUT'); ar.pinMode (13, 'ИЗХОД');
Във функцията за обратно извикване на всеки бутон сме написали съответния код за включване или изключване на съответните домакински уреди, свързани към Arduino чрез реле. Както например, функцията за обратно извикване за Light ON е дадена по-долу:
функция light_on_Callback (hObject, eventdata, манипулатори)% hObject манипулатор към light_on (виж GCBO)% eventdata запазени - да се дефинира в бъдеща версия на MATLAB% манипулатор структура с манипулатори и потребителски данни (виж GUIDATA) глобален ar; ar.digitalWrite (3, 1); ar.digitalWrite (13, 1);
По същия начин можем да напишем кода във функциите за обратно извикване на всички бутони, за да контролираме другите свързани домакински уреди, проверете пълния код на MATLAB по-долу (.m файл).