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