ARDUINO Подсветка лестницы с WEB-интерфейсом

шурра

★✩✩✩✩✩✩
19 Янв 2022
10
22
Всем привет. Я довел до завершения свой проект и делюсь полным материалом с Вами. В нем есть Web интерфейс, где можно менять многие параметры, например цвет свечения. Реализована возможность прошивки "по воздуху", присутствует счетчик проходов по лестнице. Как дополнение, есть датчики температуры и влажности, данные с которых хранятся за последние сутки. Подсветка идет в виде змейки, одним цветом. Начинается с того края, где сработал датчик. При срабатывании противоположного датчика происходит потухание. Когда никто не ходит, горят первая и последняя ступени в фоновом режиме. Подробнее смотрите на видео на Яндекс диске.
Реализовано всё на плате NodeMCU ESP8266 v3. Используется преобразователь уровня 3.3V->5V, датчик освещенности BH1750, датчик температуры и влажности AHT10 и два инфракрасных датчика AM312. Сам скетч в папке ESP_lestn, а в папе ArduinoIDE настроенная среда разработки со всеми библиотеками и дополнениями.
Ссылка на скачивание, картинки и видюшки https://disk.yandex.ru/d/n9a7aYgNa-nvnQ
ВИДЕО
Кусочек кода с настройками:
C++:
/*
   Задействованные пины
   --------------------------
   NodeMCU Pins |   Датчики
   --------------------------
        D2      |     SDA
        D1      |     SCL
        3.3V    |     VCC
        GND     |     GND
        D5      | Down-sensor
        D6      |  Up-sensor
        D7      |     LED
     
   Подсветка лестницы. Пишите данные Вашей WI-Fi сети ниже (ssid и pass). Все настройки для
   подсветки в Web-интерфейсе по адресу http://lestn.local/ (имя и пароль admin).
   Если ESP не может подключиться к Вашей сети, она создает свою открытую сеть с именем lestn,
   и адрес тогда http://192.168.4.1/
*/
#define SDA     4         // D2 для i2c датчика освещенности BH1750
#define SCL     5         // D1 второй контакт BH1750
#define pinLED  13        // D7 выход на ленту, к нижней ступеньке
#define pinUP   12        // D6 ИК датчик вверх PIR 312
#define pinDOWN 14        // D5 ИК датчик вниз PIR 312
#define leds    259       // 259 общее число светодиодов (пикселей)
int k = 1;                // сдвиг в дежурной подсветке
int Light = 5;            // освещенность (1-10)
int traffic = 0;          // трафик
int numberON1=1, numberOFF1=1, numberON2=leds, numberOFF2=leds; // текущий номер светодиода
unsigned long tmr1=0, tmr3=0, tmr4=0;                           // таймеры
bool upON, upOFF, downON, downOFF, background, silence;         // события
#include <Adafruit_NeoPixel.h>
Adafruit_NeoPixel strip = Adafruit_NeoPixel(leds, pinLED, NEO_RGB + NEO_KHZ400);

void led_light() {
/* ВАЖНО!: Инициализация параметров конфига (НЕ требует внесения изменений, ВСЕ правится через web интерфейс) */
  conf.add("client_ssid", "Rostelecom_43D4"); // ваша сеть
  conf.add("client_pass", "av4B6Trg");        // ваша сеть
  conf.add("client_bmac");
  conf.add("mdns_hostname", "lestn");
  conf.add("softap_ssid",   "lestn");
  conf.add("softap_pass");
  conf.add("admin_login",   "admin");
  conf.add("admin_pass",    "admin");
  conf.add("g12", "150");   // r  цвет
  conf.add("g13", "150");   // g
  conf.add("g11", "10");    // b
  conf.add("g14", "500");   // предельный уровень освещенности
  conf.add("g15", "90");    // скорость змейки
  conf.add("g18", "20");    // r  дежурный цвет
  conf.add("g19", "50");    // g
  conf.add("g17", "0");     // b
 

Вложения

Изменено:

as_grisihn

✩✩✩✩✩✩✩
17 Ноя 2021
4
1
Привет, а к 12 вольт на ленте подключать что то нужно по схеме не ясно
 

Геннадий П

★★★★★★✩
14 Апр 2021
1,873
600
44
А зачем конвертер? Адресные ленты вроде как и с 3-вольтовой логикой нормально должны работать.

1650187860037.png
 

as_grisihn

✩✩✩✩✩✩✩
17 Ноя 2021
4
1
Закачал, скетч, но почему то морда не открывается по адресу

Видит как точку доступа, подключаюсь, а на 192.168.4.1 не заходит
Скачивал скетч попроще, всё работает
Может быть из за того что не подключено питание 3 V а от USB работает?
 

Константин 271

★★★✩✩✩✩
12 Июл 2020
948
103

as_grisihn

✩✩✩✩✩✩✩
17 Ноя 2021
4
1
@Константин 271,
Самого простого вебсервера

@Константин 271,
Прошивка загружается нормально, с моим роутером соединяет.
Пробовал сделать пинг адреса веб-интерфейса, lestnica.local пинг есть, но сам интерфейс не открывается

Если открыть монитор порта с делать ping lestn.local , то там такой ответ
23:17:11.965 -> WIFI: ssid RT-WiFi-8C5F, rssi -71 dBm HW: vcc 3.01v RAM: TotalAvailableMemory 35248, LargestAvailableBlock 34616, Fragmentation 1.793010
Но в браузере не работает
 
  • Лойс +1
Реакции: kym13

Gen@

★★★✩✩✩✩
13 Апр 2020
129
111
@Константин 271, а зачем на лестнице WEB UI? единственное что там надо менять это переключение эффектов - ну так поставьте сенсорную кнопку. А так можно и голосовое управление привернуть и ещё чего нибудь - ну и как вы думаете простой смертный справится с первичной установкой и настройкой после таких изменений?
 

Константин 271

★★★✩✩✩✩
12 Июл 2020
948
103
@Gen@, первично рассматривал это исключительно ради перехода на недорогой камушек, ибо что случилось с ардуинами - все и так знают. Тут - готовая прошивка сразу на 8266 без танцев с бубном.

Зачем WEB ? Да просто для развлечения. Следить, сколько котов пробежало по лестнице, пока я на работе был ;)
 
  • Лойс +1
