Wi-Fi пульт


Пост некрофилии, сейчас все пользуются sonoff и прочими готовыми модулями. Но почти 3 года назад мне понадобился пульт для управления ресивером триколор (нтв+ и пр.) из разных комнат.
Разводка у меня сделана так, что сигнал с ресивера подмешивается в общий кабель (телемак md-105m), т.е. можно смотреть спутник из любой комнаты, но только тот канал, что включен на ресивере. Нужно было переключать каналы находясь в другой комнате.
Для этого в продаже имеются радиопульты, но ценник на них по моему мнению сильно завышен, да и таскать его с собой из комнаты в комнату неудобно.
В итоге был собран wi-fi пульт на ESP-07 и ардуино mini, управление со смартфона, ir диод с любого старого пульта или радиомагазина. Но с течением времени я начал забывать как я все это собрал))) Поэтому описываю процедуру, пока совсем не забыл:

esp прошиваем по старой инструкции с этого топика: mySKU.me/blog/aliexpress/37815.html

содержимое init.lua (автозапуск):
кавычки оставляем, в них пишем имя сети, пароль, ну и прочие настройки, если отличаются от 192.168.0.Х. Запомнить что назначили в wifi.sta.setip({ip=«192.168.0.77», т.к. потом этот адрес нужно будет указать в приложении смартфона:

Дополнительная информация
wifi.setmode(wifi.STATION)
wifi.sta.config("имясети","пароль")
wifi.sta.connect()
wifi.sta.setip({ip="192.168.0.77",netmask="255.255.252.0",gateway="192.168.0.1"})
print("ESP8266 mode is: " .. wifi.getmode())
print("The module MAC address is: " .. wifi.ap.getmac())
print("Config done, IP is "..wifi.sta.getip())
dofile ("main.lua")


содержимое main.lua (сам скетч esp):

Дополнительная информация
srv=net.createServer(net.TCP) 
srv:listen(80,function(conn) 
    conn:on("receive", function(client,request)
        local buf = "";
        local _, _, method, path, vars = string.find(request, "([A-Z]+) (.+)?(.+) HTTP");
        if(method == nil)then 
            _, _, method, path = string.find(request, "([A-Z]+) (.+) HTTP"); 
        end
        local _GET = {}
        if (vars ~= nil)then 
            for k, v in string.gmatch(vars, "(%w+)=(%w+)&*") do 
                _GET[k] = v 
            end 
        end
        local _info,_up,_guide,_left,_ok,_right,_f,_down,_exit,_button1,_button2,_button3,_button4,_button5,_button6,_button7,_button8,_button9,_last,_button0,_mute,_menu,_mail,_on,_red,_green,_yellow,_blue = "",""
        if(_GET.pin == "ok")then
              _ok = " selected=true";
              uart.write(0,"a");
        end
        if(_GET.pin == "up")then
              _up = " selected=true";
              uart.write(0,"b");
        end
        if(_GET.pin == "left")then
              _left = " selected=true";
              uart.write(0,"c");
        end
        if(_GET.pin == "right")then
              _right = " selected=true";
              uart.write(0,"d");
        end
        if(_GET.pin == "down")then
              _down = " selected=true";
              uart.write(0,"e");
        end
        if(_GET.pin == "exit")then
              _exit = " selected=true";
              uart.write(0,"f");
        end
        if(_GET.pin == "info")then
              _info = " selected=true";
              uart.write(0,"g");
        end
        if(_GET.pin == "guide")then
              _guide = " selected=true";
              uart.write(0,"h");
        end
        if(_GET.pin == "f")then
              _f = " selected=true";
              uart.write(0,"i");
        end
        if(_GET.pin == "button1")then
              _button1 = " selected=true";
              uart.write(0,"j");
        end
        if(_GET.pin == "button2")then
              _button2 = " selected=true";
              uart.write(0,"k");
        end
        if(_GET.pin == "button3")then
              _button3 = " selected=true";
              uart.write(0,"l");
        end
        if(_GET.pin == "button4")then
              _button4 = " selected=true";
              uart.write(0,"m");
        end
        if(_GET.pin == "button5")then
              _button5 = " selected=true";
              uart.write(0,"n");
        end
        if(_GET.pin == "button6")then
              _button6 = " selected=true";
              uart.write(0,"o");
        end
        if(_GET.pin == "button7")then
              _button7 = " selected=true";
              uart.write(0,"p");
        end
        if(_GET.pin == "button8")then
              _button8 = " selected=true";
              uart.write(0,"q");
        end
        if(_GET.pin == "button9")then
              _button9 = " selected=true";
              uart.write(0,"r");
        end
        if(_GET.pin == "last")then
              _last = " selected=true";
              uart.write(0,"s");
        end
        if(_GET.pin == "button0")then
              _button0 = " selected=true";
              uart.write(0,"t");
        end
        if(_GET.pin == "menu")then
              _menu = " selected=true";
              uart.write(0,"u");
        end
        if(_GET.pin == "mute")then
              _mute = " selected=true";
              uart.write(0,"v");
        end
        if(_GET.pin == "mail")then
              _mail = " selected=true";
              uart.write(0,"w");
        end
        if(_GET.pin == "on")then
              _on = " selected=true";
              uart.write(0,"x");
        end
        if(_GET.pin == "red")then
              _red = " selected=true";
              uart.write(0,"g");
        end
        if(_GET.pin == "green")then
              _green = " selected=true";
              uart.write(0,"y");
        end
        if(_GET.pin == "yellow")then
              _yellow = " selected=true";
              uart.write(0,"z");
        end
        if(_GET.pin == "blue")then
              _blue = " selected=true";
              uart.write(0,"]");
        end
        client:send(buf);
        client:close();
        collectgarbage();
    end)
end)


Если делаем своё приложение (см ниже), то кнопки обзываем в соответствии с родным пультом ресивера, каждой кнопке назначаем букву, цифру или символ в соответствии с таблицей:

Дополнительная информация
Таблица символов:
a = 97
b = 98
c = 99
d = 100
e = 101
f = 102
g = 103
h = 104
i = 105
j = 106
k = 107
l = 108
m = 109
n = 110
o = 111
p = 112
q = 113
r = 114
s = 115
t = 116
u = 117
v = 118
w = 119
x = 120
y = 121
z = 122

0 = 48
1 = 49
2 = 50
3 = 51
4 = 52
5 = 53
6 = 54
7 = 55
8 = 56
9 = 57

' = 39
, = 44
— = 45
. = 46
/ = 47
: = 58
= = 61
[ = 91
\ = 92
] = 93
` = 96

В моём сделано для триколора gs9305 так (если команды устраивают, не важно для какого пульта, то можно оставлять как есть):

т.е. если esp видит нажатие кнопки «ok» на ардуинку отправляется «a», если нажимаем «up» — отправляется «b» и т.п., согласно таблице символов можно добавить свои.
Теперь надо прошить ардуино, скетч такой (нужны библиотеки IRremote.h и IRremoteInt.h):

Дополнительная информация
#include <IRremote.h>
#include <IRremoteInt.h>

IRsend irsend;

void setup()
{
  Serial.begin(9600);
}

void loop() {
  if (Serial.available() > 0) {
    int x = Serial.read();

{
      if (x == 97) {
        irsend.sendNEC(0x8C837, 32);
        delay(40);
      }
      if (x == 98) {
        irsend.sendNEC(0x88877, 32);
        delay(40);
      }
      if (x == 99) {
        irsend.sendNEC(0x848B7, 32);
        delay(40);
      }
      if (x == 100) {
        irsend.sendNEC(0x828D7, 32);
        delay(40);
      }
      if (x == 101) {
        irsend.sendNEC(0x8A857, 32);
        delay(40);
      }
      if (x == 102) {
        irsend.sendNEC(0x86897, 32);
        delay(40);
      }
      if (x == 103) {
        irsend.sendNEC(0x838C7, 32);
        delay(40);
      }
      if (x == 104) {
        irsend.sendNEC(0x8D827, 32);
        delay(40);
      }
      if (x == 105) {
        irsend.sendNEC(0x8EA15, 32);
        delay(40);
      }
      if (x == 106) {
        irsend.sendNEC(0x8C03F, 32);
        delay(40);
      }
      if (x == 107) {
        irsend.sendNEC(0x820DF, 32);
        delay(40);
      }
      if (x == 108) {
        irsend.sendNEC(0x8A05F, 32);
        delay(40);
      }
      if (x == 109) {
        irsend.sendNEC(0x8609F, 32);
        delay(40);
      }
      if (x == 110) {
        irsend.sendNEC(0x8E01F, 32);
        delay(40);
      }
      if (x == 111) {
        irsend.sendNEC(0x810EF, 32);
        delay(40);
      }
      if (x == 112) {
        irsend.sendNEC(0x8906F, 32);
        delay(40);
      }
      if (x == 113) {
        irsend.sendNEC(0x850AF, 32);
        delay(40);
      }
      if (x == 114) {
        irsend.sendNEC(0x8D02F, 32);
        delay(40);
      }
      if (x == 115) {
        irsend.sendNEC(0x8827D, 32);
        delay(40);
      }
      if (x == 116) {
        irsend.sendNEC(0x830CF, 32);
        delay(40);
      }
      if (x == 117) {
        irsend.sendNEC(0x8708F, 32);
        delay(40);
      }
      if (x == 118) {
        irsend.sendNEC(0x818E7, 32);
        delay(40);
      }
      if (x == 119) {
        irsend.sendNEC(0x8BA45, 32);
        delay(40);
      }
      if (x == 120) {
        irsend.sendNEC(0x800FF, 32);
        delay(40);
      }
      if (x == 121) {
        irsend.sendNEC(0x8B847, 32);
        delay(40);
      }
      if (x == 122) {
        irsend.sendNEC(0x858A7, 32);
        delay(40);
      }
      if (x == 93) {
        irsend.sendNEC(0x87887, 32);
        delay(40);
      }
      }
      }
}



т.е. согласно приведенным выше кей кодам, при отправке с esp кода «a» на ардуино приходит «97», при отправке с esp «b» на ардуино приходит «98» и т.д.
Управление с ir происходит с ардуино, esp нужна нам только для отправки команд.
Т.е. например строка скетча
irsend.sendNEC(0x8C837, 32);
просто эмулирует нажатие кнопки на пульте, где 8C837 — код кнопки пульта (если NEC протокол, про остальные протоколы в гугл, там все есть).
Как узнать код кнопок обсосано в гугле давным-давно.
не буду переписывать чужие статьи, дам ссылку для примера (запрос поиска «Универсальный пульт на Arduino»), нужен будет ir приемник, я использовал от старого dvd плеера, потом припаял его обратно):

habr.com/post/254761/

Теперь о подключениях:

Соединяем uart дуины и есп так:
со стороны дуины — rx; со стороны esp — tx. Вторую пару не соединять!
Подключение ir led к дуине: "+" — на 3пин, землю — на землю.
tx ардуины не соединять с rx esp! иначе по каналу пойдет мусор!
Запихиваем все в корпус.
Ir диод размещаем в зоне приемника ресивера.
ESP с подложкой (5->3.3), питаем обе платы от сотовой зарядки на 5 вольт.
Теперь о приложении, делал я его в app inventor 2:
выкладываю как само приложение, так и исходник для экспорта, (lowresolution — для 3.5" телов), можно редактировать приложение под свой пульт (файл .aia).


drive.google.com/file/d/1O9hEsRdWiC9t31XlDq9_0xqIcnR0HJtY/view?usp=sharing

Дополнительная информация




После установки жмем на шестеренку, вводим ip из начала рассказа (192.168.0.77), потом «ок» и опять жмем шестеренку.

может за давностью лет что и забыл, пишите, поправлю.

p.s. про облачные сервисы (Blink и т.п.) не писать, ешьте их сами)

p.p.s. на момент построения устройства iremote на esp не работала, поэтому сделано через ардуино.
Планирую купить +47 Добавить в избранное +52 +93
+
avatar
  • ba5h
  • 09 декабря 2018, 00:41
+3
Содержимое файлов можно в спойлеры убрать.
Спасибо.
+
avatar
  • toxatmn
  • 09 декабря 2018, 00:46
0
ок
+
avatar
  • Hoopick
  • 09 декабря 2018, 00:46
+7
Хмм а я думал на еспшке можно реализовать то же что и на ардуинке, поэтому для меня странно использование их в одной коробке одновременно… Надо будет подразобраться чтоли
+
avatar
  • toxatmn
  • 09 декабря 2018, 00:48
0
Три года назад ir библиотеки для esp не было, сейчас не знаю, не слежу, т.к. автоматизируюсь по необходимости)))
+
avatar
  • Bacchus
  • 09 декабря 2018, 01:17
+6
Открою страшную тайну. Ардуиновские библиотеки прекрасно можно юзать на ESP
+
avatar
  • toxatmn
  • 09 декабря 2018, 01:18
0
если бы все было так просто я бы так и сделал)
Повторюсь, не знаю как сейчас, 3 года назад iremote на esp не фурычила) её усиленно допиливали, но я не стал ждать, поэтому не знаю, чем дело кончилось, так вышло быстрее и на 50р дороже)
+
avatar
  • Bacchus
  • 09 декабря 2018, 01:21
+1
Делал это и с дисплеями и с драйвером шаговика и тем же pzem'ом
+
avatar
  • toxatmn
  • 09 декабря 2018, 01:24
+1
что «это»? ir управление?
+
avatar
  • Bacchus
  • 09 декабря 2018, 09:56
+1
Использовал ардуиновские библиотеки.
+
avatar
  • sir0ta
  • 09 декабря 2018, 08:49
0
Не работало не равно вообще не работало. Я прекрасно управлял.
+
avatar
  • X3Shim
  • 09 декабря 2018, 00:59
0
не всегда. Два примера из моей личной практики:
1. Часы с анимацией адресуемой лентой. Пишут (сам правда не проверял) что ESP ее плохо обрабатывает, так как прерывания на работу с вафлей могут сбить «заполнение» ленты. По этому часы на на ардуине, а вот время они берут из инета по вафле через ESP.
2. Стрелочные индикаторы температуры/давления/co2/и т.д. для погодной станции. Прием данных с помощью ESP по вафле через MQTT от самой погодной станции, а вот шаговым двигателем стрелочных индикаторов рулит ардуина (без драйвера шагового двигателя), так как у нее нагрузочная способность выходов в 4 раза выше выше.
+
avatar
  • Bacchus
  • 09 декабря 2018, 01:18
+3
А не проще к ESP прикрутить копеечный драйвер?
+
avatar
  • X3Shim
  • 09 декабря 2018, 01:21
+1
а ардуина (mini pro) не копеечная?
Ну и у меня драйвера из ардуин умные получились. принимают JSon, настраиваются конечные точки (физические в градусах и логические в реальном значении температуры), имеют собственное имя, можно повесить несколько таких «драйверов» на один UART выход ESP.
+
avatar
  • themix
  • 09 декабря 2018, 02:41
+5
вы сами то понимаете про что говорите? что проще для мк: поднять ком интерфейс и обслуживать его таймерами или же дрыгать ножкой с конскими таймингами, относительно тех, что в таймерах ком порта. тут реально топикстартер хлам придумал. усложнил там где не нужно, когда нужно примитивно применить 2 команды — он задействует целый интерфейс в двух разных мк, мотивируя это тем, что библиотеки не нашел))). которая собственно и не нужна изначально
+
avatar
  • X3Shim
  • 09 декабря 2018, 11:00
+1
Если вы не заметили, я отвечал конкретно господину «Hoopick» на его вопрос. И в его вопросе не было слов про светодиод, а вопрос был просто про совместное использование ESP+Арду.
+
avatar
  • themix
  • 09 декабря 2018, 00:56
+3
Автор с жиру бесится, столько микроконтроллеров для такого примитива. скорее бы уже забыли этот костыль) жалко другое — ктото ведь и повторит. тогда уж воткнули бы по середине распбери и светодиодом на ней моргали бы — если кнопка на телефоне отправилась.
+
avatar
  • toxatmn
  • 09 декабря 2018, 00:58
+3
ok, без проблем, твой вариант?
+
avatar
  • themix
  • 09 декабря 2018, 01:03
0
мой вариант чего? кода есп`шки? увы, нет даже малейшего желания вспоминать этот хлам. просто все это на одной есп пишется за один вечер, без подмешивания ардуино. задействовать ком для того чтобы светодиодом ардуинкой мигать — это бред. должно быть ком для вас легче чем помигать инфракрасным диодом. мне вас искренне жаль
+
avatar
  • toxatmn
  • 09 декабря 2018, 01:07
+5
да не, жалеть меня не надо, удаленное ir управление. Мне все равно на чем, может переделаю)
+
avatar
  • themix
  • 09 декабря 2018, 01:09
+2
тут уже вариантов нет других, кроме как перделать и выложить сюда. а то нубы подумают что епс верх возможностей траффик из вафли по кому гонять ;)
+
avatar
  • toxatmn
  • 09 декабря 2018, 01:17
