1. Arduino Nano
2. Bluetooth модуль HC-06
3. ИК-излучатель (передатчик) 5MM 940 L-53F3C, можно любой доступный
4. Кусок кабель канала
5. Кнопочный переключатель / выключатель
6. Расходники - проводочки...
Схема соединения не замысловатая
С одной стороны контроллера впаял ИК передатчик и подложил под него кусочек антистатического пакетика. С другой стороны находится Bluetooth модуль. А с боку - выключатель RX / TX соединения, на тот случай если нужно будет перезалить скетчь в контроллер.
Всё это хозяйство вставляем в отрезок кабель канала и...
...закрываем крышкой, с заранее сделанным в ней отверстием.
Далее заливаем в контроллер нижерасположенный скетч, предварительно изменив в нём коды кнопок на свои. Как узнать коды описано в статье Определяем код кнопок ИК пульта. Используя пример IRrecvDump библиотеки IRremote не составит труда узнать коды.
Код: Выделить всё
#include <IRremote.h>
IRsend irsend;
const unsigned long codes[] = { 0, 0xFF5AA5, 0xFF728D, 0xFFCA35, 0xFF0AF5, 0xFF08F7, 0xFF12ED, 0xFFEA15, 0xFF2AD5, 0xFF28D7, 0xFF18E7, 0xFFF20D, 0xFF32CD, 0xFF30CF, 0xFF708F, 0xFF1AE5, 0xFFF00F, 0xFF8877, 0xFF9867, 0xFF629D, 0xFF609F,
0xFFA05F, 0xFFDA25, 0xFF58A7, 0xFFD827, 0xFFB04F, 0xFF6897, 0xFF48B7, 0xFFD827, 0xFF609F, 0xFFDA25, 0xFF6A95, 0xFFA857, 0xFF6897, 0xFFD22D, 0xFFE21D, 0xFF22DD, 0xFF10EF, 0xFF4AB5, 0xFF20DF, 0xFFE01F,
0xFFD02F, 0xFFC23D, 0xFF02FD, 0xFF00FF, 0xFFC03F}; //коды приставки
unsigned int power[68]={4400,4450,500,1650,500,1700,450,1700,500,600,500,600,500,600,500,600,500,600,500,1650,500,1700,450,1700,500,600,500,600,500,600,500,600,500,600,500,550,550,1650,500,600,500,600,500,600,500,600,500,600,500,600,500,1700,450,600,500,1700,500,1650,500,1700,450,1700,500,1700,450,1700,500};
void S46() {irsend.sendRaw(power, 68, 32);} // код телевизора
unsigned long FindCode(int commandReceivedThroughSerial)
{
//if (commandReceivedThroughSerial > 20 && commandReceivedThroughSerial < 47)
// return 0xFF728D;
if (commandReceivedThroughSerial > 0 && commandReceivedThroughSerial < 46)
return codes[commandReceivedThroughSerial];
return 0xFFFFFFFF;
}
void SendCode(unsigned long code, int commandReceivedThroughSerial)
{
irsend.sendNEC(code, 32);
delay(200);
Serial.print(commandReceivedThroughSerial);
}
void setup()
{
Serial.begin(9600);
Serial.setTimeout(4);
}
void loop()
{
if (Serial.available())
{
int a = Serial.parseInt();
unsigned long code = FindCode(a);
if(code != 0xFFFFFFFF)
SendCode(code,a);
if (a==46) {S46();}
}
}
C Arduino закончили, располагаем девайс напротив ИК приемников (телевизор, приставка) и переходим к созданию приложения для Android.
Не пугайтесь, ни чего сложного в этом нет, так как мы будем использовать конструктор приложений App Inventor. Для работы с ним нужна авторизация через Google аккаунт. В конце статьи скачиваем .aia файл мною изготовленного приложения. И загружаем на сервис:
Далее вам нужно будет изменить адрес Bluetooth модуля на свой. Для этого выбираем проект Pult, да и выбирать не придётся, после загрузки он должен автоматически открыться. В верхней панели сервиса нажимаем "Блоки" и в блоке что указан на скриншоте делаем изминения:
Теперь скачиваем приложении к себе на компьютер и устанавливаем на смартфон:
Либо сразу на смартфон - выбрав первый пункт - ...создать QR код..
Открыв приложение вы увидите такой экран:
Если Bluetooth не включен - появится сообщение с предложением сделать это. Согласившись с предложенным система включит его и через некоторое время кнопка Bluetooth в приложении, с красного измениться на зелёный. Что означает что произошла связь приложения с нашим девайсом. Для разъединения используем эту же кнопку.
При разработке приложения я использовал фотографию пульта от DVBT2 приставки:
Добавив на пульт ещё две кнопки - для выключения телевизора и соединения / разъединения смартфона с нашим девайсом. Вы же можете сделать что то своё.