Оглавление:

IOT123 - АССИМИЛЯЦИЯ СЕНСОРНОГО ХАБА: ВЕБ-СЕРВЕР НАСТРОЙКИ ICOS10: 11 шагов
IOT123 - АССИМИЛЯЦИЯ СЕНСОРНОГО ХАБА: ВЕБ-СЕРВЕР НАСТРОЙКИ ICOS10: 11 шагов

Видео: IOT123 - АССИМИЛЯЦИЯ СЕНСОРНОГО ХАБА: ВЕБ-СЕРВЕР НАСТРОЙКИ ICOS10: 11 шагов

Видео: IOT123 - АССИМИЛЯЦИЯ СЕНСОРНОГО ХАБА: ВЕБ-СЕРВЕР НАСТРОЙКИ ICOS10: 11 шагов
Видео: IOT123 - BYKO LIVE RIDE 2024, Июль
Anonim
IOT123 - АССИМИЛЯЦИЯ ДАТЧИКА: ВЕБ-СЕРВЕР НАСТРОЙКИ ICOS10
IOT123 - АССИМИЛЯЦИЯ ДАТЧИКА: ВЕБ-СЕРВЕР НАСТРОЙКИ ICOS10
IOT123 - АССИМИЛЯЦИЯ ДАТЧИКА: ВЕБ-СЕРВЕР НАСТРОЙКИ ICOS10
IOT123 - АССИМИЛЯЦИЯ ДАТЧИКА: ВЕБ-СЕРВЕР НАСТРОЙКИ ICOS10
IOT123 - АССИМИЛЯЦИЯ ДАТЧИКА: ВЕБ-СЕРВЕР НАСТРОЙКИ ICOS10
IOT123 - АССИМИЛЯЦИЯ ДАТЧИКА: ВЕБ-СЕРВЕР НАСТРОЙКИ ICOS10

Подчиненные устройства ASSIMILATE SENSOR / ACTOR встраивают метаданные, которые используются для определения визуализаций в Crouton. Эта сборка добавляет веб-сервер к ESP8266 Master, обслуживает некоторые файлы конфигурации, которые могут быть изменены пользователем, а затем использует эти файлы для переопределения визуализаций. Таким образом, можно изменить названия карточек приборной панели и большинство настраиваемых свойств. Это было необходимо, например. DHT11 публикует свойства температуры и влажности: если на объекте есть несколько узлов с отдельными датчиками DHT11, все они не могут называться температурой (температура в гараже, температура двора…). Ограничение длины метаданных, установленное шиной I2C (16 символов), не существует, и могут применяться более обширные значения (до 64 символов).

Дополнительная базовая аутентификация конфигурируема для редактируемой веб-страницы, а также список исключений из аутентификации для других ресурсов.

На существующей дочерней плате также был разработан переключатель нижнего уровня, который при необходимости отключает ведомые устройства.

В качестве технического примечания: перед запуском этой сборки объем памяти составлял 70% из-за глобального графа объектов метаданных. В последней библиотеке AssimilateBus были внесены критические изменения, которые разделяют глобальную переменную на более мелкие файлы JSON, сохраняемые в SPIFFS. Это вернуло занимаемое место до ~ 50%, что безопаснее для всего синтаксического анализа / построения JSON. Библиотека AssimilateBusSlave остается той же (ASSIM_VERSION 2) на протяжении всех этих изменений.

ОСОБЕННОСТИ И ВИДЕНИЕ

В настоящее время ведомые устройства (датчики и субъекты) являются автономными и полагаются на сообщения I2C на основе соглашений для чтения свойств или действий по командам. Мастер получает метаданные и свойства от ведомых устройств и отправляет их брокеру MQTT. Он также запускает веб-сервер и обслуживает файлы JSON, которые можно редактировать, чтобы настроить мастер и настроить метаданные / свойства, которые в конечном итоге потребляются Crouton. Отдельные датчики / акторы считываются / управляются через Crouton, при этом ведущий не имеет каких-либо предварительных знаний о том, что делают ведомые.

Одна из целей ASSIMILATE IOT NETWORK - настроить Crouton таким образом, чтобы редакторы гибридных приложений, обслуживаемые веб-серверами IOT NODE (как эта сборка), добавлялись в качестве веб-компонентов, которые дадут полный контроль над тем, что делает вещь, т.е. мастер не запрограммирован, ведомые устройства имеют базовые наборы функций, но панель инструментов Crouton включает все бизнес-правила, необходимые для работы устройства!