+3
А теперь ссылку на рабочую ir библиотеку для esp
+
avatar
  • themix
  • 09 декабря 2018, 01:45
-4
напиши. в чем проблема? светодиодом поморгать повторяю) вот до чего доводит поверхностное знание мк. нет библиотеки — нет возможностей) мда) по-моему я в вас увидел не того человека) вы ардуинщик) который может только то, что для него написали) мдя. вот и весь креатив) помню под мегу писал на си — там не больше 10 строк. Хотя да. какой си?
+
avatar
+10
так напишите уже эти 10 строк для еспшки сюда))
+
avatar
  • themix
  • 09 декабря 2018, 02:31
-12
+
avatar
+10
чего вы ждете? перенесенного даташита на язык: обождать 50мкс, поднять лог 1 на пин, обождать 70мкс, поднять лог 0 на пин?
я не жду)
просто 10 строк простого (псевдо)кода написать для хорошего человека не жалко же, а выглядело бы красивее, чем всё, что вы написали до этого)

а вообще сейчас всё это как грязь стоит, экономически никакой разницы использовать один, три или десять мк в штучной поделке, зато ноги, вычислительная мощность и свободная флеш останется)

и в плане энергопотребления — на фоне вайфая, один дополнительный спящий мк совершенно ни на что не повлияет
+
avatar
  • themix
  • 09 декабря 2018, 01:51
-1
тем более что вам даже прием организовывать не нужно. только оправлять. примитив. 2 команды: задержка и драганье ножкой. мдя… куда катиться мир…
+
avatar
  • PAV
  • 10 декабря 2018, 02:10
+7
Вот всегда найдутся такие долбосы. Ну если умный такой, ну пришли человеку эти 10 строк кода и будет тебе респект, а то заладил, как баран. Почему все программисты уверенны, что остальные тоже программисты? Ардуино с еспшкой как раз и сделаны для людей, которые поверхностно с темой знакомы, но благодаря им МОГУТ создавать собственные девайсы. Да хоть в блоке код пишет, работает же!!! А если мне, для реализации проекта, нужно будет выбирать — язык программирования учить или ПЯТЬ ардуин одну за другой повесить, так я даже думать не буду — повешу ардуины, ибо мне важно реализовать хотелку, а не красиво это сделать. Да хоть там миллион delay и прочего — насрать, РАБОТАЕТ. А человеку может в жизни больше эта ардуина не понадобится.
+
avatar
  • loole
  • 09 декабря 2018, 02:47
+16
Зашел и как с родными повидался…
Напомнило не к ночи Казус (ровно как и другие тусовки свидетелей K&R) — чувак полтора часа занимается обсером ардуиншиков с полным нулем в голове в плане конструктива.
+
avatar
  • sav13
  • 09 декабря 2018, 07:55
