Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Инфракрасный репликатор с подключением к Интернету

Компоненты и расходные материалы

Фотон с частицами
× 1
Диод ИК-приемника Adafruit
× 1
Светодиод Adafruit - инфракрасный, 950 нм
× 1
Arduino UNO
× 1
Teensy 3.1
× 1
Microchip Technology ATmega328
× 1
Microchip Technology ATtiny85
× 1
Espressif ESP8266 ESP-01
× 1
Bluz DK
× 1
RedBear Duo
× 1

Приложения и онлайн-сервисы

носильщик

Об этом проекте

Некоторое время назад я занялся декодированием инфракрасного пульта дистанционного управления переменного тока с целью управления кондиционером через WIFI.

По пути я узнал массу вещей, и я хотел поделиться этими знаниями со всеми вами на случай, если они могут помочь вам в будущих проектах (будущее-я:я тоже смотрю на вас). Я использовал Particle Photon, но вы можете выбрать другой MCU, поскольку библиотека IRremote Arduino (от Ken Shirriff), используемая в этом проекте, поддерживает множество других. Вот и его официальная страница.

Есть много информации на этой странице, обязательно прочтите ее, чтобы лучше понять, как работают ИК-сигналы, но я воспроизведу некоторые важные моменты в следующем разделе.

Некоторые сведения об ИК-кодах

Ниже приводится транскрипция оригинального сообщения автора:

ИК-пульт дистанционного управления включает и выключает светодиоды по определенной схеме. Однако для предотвращения помех от источников ИК-излучения, таких как солнечный свет или свет, светодиод не включается постоянно, а включается и выключается с частотой модуляции (обычно 36, 38 или 40 кГц). Время отправки модулированного сигнала будет называться меткой, а время, когда светодиод не горит, будет называться пробелом.

Каждая клавиша на пульте дистанционного управления имеет определенный код (обычно от 12 до 32 бит), связанный с ней, и передает этот код при нажатии клавиши. Если клавиша удерживается, пульт обычно повторно передает код клавиши. Для пульта дистанционного управления NEC при удержании клавиши передается специальный код повторения, а не повторная отправка кода. Для пультов дистанционного управления Philips RC5 или RC6 бит в коде переключается при каждом нажатии клавиши; приемник использует этот бит переключения, чтобы определить, когда клавиша нажимается второй раз.

На принимающей стороне ИК-детектор демодулирует этот сигнал и выдает сигнал логического уровня, указывающий, получает он сигнал или нет. ИК-детектор будет работать лучше всего, когда его частота совпадает с частотой отправителя, но на практике это не имеет большого значения.

Теперь вы готовы к следующему шагу ...

Постройте схему ИК-приемника

Для декодирования инфракрасных сигналов вам понадобится диод инфракрасного приемника:

И вы строите схему приемника, как указано в библиотеке:

Вот распиновка:

Моя макетная плата в итоге выглядела так:

А пока сконцентрируйтесь на подключении диода приемника (черный) и забудьте про передатчик (прозрачный) - мы позаботимся об этом позже.

Расшифровать некоторые ИК-сигналы

Поскольку проект будет сбрасывать полученные коды по последовательной линии, нам необходимо подключить его к компьютеру. Включите Photon с помощью USB-кабеля и подключите его к USB-порту вашего компьютера. Сейчас самое время прошить прилагаемую прошивку.

Откройте консоль или терминал и используйте интерфейс командной строки для отслеживания USB-порта.

ПРИМЕЧАНИЕ. Если у вас не установлен Particle CLI, сделайте это, следуя документации здесь.

В Ubuntu Linux мне пришлось набрать вот что, чтобы контролировать последовательный порт Photon:

  $ sudo chmod 666 / dev / ttyACM0 $ последовательный монитор частиц  

В зависимости от вашего компьютера и операционной системы порт может иметь другое имя и / или chmod может не выполняться.

ПРИМЕЧАНИЕ. вы можете использовать любое другое программное обеспечение для получения данных через последовательный порт USB вашего компьютера.

Сделав это, вы можете направить пульт, который вы хотите декодировать, на диод ИК-приемника (компонент, похожий на черный светодиод). Начните нажимать на нем кнопки и проверьте, что напечатано на консоли.

Если все пойдет хорошо, вы получите что-то вроде этого:

  1FEA05F29168950,8500,4050,500,1500,550,500,550,450,550,500,500,1550,500,500,550,500,500,500,550,500,500,500,550,450,550,500,550,1500,500,500,550,550,500,500,500,550,500,400,550,100,550,550,550,500,500,550,500,400,550,100,550,550,550 , 1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 , 0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,1,0,0,0 , 0,0,0,0,0,0, КОНЕЦ  
  • Первая строка (1FEA05F) и третья строка:пока забудьте о них.
  • Вторая строка:в этой строке печатается ИК-команда, отправленная удаленным устройством.

Наша первая декодированная ИК-команда

Поговорим о полученной ИК-команде:

  29168950,8500,4050,500,1500,550,500,550,450,550,500,500,1550,500,500,550,500,500,500,550,500,500,500,550,450,550,500,550,1500,500,500,550,500,500,500,500,550,500,500,550,500,1500,450,150,550,550,550,500,550,500,1500,450,150,550,550,550 

Мы можем отбросить первое значение, в данном случае 29168950, поскольку в библиотеке IR указано следующее:« буфер приема начинается с продолжительности промежутка перед первой меткой ". Нам не важна эта продолжительность, поскольку это время, прошедшее между нашими тестами, или время, которое потребовалось вам, чтобы нажать кнопку на пульте дистанционного управления.