Форк Crouton рассматривается как вариант для децентрализованного управления / настройки вещей. По сути, любая комбинация MQTT-клиент / графический интерфейс может управлять вашими вещами, поскольку каждая функция (датчики и субъекты) отображается как конечные точки MQTT.

Шаг 1: гренки

Гренки
Гренки
Гренки
Гренки

Гренки. https://crouton.mybluemix.net/ Crouton - это панель управления, которая позволяет визуализировать и управлять устройствами IOT с минимальной настройкой. По сути, это самая простая в настройке панель инструментов для любого энтузиаста оборудования IOT, использующего только MQTT и JSON.

ASSIMILATE SLAVES (датчики и субъекты) имеют встроенные метаданные и свойства, которые мастер использует для создания json-пакета deviceInfo, который Crouton использует для создания информационной панели. Посредником между ASSIMILATE NODES и Crouton является брокер MQTT, совместимый с веб-сокетами: для демонстрации используется Mosquito.

Поскольку ASSIMILATE MASTER (эта сборка) запрашивает свойства, он форматирует значения ответа в необходимом формате для обновлений Crouton.

Шаг 2: Веб-сервер / редактор

Веб-сервер / редактор
Веб-сервер / редактор
Веб-сервер / редактор
Веб-сервер / редактор

Когда мастер загружается (эта сборка), запускается встроенный веб-сервер. IP-адрес выводится на последовательную консоль; в конечном итоге это будет опубликовано на панели инструментов Crouton.

Когда вы перейдете к указанному URL-адресу, будет загружен РЕДАКТОР ACE:

Ace - это встраиваемый редактор кода, написанный на JavaScript. Он соответствует функциям и производительности собственных редакторов, таких как Sublime, Vim и TextMate.

Ace популярен среди встроенных веб-серверов и предоставляет хороший интерфейс для редактирования и сохранения файлов JSON.

Щелчок по имени файла слева приведет к чтению файла из SPIFFS на ESP8266 и загрузке содержимого для редактирования справа. Файл можно сохранить с верхней панели инструментов.

Чтобы загрузить файл:

  1. Выберите File из вашей локальной файловой системы.
  2. Вставьте путь к папке (при необходимости) в текстовое поле.
  3. Щелкните Загрузить.
  4. Обновите страницу.

Шаг 3. Настройка устройства

Настройка устройства
Настройка устройства

Конфигурация устройства (ESP8266) выполняется через файл device.json.

Некоторые из этих записей (wifi_ssid, wifi_key) необходимо будет изменить перед загрузкой данных в SPIFFS (загрузка данных эскиза ESP8266).