0
+
avatar
  • toxatmn
  • 09 декабря 2018, 09:11
0
Написали бы сразу «Esp 8266 using the Arduino framework» там все по другому будет.
+
avatar
  • mirnm
  • 09 декабря 2018, 04:12
0
если кому надо
github.com/markszabo/IRremoteESP8266
+
avatar
  • sav13
  • 09 декабря 2018, 07:59
+3
Оставлю это здесь


Ссылочка на библиотеку
github.com/markszabo/IRremoteESP8266
+
avatar
  • toxatmn
  • 09 декабря 2018, 09:11
0
Написали бы сразу «Esp 8266 using the Arduino framework» там все по другому будет.
+
avatar
  • sav13
  • 09 декабря 2018, 09:15
+4
Лично мое мнение — использовать интерпретаторы типа LUA в МК, это моветон хуже бейсика )))
Если уж осилили Си для ардуино, почему бы не сделать это для ESP?
Чем городить избыточное и ненадежное железо c тормозным интерпретатором.
+
avatar
  • toxatmn
  • 09 декабря 2018, 09:28
0
Не не не, я не спорю, просто указал, что другая прошивка. Я ж говорю, рабочей iremote под esp не было когда собиралось устройство, я переделывать точно не буду, работает и так.
Опять же ни одной инструкции для не сильно разбирающихся людей навроде меня, чтоб не сильно вникая взять и сделать)
+
avatar
  • Naevus
  • 09 декабря 2018, 08:04
