ESP8266: NodeMCU или Lua на борту народного «Wi-Fi Arduino»

 
RU Balancer #09.09.2017 18:09  @AleksejLt#09.09.2017 16:25
+
-
edit
 

Balancer

администратор
★★★★★
Balancer>> D1 mini тут оверкил :) Хватит и ESP-01, а она намного компактнее.
AleksejLt> При цене в 3-5 евро уже не важно :)

Чисто по габаритам :) Да и цена, всё же, вдвое с лишним отличается.

AleksejLt> Он, вроде как и ты, пытался использовать MQTT, но ему не хватило быстродействия. Оставил простую команду на запуск сценария.

MQTT для прокачивания всего потока цветов не хватит. Но по HTTP можно залить сразу готовый скрипт и уже его запускать. Того же ide.lua должно хватить для этого без посторонних инструментов.

AleksejLt> Я с ним не игрался, но не первый раз слышу жалобы на железные проблемы.

Формально с железом проблемы нет. Пины работают, тот же RGB-светодиод моргает :) Но библиотеки штатные работают как-то хитро и глючно. А при работе от Ардуины/ATtiny или даже от ESP8266 без преобразования уровней (хотя поддержка 3.3В логики у ленты не заявлена) — всё ок.
 44
LT AleksejLt #10.09.2017 18:07  @Balancer#09.09.2017 18:09
+
-
edit
 

AleksejLt

опытный

Balancer> Чисто по габаритам :) Да и цена, всё же, вдвое с лишним отличается.

Ну да. Посмотрел сейчас - от 1.5 евро за штуку, как я буду жить без али? :)

Balancer> MQTT для прокачивания всего потока цветов не хватит. Но по HTTP можно залить сразу готовый скрипт и уже его запускать

Вот он, примерно так и сделал - закачка сценария по воздуху, а потом, в нужный момент запуск. В принципе, не самый плохой вариант.

Balancer> Формально с железом проблемы нет. Пины работают, тот же RGB-светодиод моргает :) Но библиотеки штатные работают как-то хитро и глючно

Вот-вот - хитро и глючно :) Так зачем эти пляски с бубном, если ардуинка те же копейки. Разве что лишний блок в схеме.
 56.056.0
+
-
edit
 

Balancer

администратор
★★★★★
Сегодня цеплялся к NodeMCU по telnet:

nodemcu/nodemcu-firmware

nodemcu-firmware - lua based interactive firmware for mcu like esp8266 //  github.com
 

Оказалось удобно для удалённой отладки. То есть код файлов удалённо в браузере удобно править в ide.lua, а вот запускать 20 раз вывод содержимого объектов так неудобно. По telnet — самое то :)
 44
+
-
edit
 

Balancer

администратор
★★★★★
Прицепил ESP01 с NodeMCU и {{{ ide.lua}} на борту к светодиодной ленте WS2812. Теперь можно экспериментировать со световыми эффектами удалённо, программируя через браузер.

Кстати, в новых версиях библиотеку ws2812 сильно ускорили. Раньше она была чуть-чуть медленнее, чем ручная работа в Lua с массивами. Т.е. загоняем цвета в массив, потом массив сбрасываем в светодиодную ленту. Вместо того, чтобы пользоваться методами ws2812 для заполнения буфера. А теперь методы ws2812 раза в четыре-пять быстрее стали. Заполнить ленту на 60 светодиодов цветом и записать при ручной работе сейчас занимает ~75-76 мс, а через библиотеку 15-16мс.

Только чтобы работал удалённый доступ, всё надо делать на таймерах, а не в глухом цикле. Что код усложняет, конечно. Но сносно.

Заполнение радугой, например, примерно так выглядит:

function wheel(pos)
    pos = MAX_COLOR - pos;
    if pos < 85 then
        return string.char(MAX_COLOR - pos * 3, 0, pos * 3);
    end
    if pos < 170 then
        pos = pos - 85;
        return string.char(0, pos * 3, MAX_COLOR - pos * 3);
    end
    pos = pos - 170;
    return string.char(pos * 3, MAX_COLOR - pos * 3, 0);
end

function rainbow()
    tmr.alarm(3, 20, 1, function()
        buffer:shift(1)
        buffer:set(1, wheel((iter*4) % MAX_COLOR))
        ws2812.write(buffer)
        iter = iter + 1
    end)
end
 44
LT AleksejLt #18.09.2017 23:26
+
-
edit
 

AleksejLt

опытный

Как я понимаю, у нее особо нет свободных входов, чтобы подцепить туда кнопки? Захотелось добавить 3 кнопки и действия по событиям. Но не выходит. Получается, что надо по I2c подключать?!
 56.056.0
Последние действия над темой

в начало страницы | новое
 
Поиск
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru