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")
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)
#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);
}
}
}
}
+160 |
61587
106
|
+23 |
1915
52
|
+47 |
2530
89
|
+167 |
3974
48
|
+24 |
1985
26
|
Спасибо.
Повторюсь, не знаю как сейчас, 3 года назад iremote на esp не фурычила) её усиленно допиливали, но я не стал ждать, поэтому не знаю, чем дело кончилось, так вышло быстрее и на 50р дороже)
1. Часы с анимацией адресуемой лентой. Пишут (сам правда не проверял) что ESP ее плохо обрабатывает, так как прерывания на работу с вафлей могут сбить «заполнение» ленты. По этому часы на на ардуине, а вот время они берут из инета по вафле через ESP.
2. Стрелочные индикаторы температуры/давления/co2/и т.д. для погодной станции. Прием данных с помощью ESP по вафле через MQTT от самой погодной станции, а вот шаговым двигателем стрелочных индикаторов рулит ардуина (без драйвера шагового двигателя), так как у нее нагрузочная способность выходов в 4 раза выше выше.
Ну и у меня драйвера из ардуин умные получились. принимают JSon, настраиваются конечные точки (физические в градусах и логические в реальном значении температуры), имеют собственное имя, можно повесить несколько таких «драйверов» на один UART выход ESP.
просто 10 строк простого (псевдо)кода написать для хорошего человека не жалко же, а выглядело бы красивее, чем всё, что вы написали до этого)
а вообще сейчас всё это как грязь стоит, экономически никакой разницы использовать один, три или десять мк в штучной поделке, зато ноги, вычислительная мощность и свободная флеш останется)
и в плане энергопотребления — на фоне вайфая, один дополнительный спящий мк совершенно ни на что не повлияет
esp8266.ru/forum/threads/ir-remote-biblioteka-dlja-upravlenija-texnikoj-po-ik-kanalu.252
Напомнило не к ночи Казус (ровно как и другие тусовки свидетелей K&R) — чувак полтора часа занимается обсером ардуиншиков с полным нулем в голове в плане конструктива.
github.com/markszabo/IRremoteESP8266
Ссылочка на библиотеку
github.com/markszabo/IRremoteESP8266
Если уж осилили Си для ардуино, почему бы не сделать это для ESP?
Чем городить избыточное и ненадежное железо c тормозным интерпретатором.
Опять же ни одной инструкции для не сильно разбирающихся людей навроде меня, чтоб не сильно вникая взять и сделать)
Выскажу только по поводу самой концепции… Управление по телефону — ну очень не юзабельно. Почему было не оставить родной пульт? По одной есп-шке в каждую комнату. с приемником ir и тупо дублирование принимаемых команд… Да, тогда придетя таскать пульт вкаждую комнату. Но ведь и телефон тоже? А завести в каждой комнате отдельный пульт проще, чем отдельный телефон :)
У моего телевизора есть родное приложение — пульт, работающий по сети. Установил — и управляй… да еше для «удобства» разные кнопки сгруппированы и разнесены на разные экраны… да еще… в общем — ставил я это приложение один раз — показалось хорошей идеей. Был неправ.
Даже case смотрелся бы красивее. А про организовать одну табличку, куда сложить все кодовые посылки по индексу — я вообще молчу.
А индусский — это когда бессмысленно излишне усложнено и запутано
Да, шахи по приметам — труЪ. Ибо с бородой.
Поэтому оптимизация кода и архитектура алгоритма — это далеко не пустые слова…
Надеюсь после этого придёт осознание термина coding art.
Хотя… «Мы сюда деградировать приходим, а не сложные ребусы разгадывать.»
Для этого, на мой взгляд, и прелесть таких обзоров.
В случае чего проще передёрнуть питание только esp, чем всего ресивера. Ну и с паяльником не надо бегать в случае замены ресивера.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.