+5
Не буду высказываться по поводу наличия ардуины, тут без меня справились :).
Выскажу только по поводу самой концепции… Управление по телефону — ну очень не юзабельно. Почему было не оставить родной пульт? По одной есп-шке в каждую комнату. с приемником ir и тупо дублирование принимаемых команд… Да, тогда придетя таскать пульт вкаждую комнату. Но ведь и телефон тоже? А завести в каждой комнате отдельный пульт проще, чем отдельный телефон :)
+
avatar
  • toxatmn
  • 09 декабря 2018, 09:13
+1
На вкус и цвет) у меня телефон всегда с собой.
+
avatar
  • Naevus
  • 09 декабря 2018, 09:52
+4
Ну если бы для «меня одного» — вообще проблемы не вижу — жить в однокомнатной квартире и не надо городить порты для ir :) Но ведь у вас же есть домашние родственники — им тоже удобнее с телефона? просто потому что они по другому не пробовали? А можете управлять с телефона мгновенно одним нажатием? Не разблокируя его и не запуская предварительно приложение? А в слепую, не глядя на телефон нажать нужную кнопку? А…

У моего телевизора есть родное приложение — пульт, работающий по сети. Установил — и управляй… да еше для «удобства» разные кнопки сгруппированы и разнесены на разные экраны… да еще… в общем — ставил я это приложение один раз — показалось хорошей идеей. Был неправ.
+
avatar
  • Bacchus
  • 09 декабря 2018, 09:58