Перейдите в корень веб-сервера (показан в выводе консоли, например,

РЕДАКТИРОВАНИЕ

В РЕДАКТОРЕ ACE выберите config / device.json.

Записи:

  • www_auth_username: имя пользователя авторизации для файлов веб-сервера (пусто, если авторизация не выполняется).
  • www_auth_password: пароль авторизации для файлов веб-сервера (если имя пользователя определено).
  • www_auth_exclude_files: разделенный точкой с запятой список путей к файлам, исключаемых из проверок авторизации (если имя пользователя определено).
  • sensor_interval: миллисекунды между публикациями данных в MQTT Broker.
  • ntp_server_name: имя используемого сервера времени.
  • time_zone: смещение в часах по вашему местному времени.
  • wifi_ssid: SSID вашей локальной точки доступа.
  • wifi_key: ключ, используемый для SSID.
  • mqtt_broker: адрес брокера MQTT.
  • mqtt_username: имя пользователя для брокера MQTT (пусто, если учетная запись не требуется).
  • mqtt_password: пароль для использования от имени пользователя MQTT.
  • mqtt_port: порт брокера MQTT.
  • mqtt_device_name: имя, которое будет использоваться для тем MQTT и идентификации Crouton.
  • mqtt_device_description: описание устройства, показанного в Crouton.
  • viz_color: цвет для идентификации карт устройств в Crouton (в разветвленной версии)

Шаг 4. Настройка свойств

Настройка собственности
Настройка собственности
Настройка собственности
Настройка собственности
Настройка собственности
Настройка собственности

У каждого из ведомых есть массив структур nvc, определенный в файле definitions.h:

// --------------------------------------- ОПУБЛИКОВАННАЯ НЕДВИЖИМОСТЬ

nvc props [2] = {{"Влажность", "", true}, {"Температура", "", false}}; // --------------------------------------- КОНЕЦ ОПУБЛИКОВАННЫХ СВОЙСТВ

У каждой записи есть индекс, первый из которых равен 0 (нулю).

Настройка имени свойства выполняется через файл user_props.json.

Перейдите в корень веб-сервера (показан в выводе консоли, например,

РЕДАКТИРОВАНИЕ

В РЕДАКТОРЕ ACE выберите config / user_props.json (или загрузите его).

Состав такой:

Первый ключ - это адрес ведомого устройства в файле definitions.h, который определяется следующим образом:

#define ADDRESS_SLAVE XX

  • Следующий уровень ключей - это указатель собственности.
  • Значением этого ключа является имя свойства, которое будет использоваться в Crouton вместо имени свойства, определенного в файле определений.

Шаг 5. Настройка метаданных

Настройка метаданных
Настройка метаданных
Настройка метаданных
Настройка метаданных
Настройка метаданных
Настройка метаданных
Настройка метаданных
Настройка метаданных

Из-за количества возможных настроек каждое ведомое устройство имеет свой собственный файл модификации метаданных. Файлы должны быть в формате user_metas_.json.

Адрес ведомого устройства находится в файле definitions.h в эскизах ATTINY85:

#define ADDRESS_SLAVE XX

Метаданные определены в том же файле следующим образом:

const static char viz1 PROGMEM = "VIZ_CARD_TYPE";

const static char viz2 PROGMEM = "2: диаграмма-пончик"; const static char viz3 PROGMEM = "1";

Первая строка - это имя элемента метаданных.

Вторая строка - это значение. Обычно он имеет суффикс индекса свойства.

Третья строка - флаг продолжения. 1 - продолжить, 0 - конец метаданных (VCC_MV).

Перейдите в корень веб-сервера (показан в выводе консоли, например,

РЕДАКТИРОВАНИЕ

В редакторе ACE выберите config / user_metas_SLAVE_ADDRESS.json (или загрузите его). Состав такой:

  • Массив пар имя / значение.
  • Имя - это имя изменяемого элемента метаданных.
  • Ценность - это изменение. Суффикс индекса проверяется на предмет замены.

Шаг 6: материалы и инструменты

Материалы и инструменты
Материалы и инструменты
Материалы и инструменты
Материалы и инструменты
Материалы и инструменты
Материалы и инструменты

ICOS10 (IDC) Спецификация материалов Shell

  1. D1M BLOCK - зажим для штифта (1)
  2. Основание и корпус БЛОКА Д1М (1)
  3. Wemos D1 Mini (1)
  4. Wemos D1 Mini Protoboard Shield (1)
  5. Гнезда 40P (8P, 8P, 9P, 9P)
  6. Мужской заголовок 90º (3P, 3P, 3P, 2P, 1P, 2P)
  7. 1 "двусторонняя макетная плата (2)
  8. 2N7000 NFET (1)
  9. 6-контактный штекер IDC с кожухом (1)
  10. Монтажный провод (~ 10)
  11. Луженая проволока 0,5 мм (~ 4)
  12. Саморезы 4G x 15 мм с полукруглой головкой (2)
  13. Самонарезающие винты с потайной головкой 4G x 6 мм (~ 20)
  14. Припой и железо (1)

Шаг 7: Подготовка MCU

Image
Image
Подготовка к MCU
Подготовка к MCU

В этой сборке мы используем Wemos D1 Mini. Если вы ранее построили D1M WIFI BLOCK, вы можете использовать его для модульного аппаратного компонента. Если нет, как минимум следуйте следующему разделу.

ЗАПАЙКА ШТИФТОВ ЖАТКИ НА MCU (используя PIN JIG) Если вы не можете распечатать PIN JIG, просто следуйте инструкциям и импровизируйте: высота (смещение) PIN JIG составляет 6,5 мм.

  1. Распечатайте / получите PIN JIG с этой страницы.
  2. Проденьте штыри разъема через нижнюю часть платы (TX правый-левый) в пайку для пайки.
  3. Прижмите штифты к твердой плоской поверхности.
  4. Плотно прижмите доску к приспособлению.
  5. Припаяйте 4 угловых контакта.
  6. Разогрейте и переставьте доску / штыри, если необходимо (доска или штыри не выровнены или вертикальны).
  7. Припаиваем остальные контакты.

ЗАГРУЗКА ПРОШИВКИ

Репозиторий кода можно найти здесь (снимок).

ZIP-архив библиотеки можно найти здесь (снимок).

Инструкции по «Импорту библиотеки ZIP» здесь.

После установки библиотеки вы можете открыть пример «mqtt_crouton_esp8266_customization_webserver».

Инструкции по настройке Arduino для Wemos D1 Mini здесь.

Зависимости: ArduinoJson, TimeLib, PubSubClient, NeoTimer (см. Вложения, если критические изменения в репозиториях).

ЗАГРУЗИТЬ В SPIFFS

После загрузки кода в IDE Arduino откройте device.json в папке data / config:

  1. Измените значение wifi_ssid своим SSID WiFi.
  2. Измените значение wifi_key своим ключом WiFi.
  3. Измените значение mqtt_device_name на предпочитаемый вами идентификатор устройства (присоединение не требуется).
  4. Измените значение mqtt_device_description, указав предпочтительное описание устройства (в Crouton).
  5. Сохраните device.json.
  6. Загрузите файлы данных в SPIFFS.

Шаг 8: Подготовка корпуса MCU

Image
Image
Подготовка корпуса MCU
Подготовка корпуса MCU
Подготовка корпуса MCU
Подготовка корпуса MCU

В корпусе MCU имеются разъемы для подключения D1 Mini и разъемы для дочерних плат, которые обмениваются данными со схемой Socket (датчики и акторы).

КОРПУС ЗАГОЛОВОК Основан на прототипе D1 Mini Protoboard и имеет следующие штыри:

  1. Контакты для подключения D1M WIFI BLOCK / D1 Mini.
  2. Прямые отводы 2-х рядов контактов от D1M WIFI BLOCK / D1 Mini. Они доступны только для удобства во время прототипирования. Ожидается, что дочерние платы заблокируют любой доступ к этим заголовкам.
  3. 4 Разъемы конкретных выводов, используемых дочерними платами.

Чтобы добавить контакты D1M в ЗАГОЛОВОК КОРПУСА:

  1. Посмотрите видео о ПАЙКЕ ИСПОЛЬЗУЕТ РОЗЕТКУ.
  2. Пропустите штыри заголовка через нижнюю часть платы (TX вверху слева на верхней стороне).
  3. Пропустите приспособление над пластиковым жаткой и выровняйте обе поверхности.
  4. Переверните приспособление и сборку и плотно прижмите жатку к твердой плоской поверхности.
  5. Плотно прижмите доску к приспособлению.
  6. Припаяйте 4 угловых контакта с минимальным количеством припоя (только временное выравнивание контактов).
  7. Разогрейте и переставьте доску / штыри, если необходимо (доска или штыри не выровнены или вертикальны).
  8. Припаиваем остальные контакты.
  9. Снимите приспособление.
  10. Отрежьте контакты над припоями.

Чтобы добавить прорывы на дочерней доске:

  1. Отрежьте 4 штекерных разъема 9P.
  2. Сверху вставьте разъемы 9P, как показано, и припаяйте снизу.

Чтобы добавить прямые обсуждения:

  1. Отрежьте 2 разъема с внутренней резьбой 8P.
  2. Сверху вставьте разъемы 8P, как показано, и припаяйте снизу.

Чтобы подключить разъемы, внизу с контактом TX, ориентированным вверх:

  1. Отследите и припаяйте 4 контакта от штыря RST.
  2. Отследите и припаяйте 4 контакта от контакта A0.
  3. Отследите и припаяйте 4 контакта от контакта D1.
  4. Отследите и припаяйте 4 контакта от контакта D2.
  5. Отследите и припаяйте штырь D0 вниз на 2 ряда и через 4 контакта.
  6. Отследите и припаяйте 4 контакта от контакта D7.
  7. Отследите и припаяйте 4 контакта от контакта GND.
  8. Отследите и припаяйте 4 контакта от контакта 5V.
  9. Отследите и припаяйте 4 контакта на 45 ° вниз от контакта 3V3.

СБОРКА ОБОРУДОВАНИЯ

ЗАГОЛОВОК КОРПУСА прикреплен к КОРПУСУ MCU, и он прикреплен к ОСНОВНОЙ ПЛАСТИНЕ.

  1. Направив длинную сторону ЗАГОЛОВКИ КОРПУСА к отверстию, вставьте КОНТАКТЫ D1M в отверстия КОРПУСА MCU и нажмите на них заподлицо.
  2. Вставьте MCU в КОНТАКТЫ MCU во время прикрепления, чтобы обеспечить правильное выравнивание.
  3. Поместите РАМКУ ЖАТКИ поверх собранных приспособлений и закрепите 2 винтами 4G x 16 мм.
  4. Поместите собранные приспособления отверстием к короткой стороне и закрепите винтами 4G x 6 мм.

Шаг 9: Создание дочерней платы переключателя нижнего уровня / RESET подчиненных устройств

Построение дочерней платы переключателя нижнего уровня / RESET подчиненных устройств
Построение дочерней платы переключателя нижнего уровня / RESET подчиненных устройств
Построение дочерней платы переключателя нижнего уровня / RESET подчиненных устройств
Построение дочерней платы переключателя нижнего уровня / RESET подчиненных устройств
Построение дочерней платы переключателя нижнего уровня / RESET подчиненных устройств
Построение дочерней платы переключателя нижнего уровня / RESET подчиненных устройств

Это усовершенствование дочерней платы REST, разработанной в последней сборке. Это добавляет переключатель нижнего уровня, который подключает ведомые устройства к ЗЕМЛЕ. Если мастер сброшен, подчиненные тоже будут, и инициализация распространения метаданных начнется снова.

СБОРКА

  1. С внутренней стороны вставьте 9P 90 ° штекерные разъемы (1), 1P 90 ° Male Header (2), 2N7000 (3) и припаяйте их снаружи.
  2. С внутренней стороны проследите желтый провод от ЖЕЛТОГО1 до ЖЕЛТОГО2 и припаяйте.
  3. На внутренней стороне проследите оголенный провод от SILVER1 до SILVER2 и припаяйте.
  4. На внутренней стороне проследите оголенный провод от SILVER3 до SILVER4 и припаяйте.

Шаг 10: Сборка основных компонентов

Сборка основных компонентов
Сборка основных компонентов
Сборка основных компонентов
Сборка основных компонентов
Сборка основных компонентов
Сборка основных компонентов
Сборка основных компонентов
Сборка основных компонентов
  1. Убедитесь, что ОБОЛОЧКА построена, а цепь протестирована (кабель и розетки).
  2. Замените 2-контактный штекер на плате 3V3 I2C DAUGHTER-BOARD на 2-контактный 90º 1-контактный штекер.
  3. Вставьте ПЛАТУ ДОЧИ 3V3 I2C так, чтобы штырь 3V3 находился на неровном конце разъемов (см. Рис.).
  4. Вставьте НИЗКИЙ ПЕРЕКЛЮЧАТЕЛЬ / ПЛАТУ ДОЧИ СБРОСА проводом внутрь (см. Рис.).
  5. Проследите провод Dupont между 90º 1P Male Header на ПЛАТЕ ДОЧИ СБРОСА до ПЛАТЫ ДОЧИ 3V3 I2C.
  6. Вставьте разъем IDC от КАБЕЛЯ ОБОЛОЧКИ в разъем IDC на ПЛАТЕ ДОЧЕРИ 3V3 I2C.
  7. Осторожно вставьте ДОЧНИКИ / КОРПУС между кабелями в ОБОЛОЧКЕ и совместите отверстия в основании.
  8. Прикрепите БАЗОВЫЙ УЗЕЛ к ОБОЛОЧКЕ винтами 4G x 6 мм.
  9. Присоедините любые ДАТЧИКИ АССИМИЛЯЦИИ, которые вы сделали.

Шаг 11: Дальнейшие действия

Image
Image
Следующие шаги
Следующие шаги
Следующие шаги
Следующие шаги
  1. В браузере укажите
  2. Убедитесь, что брокером является test.mosquitto.org.
  3. Щелкните Подключить.
  4. Введите имя устройства как mqtt_device_name в файле /config/device.json.
  5. Щелкните Добавить устройство.
  6. Щелкните Автоподключение.
  7. Включите ICOS10 (5 В MicroUSB).
  8. Подтвердите через панель инструментов Crouton.

Рекомендуемые: