- PVSM.RU - https://www.pvsm.ru -

Управление климатом дешево и сердито (библиотека IRremoteESP8266 и бризер Tion 02)

Нашел способ подружить кондиционер (или другой прибор управляемым пультом дистанционного управления) и умный дом, либо сделать управление этим устройством, например с сотового.
В теории просто, подключаем esp8266 (ценой около 2 долларов у китайцев) к инфракрасном светодиоду, заливаем прошивку и готово.
Управление климатом дешево и сердито (библиотека IRremoteESP8266 и бризер Tion 02) - 1

На практике оказалось все несколько сложнее, т.к. у меня ревизия esp-01 пришлось припаять (примерно так [1]) проводок к ножке микросхемы размером 5*5мм, вывести дополнительный GPIO. Рекомендую использовать ревизию постарше, например ESP-12.
Читателям не знакомым с esp8266 предлагаю ознакомится этой статьей [2].

Компоненты и модули

* Esp8266 ревизии esp-01 [3]
* FT232RL: USB to Serial 232 TTL Adapter [4] + провода для подключения
* Фотоприемник Tsop 4838 [5]
* Регулятор 3.3v [6]
* Транзистор S9014 [7]
* Светодиод инфракрасный 5013IRAB (длина волны 940 nm)
* Резистор 330ом
* Проектная плата [8]
* Паяльник, припой, флюс.
* Для работы с IR используется замечательная библиотека IRremoteESP8266 [9]. Авторы Mark Szabo, Sebastien Warin, Ken Shirriff.

Сохранение кодов

* Подключаем фотоприемник [5], VCC на +3.3, GND на ноль, OUT на GPIO.
* Открываем пример для дампа кодов из нашей библиотеки IRremoteESP8266examplesIRrecvDumpIRrecvDump.ino
* Если надо — меняем номер пина к которому мы подключили OUT фотоприемника (строка «int RECV_PIN = 2;»).
* Заливаем прошивку. Подключаемся к выводу модуля. Поочередно зажимаем кнопки пульта для дампа кодов.
Для бризера Tion O2 у меня получились такие кода
Down
16711935
Decoded NEC: FF00FF (32 bits)
----
Up
16724175
Decoded NEC: FF30CF (32 bits)
----
Set
16722135
Decoded NEC: FF28D7 (32 bits)
----
Power
16720095
Decoded NEC: FF20DF (32 bits)

Фотоприемник больше не нужен, пока не потребуется «сграбить» кода другого пульта.

Управление устройством

* Подключаем ИК светодиод по схеме.
Управление климатом дешево и сердито (библиотека IRremoteESP8266 и бризер Tion 02) - 2
(Картинка заимствована у Fritzing)
GPIO можно использовать другой. От напряжения 3.3v светодиод так-же нормально работает.
* Демо прошивка с сервером находится тут
IRremoteESP8266examplesIRServerIRServer.ino
* Меняем в ней название и пароль вашей точки доступа, чтобы esp мог подключиться к ней. А так-же номер используемого GPIO
const char* ssid = ".....";
const char* password = ".....";
IRsend irsend(0);

* Прошиваем модуль.
* При подключении в консоль будет выведен IP адрес выделенный esp.

Теперь можно отправлять кода вводя в броузере адрес вида 192.168.1.1/ir?code=16720095 [10] (просто подставьте нужный IP и код).

Я сделал вот такую страничку для удобства управления своим бризером.

<html>
<head>
<script>
function sendIR(str) {
    if (str.length == 0) { 
        // document.getElementById("txtHint").innerHTML = "";
        return;
    } else {
        var xmlhttp = new XMLHttpRequest();
        xmlhttp.onreadystatechange = function() {
            if (this.readyState == 4 && this.status == 200) {
                // document.getElementById("txtHint").innerHTML = this.responseText;
            }
        };
        xmlhttp.open("GET", "http://192.168.0.193/ir?code=" + str, true);}
        xmlhttp.send();
    }
}
</script>
</head>
<body>
	<div id="demo">
	  <button type="button" onclick="sendIR(16724175)">Up</button>
	  <button type="button" onclick="sendIR(16711935)">Down</button>
	  <button type="button" onclick="sendIR(16722135)">Set</button>
	  <button type="button" onclick="sendIR(16720095)">Power</button>  
	</div>
</body>
</html>

Конкретно в моем случае бризер работает с пультом необычно, при первом нажатии он «просыпается», а именно включает подсветку экранчика, и только после этого начинает принимать команды. При автоматизации стоит учитывать это.

Надеюсь данная инструкция кому-то пригодится. Прошу делиться доработанными прошивками.

Автор: LexB

Источник [11]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/arduino/243903

Ссылки в тексте:

[1] так: https://habrastorage.org/files/a1f/06e/08e/a1f06e08ef7b4de699e4a39c074b0aa8.jpg

[2] этой статьей: https://geektimes.ru/post/271754/

[3] Esp8266 ревизии esp-01: https://habrastorage.org/files/d33/3a0/a01/d333a0a01821487e90a1308e5aacc02a.jpg

[4] FT232RL: USB to Serial 232 TTL Adapter: https://habrastorage.org/files/998/cf5/66b/998cf566b38b468abe6f6a5fee9726bd.png

[5] Фотоприемник Tsop 4838: https://habrastorage.org/files/18a/6ba/d7d/18a6bad7dcfa4149881b2bd4ab7aece6.jpg

[6] Регулятор 3.3v: https://habrastorage.org/files/dec/80d/eb7/dec80deb78bd4a64b867cfeed375f91f.jpg

[7] Транзистор S9014: https://habrastorage.org/files/71e/952/947/71e9529474854e00a283404de5edaf71.jpg

[8] Проектная плата: https://habrastorage.org/files/59a/b91/51c/59ab9151c71241508c01a569974561e9.jpg

[9] библиотека IRremoteESP8266: https://github.com/sebastienwarin/IRremoteESP8266

[10] 192.168.1.1/ir?code=16720095: http://192.168.1.1/ir?code=16720095

[11] Источник: https://geektimes.ru/post/285942/