- Необходим материал
- Електрическа схема
- Реле:
- Изчисляване на температурата с помощта на термистор:
- Код на Arduino
- Работа на система за автоматизирана домашна автоматизация:
Да предположим, че седите в стая и ви е студено и искате нагревателят ви да се включи автоматично и след това да се изключи след известно време, когато стайната температура се повиши, тогава този проект ще ви помогне да управлявате автоматично домашните си уреди според температурата. Тук контролираме домашните променливотокови уреди с Arduino въз основа на температурата. Тук използвахме термистор за отчитане на температурата. Вече свързахме термистора с Arduino и показахме температурата на LCD.
В този урок ще прикачим уред за променлив ток с реле и ще направим система за домашна автоматизация с контролирана температура, използвайки Arduino. Той също така показва температурата и състоянието на уреда на 16 * 2 LCD дисплея, свързан с веригата.
Необходим материал
- Arduino UNO
- Реле (5v)
- 16 * 2 LCD дисплей
- Крушка (CFL)
- NTC термистор 10k
- Свързващи проводници
- Резистори (1k и 10k ома)
- Потенциометър (10k)
Електрическа схема
Тази система за домашна автоматизация, базирана на температура, се състои от различни компоненти като платка Arduino, LCD дисплей, реле и термистор. Работата зависи главно от релето и термистора, тъй като повишената температура релето ще се включи и ако температурата намалее под предварително зададената стойност, релето ще се изключи. Битовият уред, свързан с релето, също ще се включва и изключва съответно. Тук използвахме CFL крушка като AC уред. Целият процес на задействане и настройката на температурата се извършва от програмираната платка Arduino. Той също така ни дава подробности за промяната на температурата на всеки половин секунда и състоянието на уреда на LCD екрана.
Реле:
Релето е електромагнитен превключвател, който се управлява от малък ток и се използва за включване и изключване на относително много по-голям ток. Означава, че чрез прилагане на малък ток можем да включим релето, което позволява да тече много по-голям ток. Релето е добър пример за управление на устройствата с променлив ток (променлив ток), като се използва много по-малък постоянен ток. Често използвани Relay е Single Pole Double Throw (SPDT) Relay, тя има пет извода като по-долу:
Когато няма напрежение, приложено към бобината, COM (общ) е свързан към NC (нормално затворен контакт). Когато има някакво напрежение, приложено към бобината, генерираното електромагнитно поле, което привлича котвата (лост, свързан към пружината), и COM и NO (нормално отворен контакт) се свързват, което позволява по-голям ток да тече. Релетата се предлагат в много рейтинги, тук използвахме 5V реле за работно напрежение, което позволява да тече ток 7A-250VAC.
Релето е конфигурирано с помощта на малка схема на драйвер, която се състои от транзистор, диод и резистор. Транзисторът се използва за усилване на тока, така че пълният ток (от източника на постоянен ток - 9v батерия) да тече през намотка, за да го енергизира напълно. Резисторът се използва за осигуряване на отклонение към транзистора. А диодът се използва за предотвратяване на обратен ток, когато транзисторът е изключен. Всяка индукторна намотка произвежда еднаква и противоположна ЕМП при внезапно изключване, това може да причини трайни повреди на компонентите, така че трябва да се използва диод за предотвратяване на обратен ток. А Relay модул е лесно на разположение на пазара с цялата си Driver схема на дъската или можете да го създадете с помощта на по-горе компоненти. Тук използвахме 5V релеен модул
Изчисляване на температурата с помощта на термистор:
От веригата на делителя на напрежението знаем, че:
V изход = (V в * Rt) / (R + Rt)
Така стойността на Rt ще бъде:
Rt = R (Vin / Vout) - 1
Тук Rt ще бъде съпротивлението на термистора (Rt) и R ще бъде 10k ома резистор.
Това уравнение се използва за изчисляване на съпротивлението на термистора от измерената стойност на изходното напрежение Vo. Можем да получим стойността на Voltage Vout от стойността на ADC на пин A0 на Arduino, както е показано в Arduino Code, даден по-долу.
Изчисляване на температурата от съпротивлението на термистора
Математически съпротивлението на термистора може да се изчисли само с помощта на уравнението на Стайн-Харт.
T = 1 / (A + B * ln (Rt) + C * ln (Rt) 3)
Където A, B и C са константите, Rt е съпротивлението на термистора и ln представлява log.
Постоянната стойност за термистора, използван в проекта, е A = 1.009249522 × 10 −3, B = 2.378405444 × 10 −4, C = 2.019202697 × 10 −7. Тези постоянни стойности могат да бъдат получени от калкулатора тук, като се въведат трите стойности на съпротивлението на термистора при три различни температури. Можете или да получите тези постоянни стойности директно от листа с данни на термистора, или можете да получите три стойности на съпротивление при различна температура и да получите стойностите на константите с помощта на дадения калкулатор.
Така че, за изчисляване на температурата се нуждаем само от стойността на съпротивлението на термистора. След получаване на стойността на Rt от изчислението, дадено по-горе, поставете стойностите в уравнението на Щайн-Харт и ще получим стойността на температурата в единица Келвин. Тъй като има малка промяна в изходното напрежение, причинете промяна в температурата.
Код на Arduino
Пълният код на Arduino за този домакински уред с контролирана температура е даден в края на тази статия. Тук обяснихме няколко части от него.
За извършване на математическа операция използваме заглавния файл „#include
#include
За настройка на релето (като изход) и LCD по време на започнем ние трябва да пишат код в невалидни настройка част
Настройка за празнота () {lcd.begin (16,2); lcd.clear (); pinMode (RELAY, OUTPUT); }
За изчисляване на температурата чрез уравнение на Щайн-Харт, използвайки електрическото съпротивление на термистора, ние изпълняваме някои прости математически уравнения в код, както е обяснено в изчислението по-горе:
плувка a = 1.009249522e-03, b = 2.378405444e-04, c = 2.019202697e-07; float T, logRt, Tf, Tc; плаващ термистор (int Vo) {logRt = log (10000.0 * ((1024.0 / Vo-1))); T = (1.0 / (a + b * logRt + c * logRt * logRt * logRt)); // Получаваме температурната стойност в Келвин от това уравнение на Стайн-Харт Tc = T - 273,15; // Конвертиране на Келвин в Целзий Tf = (Tc * 1.8) + 32.0; // Преобразуване на Келвин във Фаренхайт връщане T; }
В кода по-долу функционалният термистор отчита стойността от аналоговия щифт на Arduino и отпечатва стойността на температурата, като извършва математическата операция
lcd.print ((Термистор (analogRead (0))));
И тази стойност се приема от функцията Термистор и след това изчислението започва да печата
плаващ термистор (int Vo)
Трябва да напишем кода за състоянието на включване и изключване на светлината според температурата, тъй като задаваме температурната стойност, като ако температурата се повиши над 28 градуса по Целзий, светлините ще се включат, ако по-малко светлини останат изключени. Така че, когато температурата надвиши над 28 градуса, ние трябва да направим РЕЛЕ ПИН (ПИН 8) висок, за да включим релейния модул. И когато температурата падне под 28 градуса, трябва да направим щифта RELAY нисък, за да изключим релейния модул.
ако (Tc> 28) digitalWrite (RELAY, HIGH), lcd.setCursor (0,1), lcd.print ("Light status: ON"), закъснение (500); в противен случай ако (Tc <28) digitalWrite (RELAY, LOW), lcd.setCursor (0,1), lcd.print ("Light status: OFF"), delay (500);
Работа на система за автоматизирана домашна автоматизация:
За да осигурите захранването на Arduino, можете да го захранвате чрез USB към вашия лаптоп или да свържете 12v адаптер. LCD е свързан с Arduino за показване на температурни стойности, термисторът и релето са свързани според схемата на веригата. Аналоговият щифт (A0) се използва за проверка на напрежението на термисторния щифт във всеки момент и след изчислението с помощта на уравнението на Щайн-Харт чрез кода на Arduino можем да измерим температурата и да я покажем на LCD в Целзий и Фаренхайт.
Тъй като температурата се повишава над 28 градуса по Целзий Arduino прави релейния модул включен, като прави Pin 8 HIGH (където е свързан релейният модул), когато температурата падне под 28 градуса Arduino изключва релейния модул, като прави Pin LOW. CFL крушката също ще се включва и изключва според модула Relay.
Тази система може да бъде много полезна в проекта за контролиран температурен вентилатор и автоматичен регулатор на температурата.
Също така проверете нашите много видове проекти за домашна автоматизация, използващи различни технологии и микроконтролери като: