Перейти к публикации
iT4iT.CLUB

Таблица лидеров


Популярные публикации

Отображаются публикации с наибольшей репутацией на 17.11.2020 во всех областях

  1. 1 балл
    Обновление от 27.02.2018 (v2.0 Beta) Друзья, всем доброе время суток. Немного не хватает времени и технических возможностей подготовить все как положено до конца месяца, в связи с этим прошу отнестись с пониманием. Основная статья будет переписана в течении нескольких дней после публикации этого сообщения. Все исходники, по доброй традиции, опубликованы в первом сообщении темы. Краткий список изменений Требования Arduino IDE c поддержкой esp8266 v2.4.0+ Любой модуль на базе ESP8266 c Flash 4MB (3MB выделяем под SPIFFS) Код для микроконтроллера структурирован и разбит на модули, что делает его более простым для понимания и внесения изменений config.h - работа с файлом конфигурации хранящимся во flash памяти микроконтроллера в формате json. Реализована возможность быстрого добавления пользовательских параметров. Поиск, чтение, запись этих параметров, а также специализированные функции для работы с WEB интерфейсом – обновление и запись группы параметров, переданных в формате json и формирование списка параметров и их значений с фильтрацией паролей для их скрытия при передаче в WEB интерфейс (в WEB интерфейсе реализована ответная часть). cron.h - планировщик заданий основной целью которого является выполнение пользовательских заданий с установленным интервалом времени. Задания представляют из себя функции описанные пользователем. На данный момент они не должны принимать или возвращать никаких значений, обязаны выполнять всю работу самостоятельно или с помощью глобальных объектов. Интервал выполнения задания выставляется в миллисекундах или с помощью макросов, представляющих из себя человекочитаемые имена, за которыми скрываются часто используемые отрезки времени в миллисекундах. Доступен дополнительный функционал в виде поиска задания в журнале, сброс его интервала вызова, выставление нового интервала, остановка выполнения и проверка активности задания. gpio.h - не является модулем. Содержит примеры реализации работы с GPIO для самых часто упоминаемых пользователями задач – управление нагрузкой по превышению установленных через WEB интерфейс приделов температуры и влажности, а также управление нагрузкой при расхождении расчетных значений абсолютной влажности между показаниями двух датчиков. sensors.h - тестовый вариант модуля для реализации автоматического сбора данных с пользовательских датчиков. Очень тесно завязан с планировщиком заданий и http сервером. Преследует только одну цель – избавить пользователя от внесения изменений в большую часть кода при составления собственного набора датчиков, в том числе не описанных в проекте, работающих на других шинах данных или с другими библиотеками. Также позволяет создавать программные сенсоры для вывода расчетных данных, например, абсолютная влажность или любой иной информации представленной в числовом виде. Это могут быть данные об уровне сигнала, напряжения питания или значение с аналогово порта. Помимо добавления сенсоров доступен поиск по списку всех сенсоров, проверка и изменения статуса (актуально только для i2c шины), получение последнего собранного значение с одного или группы сенсоров, аналогичная процедура для логов (активируются для каждого сенсора отдельно) и формирование списка в формате json из всех сенсоров с описанием всех необходимых характеристик. services.h - не является модулем. Содержит примеры реализации передачи показаний на внешние ресурсы на примере связи с MQTT брокером, а также передача данных через Rest API на такие ресурсы как "ThingSpeak" или "Народный мониторинг". tools.h - содержит набор вспомогательных утилит. webserver.h - Основная рабочая лошадка. Представляет из себя http сервер с реализацией API для обмена данными с WEB интерфейсом проекта, а также работающий с файлами во flash памяти микроконтроллера. Тесно связан со всеми модулями. Описание всего функционала заслуживает отдельного раздела. wifi.h - модуль описывает режимы работы Wi-Fi а также переключение между ними. Добавлена поддержка работы со скрытыми беспроводными сетями. В связи с тем, что целью было охватить все желаемые пользователями датчики, код был унифицирован и теперь поддерживает работу с любыми источниками данных. Примеры пользовательской конфигурации расположены в следующих файлах. users_auto.h - не является модулем. Содержит пример с реализацией выбора используемых датчиков с помощью подобия виртуальных переключателей ON/OFF. Также является примером как добавлять датчики в систему с использованием лямбда функций. Не совместим с users_bme280_x2.h users_bme280_x2.h - не является модулем. Содержи пример реализации работы с двумя датчиками BME280 на I2C шине. В отличие от users_auto.h, при добавлении нового датчика используются обычные функции. Не совместим с users_auto.h Изменения в WEB интерфейсе WEB интерфейс больше не запрашивает дублирующие файлы с внешних ресурсов, все необходимое для работы хранится на микроконтроллере. Список индикаторов на главной странице строится автоматически в зависимости от данных предоставленных объектом sensors через API. Добавлена поддержка двух групп датчиков – внешних и внутренних. Группа внешних сенсоров считается основной и отображается по умолчанию. Если зафиксировано наличие внутренней группы, то в меню будет добавлен переключает с индикацией выбранной группы. Исправлен баг с блокировкой доступа к панели управления из-за паразитных cookies различных систем аналитики. Изменен алгоритм работы системы защиты доступа к панели управления – реакция на брутфорс пароля или cookies, метод генерации соли и т.п. Также клиент получает соответствующее уведомление при блокировке доступа. В разделе основных настроек добавлена возможность изменять имя контроллера для MDNS протокола. Изменения вступят в силу в течении 10 минут или после перезапуска микроконтроллера. Найти устройство можно по этому имени в зоне ".local", по умолчанию "espws.local". Также в основных настройках добавлен пункт подтверждения пароля для домашней беспроводной сети. Его отсутствие было историческим упущением, но справедливость наконец восторжествовала. Раздел "Система" был расширен и теперь включает в себя всю информацию о текущем подключении. Также добавлена возможность динамического обновления некоторых данных, в список входят: уровень сигнала, напряжение питания и объем свободной памяти. В разделе обновления прошивки микроконтроллера ужесточена проверка контрольной суммы загружаемого файла, теперь нельзя загрузить программу без этих расчетов. Ранее просто выводилось предупреждение. Также увеличен список расшифровок ответа микроконтроллера в ходе обновления микропрограммы. В разделе "Файловая система" отображается корректный объем доступной flash памяти для внутренней файловой системы. Добавлен раздел для внешнего коллектора данных “ThingSpeak”. Пока доступен только ввод ключа для работы с API. По Вашим просьбам был добавлен раздел "Контроль состояния GPIO". Это пробный вариант конфигурации взаимодействия ESP8266 с внешней нагрузкой через WEB интерфейс. На данный момент в разделе присутствуют два параметра выставляющие границу включения внешней нагрузки при превышении установленных значений температуры или влажности. Доработана система оповещений. Мелкие правки и исправления ошибок в коде web интерфейса. В связи с тем, что старая реализация графика была нацелена на конкретные данные, унификация его кода на данный момент невозможна. График работает, но принимает строго указанные значения. Данная проблема будет решена позже. PS: Еще раз прошу отнестись с понимание и обратить внимание, что это тестовая версия. Спасибо.
×
×
  • Создать...