Git Product home page Git Product logo

gyverlamp's Introduction

Подключение:

В режиме локальной сети с роутером (по умолчанию) Имя сети: LedLamp Пароль: 31415926 (число Пи. Можно изменить в Constants.h) IP адрес для приложения: роутер выдаёт автоматически, в приложении нажмите “найти лампу” В режиме точки доступа (связь напрямую со смартфоном): Имя сети: LedLamp (можно изменить в Constants.h) Пароль: 31415926 (число Пи. Можно изменить в Constants.h) IP адрес для приложения: 192.168.4.1 Управление с кнопки:

Одиночный клик: включение/выключение Двойной клик: следующий эффект лампы Тройной клик: предыдущий эффект лампы Два четверных клика: режим обновления прошивки по воздуху (ожидание второго четверного клика – 30 секунд; ожидание прошивки после двух четверных кликов – 5 минут) Пятикратный клик: вывод IP бегущей строкой Шестикратный клик: вывод текущего времени бегущей строкой, если время было синхронизировано Семикратный клик: переключение рабочего режима лампы (ESP_MODE 0 -> 1 и 1 -> 0), сохранение в энергонезависимую память и рестарт Удерживание кнопки: изменение яркости от меньшей к большей; при повторном удерживании – от большей к меньшей Одиночный клик + удерживание кнопки: изменение скорости от меньшей к большей; при повторном клике + удерживании – от большей к меньшей Двойной клик + удерживание кнопки: изменение масштаба от меньшего к большему; при повторном двойном клике + удерживании – от большего к меньшему Удержание кнопки при запуске: сброс настроек WiFi (если активна настройка ESP_RESET_ON_START) Настройки в файле Constants.h:

ESP_USE_BUTTON: если лампа собрана без физической кнопки, нужно закомментировать или удалить строку, иначе будут фантомные срабатывания кнопки, увеличение яркости и т.д. ESP_RESET_ON_START: true – при старте с зажатой кнопкой все хранимые настройки стираются, false (по умолчанию) – не стираются ESP_CONF_TIMEOUT: время ожидания ввода имени WiFi сети и её пароля при первом старте в секундах; если истекло – лампа меняет рабочий режим на ESP_MODE = 0 (точка доступа), сохраняет его и перезагружается; до принудительного переключения семикратным кликом будет работать в ESP_MODE = 0 MOSFET_PIN: номер пина esp модуля для подключения MOSFET транзистора, который отключает питание матрицы во время, когда лампа/будильник/вывод времени выключены; может быть использован для экономии энергии, если лампа питается от аккумуляторов MOSFET_LEVEL: уровень сигнала для MOSFET транзистора, при котором на матрицу подаётся питание, по умолчанию HIGH ALARM_PIN: номер пина esp модуля, на который подаётся сигнал во время срабатывания рассвета + будильника (может быть использован для подключения проигрывателя и т.д.) ALARM_LEVEL: уровень сигнала, который выводится при срабатывании рассвета + будильника, по умолчанию HIGH AP_PASS: пароль точки доступа для рабочего режима ESP_MODE = 0 И ПАРОЛЬ ДЛЯ ОБНОВЛЕНИЯ ПРОШИВКИ ПО ВОЗДУХУ SUMMER_WINTER_TIME: для тех, кому нужен переход на зимнее/летнее время – оставить строку, остальным – закомментировать или удалить LOCAL_OFFSET: смещение от начального меридиана в минутах (часовой пояс), ТОЛЬКО ДЛЯ ТЕХ, У КОГО НЕТ ПЕРЕХОДА НА ЗИМНЕЕ/ЛЕТНЕЕ ВРЕМЯ SUMMER_OFFSET: смещение от начального меридиана в минутах (часовой пояс) для летнего времени, ТОЛЬКО ДЛЯ ТЕХ, У КОГО ЕСТЬ ПЕРЕХОД НА ЗИМНЕЕ/ЛЕТНЕЕ ВРЕМЯ WINTER_OFFSET: смещение от начального меридиана в минутах (часовой пояс) для зимнего времени, ТОЛЬКО ДЛЯ ТЕХ, У КОГО ЕСТЬ ПЕРЕХОД НА ЗИМНЕЕ/ЛЕТНЕЕ ВРЕМЯ PRINT_TIME: вывод текущего времени бегущей строкой по расписанию (если время было синхронизировано): 0U – не выводить время бегущей строкой; 1U – вывод времени каждый час; 2U – каждый час + каждые 30 минут; 3U – каждый час + каждые 15 минут; 4U – каждый час + каждые 10 минут; 5U – каждый час + каждые 5 минут; 6U – каждый час + каждую минуту NIGHT_HOURS_START: начало действия “ночного времени” (в минутах от начала суток, 1380U = 23:00), текущее время бегущей строкой будет выводиться с яркостью NIGHT_HOURS_BRIGHTNESS NIGHT_HOURS_STOP: конец действия “ночного времени” (в минутах от начала суток, 479U = 7:59) DAY_HOURS_BRIGHTNESS: яркость для вывода текущего времени бегущей строкой днём; если -1, будет использована яркость текущего эффекта (она известна, даже когда матрица выключена), [0..255] NIGHT_HOURS_BRIGHTNESS: яркость для вывода текущего времени бегущей строкой ночью; если -1, будет использована яркость текущего эффекта (она известна, даже когда матрица выключена), [0..255]

  • константы DAY_HOURS_BRIGHTNESS и NIGHT_HOURS_BRIGHTNESS используются только, когда матрица выключена, иначе будет использована яркость текущего эффекта USE_MQTT: true – используется управление по mqtt, false – нет, по умолчанию false; команды для mqtt подробно расписаны в MqttManager.h в комментариях, управление из приложения и по mqtt унифицировано

PROJECT_PHOTO

Крутая WiFi лампа на esp8266 своими руками

Описание проекта

Представляю вашему вниманию светильник на адресных светодиодах с кучей эффектов, управлением по Wi-Fi и функцией будильник-рассвет!

Железо

  • Проект собран на базе микроконтроллера ESP8266 в лице платы NodeMCU или Wemos D1 mini (неважно, какую из этих плат использовать!).
  • Вместо адресной ленты используется гибкая адресная матрица 16×16, что выходит дешевле ленты (матрица 16×16 стоит 1500р, она состоит из 256 диодов с плотностью 100 штук на метр. Лента такой же плотности стоит 1000р за метр (за 100 светодиодов). Для склейки матрицы размером 16×16 понадобится 2.5 метра ленты, то есть 2500р. А готовая матрица стоит на 1000р дешевле!).
  • Система управляется со смартфона по Wi-Fi (приложение GyverLamp для Android), а также “оффлайн” с кнопки на корпусе (сенсорная кнопка на TTP223).

Фишки

  • 14 крутых эффектов
  • Настройка скорости, яркости и “масштаба” для каждого эффекта
  • Настройка эффектов со смартфона
  • Работа системы как в локальной сети, так и в режиме “точки доступа”
  • Встроенный Wi-Fi менеджер для удобной настройки сети
  • Система получает точное время из Интернета
  • Управление кнопкой: смена режима, настройка яркости, вкл/выкл
  • Режим будильник-рассвет: менеджер будильников на неделю в приложении

Корпус

  • Корпус выглядит очень презентабельно, несмотря на простоту и доступность материалов
  • Рассеиватель – матовый плафон из Леруа Мерлен
  • Остальные элементы корпуса – канализационные трубы, в лучших традициях жанра!
  • Страница проекта на сайте: https://alexgyver.ru/GyverLamp/

Папки

ВНИМАНИЕ! Если это твой первый опыт работы с Arduino, читай инструкцию

  • libraries - библиотеки проекта. Заменить имеющиеся версии
  • firmware - прошивки для Arduino
  • schemes - схемы подключения компонентов

Схемы