0
ИМХО, использование телефона оправдано при запуске сценариев. Типа по одной кнопке с телефона гаснет свет, включается подсветка, разворачивается экран, включаются проектор, ресивер, твбокс
+
avatar
  • toxatmn
  • 09 декабря 2018, 12:31
+1
Да, всем удобно. Городить esp у каждого телека и покупать для них пульты — тогда уж легче сразу взять готовый радиопульт.
+
avatar
  • vkozloff
  • 09 декабря 2018, 08:12
+3
Ардуиновский скетч — просто праздник какой-то :-D
+
avatar
  • klop
  • 09 декабря 2018, 10:10
+3
Тоже повеселило ). Но автору все-равно плюс за то, что захотел и сделал. А оно работает!
+
avatar
  • vkozloff
  • 09 декабря 2018, 11:59
+2
Автору даже хватило терпения сражаться с Lua :)
+
avatar
  • Dimon_
  • 09 декабря 2018, 10:17
0
Вот то, что тут в ардуиновском скетче — это и называется «классический индусский код». Ещё сотни goto в разные места не хватает…

Даже case смотрелся бы красивее. А про организовать одну табличку, куда сложить все кодовые посылки по индексу — я вообще молчу.
+
avatar
  • fps
  • 09 декабря 2018, 11:28
0
* классический китайский код.
А индусский — это когда бессмысленно излишне усложнено и запутано
+
avatar
  • vkozloff
  • 09 декабря 2018, 11:57
0
delay() в каждом ифе — это даже не по-индусски ))
+
avatar
  • Z2K
  • 09 декабря 2018, 11:51
+1
Индусский — не идусский, смешной — не смешной, причесанный — не причесанный, длинный — короткий, усложненный — упрощенный — но по большому счету код бывает только двух типов — рабочий и нерабочий.
+
avatar
  • vkozloff
  • 09 декабря 2018, 11:58
