Jump to content
iT4iT.CLUB

All Activity

This stream auto-updates     

  1. Last week
  2. Разобрался. esp подключается но ее не видно в роутере,почемуто. Wifi сканер нашол, по ip полключается
  3. Кажется этот вопрос не касается этого форума. Почитайте форум. Всё подробно описано на первой странице...
  4. Esp подключал к роутеру который раздает wifi по дому. Какая сеть я думаю неважно ( если не прав поправте). Гостевая ли 2.4 или 5. Esp не видно в роутере. И нет точки доступа в течении минут 20 точно дальше не следил времени нет. Через пару часов проверил появилась точка доступа. Завтра могу выложить скрины с монитора порта. Так может понятне проблема будет
  5. После ввода данных сети и перезагрузки контроллера ESP доступен по адресу 192.168.4.1 ? Если - да, то не приняты настройки. Если не доступен, то ищите в той сети, к которой собирались подсоединиться. Компьютер и контроллер должны быть в одной сети.
  6. Нет комп на нормальной домашней сети. Гостевую создал специально для эксперемента с именем и поролем. Esp ни вкакой сети не видно
  7. Компьютер тоже подключаете к гостевой сети, куда должна подключиться ESP?
  8. Создал гостевую сеть. Tenda пароль 123456789. Все равно не подключается
  9. Для имени точки доступа похоже допустимы символы [a-z0-9_. -]{3,30} от a до z (латиница), цифры от 0 до 9, символ подчеркивания и тире. Длина имени от 3 до 30 символов.
  10. По имени не помню, по спецсимволам в пароле была проблема; попробуйте имя проще сделать. То ли $, то ли & не проходили
  11. Пароль просто буквы без символов. А вот точка достума со знаком _
  12. Проверьте пароль в роутере на наличие спецсимолов. С некоторыми метеостанция не дружит.
  13. Спасибо есть еще вопрсик. У меня esp не может подключится к роутеру
  14. Может я неправ, но в файле gpio.h нужно поменять bool gpio_enable = LOW; // HIGH на gpio_enable = HIGH; // LOW Попробуйте.
  15. Здраствуйте вообще новичек. Я так понял. Есть упраление внешними устройствоми. Но в настройках превышение покозаний датчика . Мне нужно по датчику температуры. При понижении оной включать обогрев как это можн поправить
  16. А кодом не поделитесь? Красиво и удобно! Хочу использовать DS3231 для этих нужд с синхронизацией NTP. ds3231.zip
  17. Здравствуйте! Очень интересный проект! Пытаюсь повторить, но с целью управления отоплением в доме. Часть кода понятна, но так как являюсь любителем без соответствующего образования - есть ряд вопросов. Во вложении проект в начальной стадии (работаю в Visual Studio Code с надстройкой Platformio). Суть вопроса. Добавил в меню настроек подменю установки температуры в доме. Столкнулся с двумя проблемами: При нажатии кнопки "Сохранить" получаю сообщение, что настройки сохранены, но в режиме разработчика не вижу данных. Причем данные по GPIO 12 отрабатываются отлично. Второй вопрос связан с отображением выбираемой температуры и форматом передаваемых данных. Хотелось бы получить значения на мониторе в виде дробного числа, а при передаче в виде uint. (23.5 и 235 соответственно) Буду очень признателен за оказанную помощь. ESP8266_HC_V3.0.zip
  18. Earlier
  19. Скрытие иконок даже и не нужно, так даже удобнее- видно сразу, куда надо нажимать, тем более иконки небольшие и не перекрывают обзор.
  20. Всё супер работает, благодарю. Иконки, правда, какие-то корявые получаются - надо с ними поэкспериментировать. Еще один вопрос, можно ли один и тот же датчик отображать на нескольких страницах?
  21. Здравствуйте. Если тема ещё в теме - каламбур, как сделать индентификацию карты не по UID, а по другому, перезаписываемому блоку. Ну например по 4 или какому другому. Неподскажите где скетч подправить?
  22. Доброе время суток Думаю, да, тут больше работы в самом web интерфейсе нежели на стороне микроконтроллера. Давайте начнем с последнего. В прошивке микроконтроллера идем в файл sensors.h b и ищем объект отписывающий типы листы на которых отображаются элементы. class device { public: typedef enum list_t {out = 1, in = 2}; /* ... */ } Можете расширить тип list_t и указать свои варианты typedef enum list_t {out = 1, in = 2, garage = 3, bathroom = 4}; Таким образом при инициализации датчика вы сможете указывать новые листы sensors.add(new knob_t(-100, 0, "1", "RSSI", "dbm"), device::garage, "rssi",[&](){ return wifi.isConnected() ? WiFi.RSSI() : 0; }); На этом работа с прошивкой закончена и переходим к web интерфейсу. В файле index.htm имеется блок, отвечающий за размещение датчиков. <div class="sensorsContent" hidden> <div class="menu"> <div id="sensors" class="list1"></div> <div id="graph"></div> <div id="settings"></div> </div> <div id="list1"></div> <div id="list2" hidden></div> <div prototype hidden> <div class="sensor"> <div class="title">{title}</div> <div class="unit">{unit}</div> <input class="knob {name}" data-width="200" data-displayPrevious=true data-fgColor="#FFF" data-skin="tron" data-thickness=".1" value="0" data-min="{min}" data-max="{max}" data-step="{step}" readonly> </div> </div> </div> Все датчики, в зависимости от их целочисленного идентификатора в нашей прошивке микроконтроллера в типе list_t помещаются в <div> блоки <div id="list1"></div> <div id="list2" hidden></div> Добавляем новые листы <div id="list1"></div> <div id="list2" hidden></div> <div id="list3" hidden></div> <div id="list4" hidden></div> Вообще правильнее было автоматизировать процесс создание листов, как это сделано с датчиками, но это отдельная история Теперь необходимо распространить на новые листы необходимые стили, для этого в разделе с css разметкой ищем .sensorsContent #list1, .sensorsContent #list2 { max-width: 90%; margin: auto; min-height: calc(100vh - 160px); } Аналогичным образом добавляем новые листы .sensorsContent #list1, .sensorsContent #list2, .sensorsContent #list3, .sensorsContent #list4 { max-width: 90%; margin: auto; min-height: calc(100vh - 160px); } На этом этапе Ваши датчики уже будут распределяться по листам, но видеть мы будем только первые два, переключаемые дефолтным значком на панели. И на этом этапе мы переходим к самому сложному т.к теперь мы не просто хотим что-то добавить, а нуждаемся в модификации имеющейся логики. До этого листы просто переключались между собой, а теперь, по всей видимости, нам нужно расширить панель меню и добавить просто кучу значков. Но предварительно, мы сделаем еще одно добавление, а точнее его уже сделаете Вы. Каждая иконка хранится в виде BASE64 хэша бинарной иконки в формате PNG. Если мне не подводит память, то размер иконки составляет 35х35 пикселей. Если Вы не меняете глобально этот интерфейс, то советую не использовать иконки другого размера для данного меню. Для перевода PNG иконок в используемый формат я использовал этот ресурс https://www.base64-image.de/ После перевода вы получите строку, которую необходимо использовать в css разметке для придания новым иконкам желаемого вида. На этом стоит остановиться подробнее. Уже имеющиеся иконки меню Вы можете найти в css разметке поискав по ключевым словам .menu #sensors.list Вы найдете следующее, я укажу в виде фото т.к объем текста просто огромный. Надеюсь Вы используете какой-то более мене нормальный редактор, и он преобразует этот огромный набор текста в читаемый вид, я использую Visual Studio Code По аналогии добавьте свои иконки для новых элементов меню, не забудьте менять номера листов На этом этапе Вы уже должны иметь набор новых иконок с именами: list1, list2, list3 и т.д. Теперь их необходимо организовать в меню. И тут мы возвращаемся к нашему начальному html блоку, который был описан в самом начале, это тот, в котором мы добавляли новые листы. Давайте теперь добавим и таким образом отобразим все имеющиеся иконки. На этом этапе в интерфейсе имеются все новые иконки, но логика работы их переключения все еще не изменена. Давайте исправим это. Для этого нам понадобится внести изменения и JavaScript код нашего с Вами проекта. Это последний и самый сложный этап. Ищем следующий код $(".menu #sensors").click(function() { var list = $(this).attr("class"); switch (list) { case 'list1': $("#list1").fadeToggle('slow', function(){ $("#list2").fadeToggle('slow'); }); break; case 'list2': $("#list2").fadeToggle('slow', function(){ $("#list1").fadeToggle('slow'); }); break; } $(this).toggleClass("list1", !$(this).hasClass("list1")).toggleClass("list2", !$(this).hasClass("list2")); }); Он отвечает за переключение между листами и, что нам не нужно, изменением внешнего вида начальной иконки. Давайте преобразуем его в следующий вид. Сразу скажу, что так делать не правильно, как и многое в этом проекте, но так будет нагляднее и Вам не придется делать лишние шаги которые могут запутать. В идеале, можно добавить новый, одинаковый идентификатор, для все наших слове (<div>) и по нему плавно скрыть все элементы и потом плавно показать нужный. $(".menu #sensors").click(function() { var list = $(this).attr("class"); $("#list1").hide(); $("#list2").hide(); $("#list3").hide(); $("#list4").hide(); $("#"+list).show(); }); Теперь ищем код который скрывает первоначальные элементы меню if (hideSensorsMenu) $(".menu #sensors.list1").css("display", "none"); И удаляем т.к в Вашем случае скрытие не требуется. Его есть смысл организовывать при динамическом построении меню и т.д и т.п. PS: я не могу ручаться за достоверность всех описанных действий т.к не проверял их на практике. Это просто совет, который должен направить Вас, ... и только направить.
  23. Добрый день! Можно ли добавить закладки в web-интерфейсе помимо "in" и "out". У меня 39 датчиков на одной странице, трудно ориентироваться, хотелось бы распределить на 3-4 страницы. На форуме решения не нашел. Заранее благодарен за ответ
  24. На данный момент нет. На мой взгляд, он требует большой переработки. Вы можете опубликовать его у себя, я только попрошу оставить ссылку на первоисточник и не удалять раздел "О проекте и обратная связь" в web интерфейсе.
  1. Load more activity
×
×
  • Create New...