DIY управление телевидением Дом.ru с планшета при помощи ардуино

в 10:17, , рубрики: arduino, DIY, diy или сделай сам, diy умный дом, Разработка под android, реверс-инжиниринг, сделай сам, Электроника для начинающих

Пусть описание принципа работы уникального смарт-девайса для упрощения взаимодействия в системе «человек машина» выглядит как реклама таблеток для похудения, но в данном случае это лучший способ объяснить для чего, почему и как собирался данный девайс.
DIY управление телевидением Дом.ru с планшета при помощи ардуино - 1
Тему телевидения затрагивать в статье не буду, расскажу только про «гаджетостроение» и разработку интерфейса.
Эта статья частично является продолжением моей статьи Bluetooth пульт для телевизора, поэтому буду ссылаться на некоторые технические моменты, описанные в ней.
Сначала покажу как работает мой девайс (на видео он в левом нижнем углу, рядом с ресивером Дом.ru):

Снаружи девайс выглядит так:
DIY управление телевидением Дом.ru с планшета при помощи ардуино - 2
Это в разобранном виде:
DIY управление телевидением Дом.ru с планшета при помощи ардуино - 3
В качестве корпуса я использовал муляж камеры наблюдения. Такие муляжи продаются по 1-2 доллара в китайских интернет-магазинах. Конструкцию девайса можно посмотреть в предыдущей статье, а скетч с кодами кнопок для управления ресивером Дом.ru

здесь

#include <IRremote.h>
IRsend irsend;
int ledPin = 13;
unsigned long a;
void setup() {
Serial.begin(9600);
Serial.setTimeout(4);
pinMode(ledPin, OUTPUT);
}
void S1() {irsend.sendNEC(0x8C03F, 32);delay(100);}
void S2() {irsend.sendNEC(0x820DF, 32);delay(100);}
void S3() {irsend.sendNEC(0x8A05F, 32);delay(100);}
void S4() {irsend.sendNEC(0x8609F, 32);delay(100);}
void S5() {irsend.sendNEC(0x8E01F, 32);delay(100);}

void S6() {irsend.sendNEC(0x810EF, 32);delay(100);}
void S7() {irsend.sendNEC(0x8906F, 32);delay(100);}
void S8() {irsend.sendNEC(0x850AF, 32);delay(100);}
void S9() {irsend.sendNEC(0x8D02F, 32);delay(100);}
void S0() {irsend.sendNEC(0x830CF, 32);delay(100);}

void Son() {irsend.sendNEC(0x800FF, 32);delay(100);}
void Smute() {irsend.sendNEC(0x818E7, 32);delay(100);}
void Splus() {irsend.sendNEC(0x8F807, 32);delay(100);}
void Sminus() {irsend.sendNEC(0x802FD, 32);delay(100);}

void loop()
{
if (Serial.available())
{ a = Serial.parseInt();
if (a==1) {S1();}
if (a==2) {S2();}
if (a==3) {S3();}
if (a==4) {S4();}
if (a==5) {S5();}
if (a==6) {S6();}
if (a==7) {S7();}
if (a==8) {S8();}
if (a==9) {S9();}
if (a==0) {S0();}

if (a==161) {Son();}
if (a==162) {Smute();}
if (a==163) {Splus();}
if (a==164) {Sminus();}

}
}

Если кто-то захочет сделать подобный девайс для управления ресивером Триколор ТВ, то скетч с кодами кнопок здесь:

здесь
#include <IRremote.h>
IRsend irsend;
int ledPin = 13;
unsigned long a;
void setup() {
Serial.begin(9600);
Serial.setTimeout(4);
pinMode(ledPin, OUTPUT);
}
void S1() {irsend.sendNEC(0x8C03F, 32);delay(200);}
void S2() {irsend.sendNEC(0x820DF, 32);delay(200);}
void S3() {irsend.sendNEC(0x8A05F, 32);delay(200);}
void S4() {irsend.sendNEC(0x8609F, 32);delay(200);}
void S5() {irsend.sendNEC(0x8E01F, 32);delay(200);}

void S6() {irsend.sendNEC(0x810EF, 32);delay(200);}
void S7() {irsend.sendNEC(0x8906F, 32);delay(200);}
void S8() {irsend.sendNEC(0x850AF, 32);delay(200);}
void S9() {irsend.sendNEC(0x8D02F, 32);delay(200);}
void S0() {irsend.sendNEC(0x830CF, 32);delay(200);}

void Son() {irsend.sendNEC(0x800FF, 32);delay(100);}
void Smute() {irsend.sendNEC(0x818E7, 32);delay(100);}
void Splus() {irsend.sendNEC(0x828D7, 32);delay(100);}
void Sminus() {irsend.sendNEC(0x848B7, 32);delay(100);}

void loop()
{
if (Serial.available())
{ a = Serial.parseInt();
if (a==1) {S1();}
if (a==2) {S2();}
if (a==3) {S3();}
if (a==4) {S4();}
if (a==5) {S5();}
if (a==6) {S6();}
if (a==7) {S7();}
if (a==8) {S8();}
if (a==9) {S9();}
if (a==0) {S0();}

if (a==161) {Son();}
if (a==162) {Smute();}
if (a==163) {Splus();}
if (a==164) {Sminus();}

}
}

Видео с демонстрацией работы девайса с телевидением Триколор ТВ здесь.
Как считывать коды кнопок других ресиверов тоже описано в предыдущей статье
Теперь немного об интерфейсе.
Сначала был сделан такой интерфейс:
DIY управление телевидением Дом.ru с планшета при помощи ардуино - 4
Но существенного удобства по сравнению с штатным пультом ДУ он не давал.
Потом я подписал некоторые кнопки, чтобы сделать чуть удобнее поиск нужного канала:
DIY управление телевидением Дом.ru с планшета при помощи ардуино - 5
Но такой вариант тоже оказался не очень удобным.
На сегодняшний день интерфейс выглядит так:
DIY управление телевидением Дом.ru с планшета при помощи ардуино - 6
Использовать такой интерфейс оказалось достаточно удобно.
В заключении скажу, что все андроид-приложения я делал, используя среду визуальной разработки android-приложений App Inventor 2.
Кому интересно как можно сделать такое приложение «с нуля» может посмотреть мое видео на эту тему (для просмотра необходимо перейти на youtube).

Автор: malyazin_2010

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js