- Необходими материали:
- Методика на работа:
- Предварителни условия:
- Работа на дистанционно управление с променлив ток:
- Електрическа схема и обяснение:
- Декодиране на вашите дистанционни сигнали за променлив ток:
- Основна програма Arduino:
- Работа на автоматична система за контрол на температурата на променлив ток:
Климатик (климатик), който някога се смяташе за луксозен артикул и се намираше само в големи хотели, киносалони, ресторанти и т.н…. Но сега почти всеки има климатик в дома ни, за да победи лятото / зимата и тези, които я имат, се тревожат за едно общо нещо. Това е тяхното голямо потребление на електроенергия и зарядни устройства поради това. В този проект ще направим малка схема за автоматичен контрол на температурата, която би могла да сведе до минимум зарядните устройства за електроенергия чрез автоматично промяна на температурата на променлив ток в зависимост от температурата в помещенията. Чрез периодично променяне на зададената температура можем да избегнем AC да работи за по-ниски температурни стойности дълго време и по този начин да консумира по-малко енергия.
Повечето от нас биха имали ситуация, в която трябва да променим зададената температура на климатика на различни стойности през различно време от деня, така че да ни е удобно през цялото време. За да автоматизира този процес, този проект използва сензор за температура (DHT11), който отчита настоящата температура на помещението и въз основа на тази стойност ще изпраща команди към променливотока чрез IR бластер, подобен на дистанционното управление на променлив ток. AC ще реагира на тези команди, сякаш реагира на дистанционното и по този начин регулира температурата. Тъй като температурата в стаята ви се променя, Arduino също така ще регулира зададената температура на вашия променлив ток, за да поддържа температурата ви точно такава, каквато искате да бъде. Звучи готино, нали?… Да видим как да го изградим.
Необходими материали:
- Arduino Mega 2560
- TSOP1738 (HS0038)
- IR Led
- DHT11 Сензор за температура / влажност
- Всеки цветен светодиод и 1K резистор (по избор)
- Макет
- Свързване на проводници
Методика на работа:
Всички дистанционни управления в дома ни, които използваме за управление на телевизия, домашно кино, променлив ток и т.н., работят с помощта на IR Blasters. Един IR бластер е нищо друго освен IR LED, които могат да бластер сигнал от повтарящи пулсиращ; този сигнал ще бъде прочетен от приемника в електрониката. За всеки различен бутон на дистанционното ще се пропусне уникален сигнал, който след прочитане от приемника се използва за изпълнение на определена предварително дефинирана задача. Ако успеем да прочетем този сигнал, излизащ от дистанционното, тогава можем да имитираме същия сигнал, използвайки IR светодиод, когато някога е бил необходим за изпълнение на тази конкретна задача. Преди това направихме IR Blaster схема за Universal IR Remote.
А TSOP е IR приемник, който може да се използва за декодиране на сигнала, който идва от дистанционни управления. Този приемник ще бъде свързан с Arduino, за да сигнализира за всеки бутон и след това ще бъде използван IR Led с Arduino, за да имитира сигнала, когато някога се изисква. По този начин можем да получим контрол над нашия AC чрез Arduino.
Сега остава само да прочетете стойността на температурата с помощта на DHT11 и да инструктирате AC съответно, използвайки IR сигналите. За да изглежда проектът по-привлекателен и лесен за употреба, добавих и OLED дисплей, който показва текущата температура, влажност и променлива температура. Научете повече за използването на OLED с Arduino.
Предварителни условия:
Този проект за автоматичен регулатор на температурата на променлив ток е леко усъвършенстван за ниво за начинаещи, но с помощта на няколко други урока всеки може да го изгради с времето. Така че, ако сте абсолютен начинаещ в OLED, DHT11 или TSOP, тогава любезно се върнете към тези уроци по-долу, където можете да научите основите и как да започнете с тях. Списъкът може да изглежда малко дълъг, но повярвайте ми, че е лесен и си заслужава да се научи, а също така ще отвори врати за много нови проекти.
- Основна схема, използваща TSOP и IR LED, за да работи под тяхната работа
- Основно ръководство за свързване на DHT11 с Arduino
- Основно ръководство за взаимодействие за OLED с Arduino
- Взаимодействие на TSOP с Arduino за четене на IR дистанционни стойности
Уверете се, че имате Arduino Mega и всяка друга версия на Arduino, тъй като размерът на кода е тежък. Също така проверете дали вече сте инсталирали следните библиотеки на Arduino, ако не ги инсталирате, направете връзката по-долу
- IR отдалечена библиотека за TSOP и IR Blaster
- Библиотека на Adafruit за OLED
- Графична библиотека GFX за OLED
- DHT11 Сензорна библиотека за датчик за температура
Работа на дистанционно управление с променлив ток:
Преди да пристъпим към проекта, отделете малко време и забележете как работи вашето дистанционно управление с променлив ток. AC дистанционните работят по малко по-различен начин в сравнение с телевизионните, DVD IR дистанционните. Възможно е на вашето дистанционно управление да има само 10-12 бутона, но те ще могат да изпращат много различни видове сигнали. Това означава, че дистанционното не изпраща един и същ код всеки път за един и същ бутон. Например, когато намалите температурата с помощта на бутона надолу, за да я направите 24 ° C (градуса по Целзий), ще получите сигнал с набор от данни, но когато го натиснете отново, за да зададете 25 ° C, няма да получите същото данни, тъй като температурата вече е 25, а не 24. По същия начин кодът за 25 също ще варира за различните скорости на вентилатора, настройките за сън и т.н. Така че нека не се занимаваме с всички опции и просто концентрираме само температурните стойности с постоянна стойност за други настройки.
Друг проблем е количеството данни, които се изпращат за всяко натискане на бутон, нормални дистанционни с изпращане или 24 бита, или 48 бита, но дистанционното управление с променлив ток може да изпрати до 228 бита, тъй като всеки сигнал съдържа много информация като Temp, Fan Speed, Време за заспиване, стил на люлка и т.н. Това е причината, поради която се нуждаем от Arduino Mega за по-добри възможности за съхранение.
Електрическа схема и обяснение:
За щастие хардуерната настройка на този проект за автоматичен контрол на температурата на променлив ток е много лесна. Можете просто да използвате макет и да направите връзките, както е показано по-долу.
Следващата таблица също може да се използва за проверка на връзките ви.
S.No: |
Компонентен щифт |
Arduino Pin |
1 |
OLED - Vcc |
5V |
2 |
OLED - Gnd |
Gnd |
3 |
OLED- SCK, D0, SCL, CLK |
4 |
4 |
OLED - SDA, D1, MOSI, данни |
3 |
5 |
OLED- RES, RST, RESET |
7 |
6 |
OLED- DC, A0 |
5 |
7 |
OLED- CS, Chip Select |
6 |
8 |
DHT11 - Vcc |
5V |
9 |
DHT11 - Gnd |
Gnd |
10 |
DHT11 - Сигнал |
13 |
11. |
TSOP - Vcc |
5V |
12 |
TSOP - Gnd |
Gnd |
13 |
IR Led - анод |
9 |
14. |
IR Led - Катод |
Gnd |
След като свържете връзките, това трябва да изглежда по следния начин, показано по-долу. Използвах Breadboard, за да подреждам нещата, но можете и директно от мъжки към женски проводници, за да свържете всички компоненти
Декодиране на вашите дистанционни сигнали за променлив ток:
Първата стъпка за управление на вашия AC е да използвате TSOP1738 за декодиране на IR кодове за дистанционно управление. Направете всички връзки, както е показано на електрическата схема и се уверете, че сте инсталирали всички споменати библиотеки. Сега отворете примерната програма “ IRrecvDumpV2 ”, която можете да намерите във Файл -> Примери -> IRremote -> IRrecvDumpV2 . Качете програмата на вашия Arduino Mega и отворете серийния монитор.
Насочете дистанционното си към TSOP и натиснете произволен бутон, за всеки бутон, който натиснете, съответният сигнал ще бъде прочетен от TSOP1738, декодиран от Arduino и показан в серийния монитор. За всяка промяна в температурата на дистанционното ще получите различни данни. Запазете тези данни, защото ще ги използваме в нашата основна програма. Вашият сериен монитор ще изглежда по подобен начин, аз също показах файла на Word, в който съм запазил копираните данни.
Снимката на екрана показва кода за настройка на температурата на 26 ° C за моето дистанционно управление с променлив ток. Въз основа на вашето дистанционно управление ще получите различен набор от кодове. По същия начин копирайте кодовете за всички различни нива на температурата. Можете да проверите всички IR кодове за дистанционно управление на климатика в кода на Arduino, даден в края на този урок.
Основна програма Arduino:
Най- пълен основен Arduino програмата може да бъде намерена на дъното на тази страница, но не можете да използвате една и съща програма. Трябва да промените стойностите на сигналния код, които току-що получихме от примерния скиц по-горе. Отворете основната програма на вашия Arduino IDE и превъртете надолу до тази област, показана по-долу, където трябва да замените стойностите на масива със стойностите, които сте получили за вашето дистанционно управление.
Имайте предвид, че съм използвал 10 масива, от които два са използвали ВКЛЮЧВАНЕ и ИЗКЛЮЧВАНЕ на променлив ток, докато останалите 8 се използват за задаване на различна температура. Например Temp23 се използва за задаване на 23 ° C на вашия AC, така че използвайте съответния код в този масив. След като приключите, просто трябва да качите кода на вашия Arduino и да го поставите срещу вас и да се насладите на Cool Breeze.
Обяснението на кода става, както следва, първо трябва да използваме температурния сензор DHT1, за да отчетем температурата и влажността и да го покажем на OLED. Това се прави от следния код.
DHT.read11 (DHT11_PIN); // Прочетете Temp and Humidity Measured_temp = DHT.temperature + temp_error; Измерено_Humi = DHT.влажност; // текстов дисплей тества display.setTextSize (1); display.setTextColor (БЯЛ); display.setCursor (0,0); display.print ("Температура:"); display.print (Measured_temp); display.println ("C"); display.setCursor (0,10); display.print ("Влажност:"); display.print (Measured_Humi); display.println ("%");
След като разберем температурата в стаята, просто трябва да я сравним с желаната стойност. Тази желана стойност е постоянна стойност, която е зададена като 27 ° C (градуса по Целзий) в моята програма. Така че въз основа на това сравнение ще зададем съответна променлива температура, както е показано по-долу
if (Measured_temp == Desired_temperature + 3) // Ако AC е ВКЛ и измерената температура е много висока от желаната {irsend.sendRaw (Temp24, sizeof (Temp24) / sizeof (Temp24), khz); закъснение (2000); // Изпращане на сигнал за задаване на 24 * C AC_Temp = 24; }
Тук AC ще бъде настроен на 24 ° C, когато измерената температура е 30 ° C (тъй като желаната температура е 27). По същия начин можем да създадем много цикли If, за да зададем различно ниво на температурите въз основа на измерената температура, както е показано по-долу.
if (Measured_temp == Desired_temperature-1) // Ако AC е ВКЛ и измерената temp е ниска от желаната стойност {irsend.sendRaw (Temp28, sizeof (Temp28) / sizeof (Temp28), khz); закъснение (2000); // Изпращане на сигнал за задаване 28 * C AC_Temp = 28; } if (Measured_temp == Desired_temperature-2) // Ако AC е ВКЛ и измерената температура е много по-ниска от желаната стойност {irsend.sendRaw (Temp29, sizeof (Temp29) / sizeof (Temp29), khz); delay (2000); // Изпращане на сигнал за задаване на 29 * C AC_Temp = 29; } if (Measured_temp == Desired_temperature-3) // Ако AC е ВКЛЮЧЕН и измерваната temp е много много ниска желана стойност {irsend.sendRaw (Temp30, sizeof (Temp30) / sizeof (Temp30), khz); delay (2000); // Изпращане на сигнал за задаване на 30 * C AC_Temp = 30; }
Работа на автоматична система за контрол на температурата на променлив ток:
Когато вашият код и хардуер са готови, качете кода на вашия съвет и трябва да забележите, че OLED показва нещо подобно на това.
Сега поставете веригата срещу своя климатик и забелязвате, че температурата на променлив ток се контролира въз основа на температурата в стаите. Можете да опитате да увеличите температурата в близост до сензора DHT11, за да проверите дали температурата на променлив ток се контролира, както е показано във видеото по-долу.
Можете да промените програмата, за да извърши всяко желано действие; всичко, от което се нуждаете, е кодът, който сте получили от примерната скица. Надявам се, че сте разбрали този проект за автоматичен регулатор на температурата и сте се радвали да изградите нещо много подобно. Знам, че тук има много места за закъснение, но не се притеснявайте тогава. Просто използвайте форума или раздела за коментари, за да обясните проблема си и хората тук със сигурност ще ви помогнат да го разрешите.