+1
есть еще такая штука как code maintainability
+
avatar
+1
Шах и мат.
Да, шахи по приметам — труЪ. Ибо с бородой.
+
avatar
  • Dimon_
  • 09 декабря 2018, 12:17
+3
по большому счету код бывает только двух типов
Нет. Не так. Код бывает ещё «рабочий, но глючащий», «рабочий, но почему-то иногда зависает, никак поймать не могу», «рабочий, но на всякий случай иногда я её перезагружаю», «рабочий-рабочий, не сомневайтесь, это не баг, это фича» и т. д.
Поэтому оптимизация кода и архитектура алгоритма — это далеко не пустые слова…
+
avatar
  • Z2K
  • 09 декабря 2018, 12:48
+2
Для управляющих девайсов «рабочий, но глючащий» = нерабочий. Котиков смотреть «рабочий, но глючащий» = рабочий (у всех браузеров так).
+
avatar
  • Z2K
  • 09 декабря 2018, 12:55
0
«Поэтому оптимизация кода и архитектура алгоритма — это далеко не пустые слова…» — кто бы спорил. :)). Вот у последнего хрома F9 не выходит на последнюю вкладку. Єто что? А какбудто всегда работало. Надо оптимизировать? Или єто баг? Не поймешь. А если нажимаешь кнопку, а тв не включается — єто нерабочий код (если с железом Ок).
+
avatar
  • BeJIuk
  • 09 декабря 2018, 12:09
0
Вопрос знатокам: есть ли в Esp сторожевой таймер? Юзкейс — модуль просыпается раз в 1-10 минут, собирает данные, что-то делает и снова засыпает. При этом он подключен к аккумулятору. Будет ли выиграл по потреблению, или на установление соединения уйдёт больше энергии чем удалось сэкономить?
+
avatar
  • sagis
  • 09 декабря 2018, 14:24
+3
Есть режим сна вот например ngin.pro/index.php?newsid=300
+
avatar
  • BeJIuk
  • 09 декабря 2018, 14:52
0
Спасибо!
+
avatar
  • skeptik
  • 10 декабря 2018, 13:17
0
если соединяться не через dhcp клиент, а с заранее определенными настройками, то на соединение тратится от 0,7 до 4 секунд, в зависимости от версии фреймворка esp и положения звезд на небе, на версии 2.3.0 было порядка 0,7-1 и несколько раз в сутки 2-3 секунды, на 2.4.1 1.2-1.4 и несколько раз в сутки до 4 секунд время на конект к точке доступа.
+
avatar
0
Повод вспомнить творчество Dmitry Galuscenko
Надеюсь после этого придёт осознание термина coding art.

Хотя… «Мы сюда деградировать приходим, а не сложные ребусы разгадывать.»
+
avatar
  • Zhenya88
  • 09 декабря 2018, 18:31
+4
Спасибо за обзор. Из обзора узнал для себя способ решения схожей проблемы, а из комментов узнал как это правильнее сделать.
Для этого, на мой взгляд, и прелесть таких обзоров.
+
avatar
  • igsru
  • 10 декабря 2018, 16:29
0
Перечитал статью и коменты. Так и не понял а нафига ардуина и Ir? Почему еsp к приёмнику те бокса не подцепить и ножкой выдавать нужное? Зачем эл.сигнал в световую волну потом обратно? Один фиг код пульта передаваемый по ИК подбирать Я просто сути не уловил.
+
avatar
  • toxatmn
  • 10 декабря 2018, 20:07
0
Задача была сделать аналог радиопульта. Вскрытие железки рассматривалось, но недолго) мне данный вариант не подходит.
В случае чего проще передёрнуть питание только esp, чем всего ресивера. Ну и с паяльником не надо бегать в случае замены ресивера.
+
avatar
  • toxatmn
  • 10 декабря 2018, 20:48
0
А соединение на прямую минуя ir не заработало бы, т.к. сигнал с ir пульта — это модулированный сигнал, а с выхода ir приемника же выходит демодулированный.
+
avatar
0
Кому интересно есть группа-чат в телеграмме по этим модулям и esp8266 t.me/ProEsp8266