SCHEME SCHEME

Материалы и компоненты

Ссылки оставлены на магазины, с которых я закупаюсь уже не один год

Вам скорее всего пригодится

Как скачать и прошить

  • Первые шаги с Arduino - ультра подробная статья по началу работы с Ардуино, ознакомиться первым делом!
  • Скачать архив с проектом

На главной странице проекта (где ты читаешь этот текст) вверху справа зелёная кнопка Clone or download, вот её жми, там будет Download ZIP

  • Установить библиотеки в
    C:\Program Files (x86)\Arduino\libraries\ (Windows x64)
    C:\Program Files\Arduino\libraries\ (Windows x86)
  • Подключить внешнее питание 5 Вольт
  • Подключить плату к компьютеру
  • Файл/Настройки, вставить ссылку http://arduino.esp8266.com/stable/package_esp8266com_index.json в в текст-бокс для дополнительных ссылок для менеджера плат
  • Открыть Инструменты/Плата/Менеджер плат…, найти esp8266 by ESP8266 Community, установить версию 2.5.0
  • Открыть Инструменты, настроить Плату, Порт и другие параметры как на скриншоте
  • Загрузить прошивку

Настройки в коде

// -------- ВРЕМЯ -------
GMT 3              // смещение (москва 3)
NTP_ADDRESS  "europe.pool.ntp.org"    // сервер времени

// -------- РАССВЕТ -------
DAWN_BRIGHT 200       // макс. яркость рассвета
DAWN_TIMEOUT 1        // сколько рассвет светит после времени будильника, минут

// ---------- МАТРИЦА ---------
BRIGHTNESS 40         // стандартная маскимальная яркость (0-255)
CURRENT_LIMIT 2000    // лимит по току в миллиамперах, автоматически управляет яркостью (пожалей свой блок питания!) 0 - выключить лимит

WIDTH 16              // ширина матрицы
HEIGHT 16             // высота матрицы

COLOR_ORDER GRB       // порядок цветов на ленте. Если цвет отображается некорректно - меняйте. Начать можно с RGB

MATRIX_TYPE 0         // тип матрицы: 0 - зигзаг, 1 - параллельная
CONNECTION_ANGLE 0    // угол подключения: 0 - левый нижний, 1 - левый верхний, 2 - правый верхний, 3 - правый нижний
STRIP_DIRECTION 0     // направление ленты из угла: 0 - вправо, 1 - вверх, 2 - влево, 3 - вниз
// при неправильной настрйоке матрицы вы получите предупреждение "Wrong matrix parameters! Set to default"
// шпаргалка по настройке матрицы здесь! https://alexgyver.ru/matrix_guide/

// --------- ESP --------
ESP_MODE 1
// 0 - точка доступа (192.168.4.1 или другой)
// 1 - локальный (192.168.1.232 или другой)

// -------- Менеджер WiFi ---------
AC_SSID "AutoConnectAP"
AC_PASS "12345678"

// -------------- AP ---------------
AP_SSID "GyverLamp"
AP_PASS "12345678"
AP_PORT 8888

FAQ

Основные вопросы

В: Как скачать с этого грёбаного сайта?
О: На главной странице проекта (где ты читаешь этот текст) вверху справа зелёная кнопка Clone or download, вот её жми, там будет Download ZIP

В: Скачался какой то файл .zip, куда его теперь?
О: Это архив. Можно открыть стандартными средствами Windows, но думаю у всех на компьютере установлен WinRAR, архив нужно правой кнопкой и извлечь.

В: Я совсем новичок! Что мне делать с Ардуиной, где взять все программы?
О: Читай и смотри видос http://alexgyver.ru/arduino-first/

В: Вылетает ошибка загрузки / компиляции! О: Читай тут: https://alexgyver.ru/arduino-first/#step-5

В: Сколько стоит?
О: Ничего не продаю.

Вопросы по этому проекту

Полезная информация

gyverlamp's People

Contributors

gunner47 avatar alexgyver avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.