Реакции: ribd, cooljazzy и Moh-Moh

Gen@

★★★✩✩✩✩
13 Апр 2020
129
111
@Константин 271, насколько я вижу ткт именно с бубном и танцуют на этой прошивке

а ардуинами я затарился на пару десятков лестниц
 

Геннадий П

★★★★★★✩
14 Апр 2021
1,873
600
44
@bort707, Только там не STM32F103, а китайский "аналог" CS32F103 и с ним есть подводные камни.
Поиграться на первое время сойдет, но если начинать с СТМ, то лучше не с аналогов.
 

bort707

★★★★★★✩
21 Сен 2020
2,927
868
Только там не STM32F103, а китайский "аналог" CS32F103
по моей ссылке написано именно стм32, а не cs32 . Обычно если четко обозначен чип - то его и присылают, иначе продавца спорами завалят. Конкретно эту ссылку не проверял, но по похожим предложениям заказывал, прислали именно стм.

Тут подвох в другом - это не стандартный блюпил с8, а его урезанный вариант с6 с меньшим флешем и памятью и частично отсутствующей периферией. Но для лестницы должно хватить.
 
Изменено:

шурра

★✩✩✩✩✩✩
19 Янв 2022
10
22
@Геннадий П, Чем выше напряжение, тем меньше потери в проводах.

@as_grisihn, Конечно, дополнительно к ленте подключаем силовой блок питания на 5 или 12 В (в зависимости от ленты)

@as_grisihn, вы не забыли нажать Sketch Data Upload как на скрине?

@svg67, попробуйте скомпилировать, распаковав Arduino из моего архива.
 
  • Лойс +1
Реакции: kaktus2004

Геннадий П

★★★★★★✩
14 Апр 2021
1,873
600
44
@шурра, В логических цепях это правило не работает.
Мало того на больших скоростях передачи данных наоборот, уменьшают напряжение логического уровня Т.к. чтобы переключить уровень с 0 на 1 у 5- и 3.3-вольтовой логики разность в заряде примерно в полтора раза, и при одинаковых цепях соответственно время нарастания и спада сигнала различается в полтора раза. Но это так, к сведению, у адресных светодиодов не такая большая скорость передачи данных чтобы это влияло.
 

Геннадий П

★★★★★★✩
14 Апр 2021
1,873
600
44
@шурра, 3В не питание, а логический уровень. От STM32 они прекрасно работают, а у них логика тоже 3-вольтовая, как и у ESP.
 

as_grisihn

✩✩✩✩✩✩✩
17 Ноя 2021
4
1
@шурра,
Да, точно забыл, заработало.
Только что то с телефона не грузит(по IP открывает) , с компьютера открывает по адресу lestn.local
Спасибо, буду дальше разбираться
 

Константин 271

★★★✩✩✩✩
12 Июл 2020
948
103
Только что то с телефона не грузит(по IP открывает)
я поинтереснее баг нарыл - после изменения цветов или пороговой яркости с телефона - вообще перестаёт светить лента. Пока не сбросишь esp. Сборка без датчиков света и температур.