Следовательно, из полученного вывода вот что действительно интересно и что формирует команду IR:

  8500,4050,500,1500,550,500,550,450,550,500,500,1550,500,500,550,500,500,500,550,500,500,500,550,450,550,500,550,1500,500,500,550,500,500,500,550,500,500,550,500,1500,550,1500,550,450,550,550,550,550,550,550,550,550 

Эти числа представляют длительность инфракрасных импульсов в микросекундах. Если бы мы хотели, мы могли бы отправить эту команду со следующим кодом:

  function sendIt () {unsigned int ircommand [59] ={8550,4000,550,1500,550,450,550,500,500,550,500,1550,500,500,500,500,550,500,500,500,550,500,500,500,550,500,500,500,1500,550,500,500,500,550,500,550,550,550,500,500,500,550,500,500,550,550,500,500,500,550,500,500,550,500,550,500,500,550,500,500,500,550 , 500 500 550 500 500 500 550 450 550}; irsend.sendRaw (ircommand, 59,38); }  

Но для этого нам нужно будет построить схему передатчика. Давайте сделаем это дальше.

Постройте схему ИК-передатчика

Самая простая схема выглядит так:

Однако эта схема даст вам радиус действия менее метра.

Если можете, подключите цепь, подобную приведенной ниже, для увеличения дальности действия (около 10 метров):

Это сторона передатчика моей схемы:

Тестирование схемы ИК-передатчика

Я добавил в прошивку пару функций для управления громкостью на телевизоре Samsung. Это нужно для того, чтобы вы могли проверить, работает ли ваша схема передатчика, если у вас есть телевизор Samsung.

Просто наведите светодиодный индикатор передатчика на телевизор и нажмите на функции sendSamsungVolumeUp () и sendSamsungVolumeDown ().

ПРИМЕЧАНИЕ. Помните, что вы можете использовать камеру своего мобильного телефона, чтобы проверить, передает ли ИК-светодиод, поскольку ИК-подсветка там видна:

Повышение читабельности ИК-команд

Если мы идентифицируем значения около 500 с помощью 0 и 1500 с помощью 1, этот выбор является произвольным, также присваивая 3 значениям более 5000 и 2 значениям около 4000, мы получим следующее представление:

  3,3,2,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1, 0,0,0,1,0,0,0,0,0,0,0,0,0, КОНЕЦ  

Теперь помните, что в этой совершенно произвольной кодировке:

  • 3 означает импульс 8500 микросекунд.
  • 2 означает импульс в 4000 микросекунд.
  • 1 означает импульс 1500 микросекунд.
  • 0 означает импульс в 500 микросекунд.

Вы спросите, зачем кодировать числами?

Надеюсь, это помогает визуализировать и сравнивать команды. Таким образом, становится проще сравнивать импульсы, которые меняются или остаются одинаковыми для разных команд.

Пример:вы хотите сравнить, какие изменения происходят между командой установки температуры на 18 и 19 градусов в случае пульта дистанционного управления переменного тока? Проще, когда у вас есть 1 и 0.

Еще мне нравится этот формат хранения ИК-команд в коде прошивки. Просто не забудьте преобразовать их в импульсы прямо перед передачей (путем вызова функции convertToPulseDuration () в прошивке).

Чтение ресурсов

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

  • Обратный инжиниринг протокола ИК-дистанционного управления кондиционером.
  • Использование произвольных пультов дистанционного управления с библиотекой arduino IRremote
  • эта ветка в сообществе Particle
  • Общие сведения об ИК-протоколе пультов дистанционного управления кондиционерами
  • этот блог на adafruit

Заключение

Приложив некоторую работу, микроконтроллер и несколько компонентов, вы сможете декодировать и воспроизвести многие из пультов, которые есть у вас дома. С некоторыми ограничениями это может позволить вам управлять всеми этими устройствами с вашего телефона, планшета, ноутбука, компьютера и даже создавать для них некоторые простые средства автоматизации. Круто, а?

Теперь вы можете подумать о добавлении Blynk, создании приложения в Ionic Framework, разговоре с ним с помощью Google Now или Alexa или управлении им с помощью Porter.

Я планирую применить эти знания для управления несколькими устройствами в доме, и я надеюсь создать больше описаний в будущем. Следите за обновлениями!

Обновление от 5 февраля 2018 г .:

Вот одна из реализаций этого проекта:инфракрасный камин, управляемый через Интернет.

Нужна помощь?

Если вам требуется профессиональная помощь с вашими проектами, не стесняйтесь написать мне о своих потребностях по адресу [email protected]. Спасибо!

Код

инфракрасный репликатор
исходный код https://github.com/gusgonnet/infraredReplicator

Схема


Производственный процесс

  1. Как грузовые вагоны подключаются к Интернету
  2. Интернет вещей и роль 5G в подключенных транспортных средствах
  3. Кибербезопасность и Интернет вещей:время для биометрии?
  4. Интернет вещей:сеть подключенного мира
  5. Как мы можем упростить образование с помощью Интернета вещей?
  6. Лазерные танки Leap Motion!
  7. UnifiedWater v1
  8. Интернет-радио Pi-Arduino
  9. Подключенные воздушные компрессоры, Индустрия 4.0 и Интернет вещей
  10. Влог о сжатом воздухе и газе от А до Я:Интернет вещей, Интернет 4.0 и подключенные компрессоры