Оглавление:

Инвертор Omnik Off It's Cloud и на моем MQTT: 3 шага (с изображениями)
Инвертор Omnik Off It's Cloud и на моем MQTT: 3 шага (с изображениями)

Видео: Инвертор Omnik Off It's Cloud и на моем MQTT: 3 шага (с изображениями)

Видео: Инвертор Omnik Off It's Cloud и на моем MQTT: 3 шага (с изображениями)
Видео: Тест микроинвертора 120 В переменного тока 2024, Июль
Anonim
Инвертор Omnik Off It's Cloud и на моем MQTT
Инвертор Omnik Off It's Cloud и на моем MQTT
Инвертор Omnik Off It's Cloud и на моем MQTT
Инвертор Omnik Off It's Cloud и на моем MQTT

У меня есть солнечная энергетическая установка, использующая струнный инвертор Omnik. Omnik - китайский производитель фотоэлектрических инверторов, которые производят чрезвычайно эффективные устройства. При желании вы можете установить модуль WiFi, чтобы он «подключился». Я очень доволен устройством, за двумя заметными исключениями.

  1. Он «звонит домой» в облачный сервис, расположенный в Китае, и пока устройство подключено к Интернету, его нельзя отключить. Мне это не нравится.
  2. У инвертора нет достойного документированного API (как и у облачного сервиса). Поскольку домашняя автоматизация и устройства IoT тяготеют к сообщениям MQTT, я хотел, чтобы они отправляли сообщения MQTT.

Для этого проекта, который решает обе проблемы, мы обращаемся к нашему придирчивому, но надежному другу ESP8266. Я использовал Wemos D1, но можно использовать любое воплощение, которое вам нравится. В планах:

  1. Не давайте модулю WiFi инвертора никаких учетных данных для домашней сети Wi-Fi. Это решает проблему 1.
  2. Позвольте Wemos периодически подключаться к точке доступа инвертора для получения нужных нам данных. Для этого мы можем использовать реверсивный не-веб-протокол. Я использовал этот код как отправную точку.
  3. Затем отключитесь, подключитесь к домашней сети и опубликуйте указанные данные как сообщение MQTT.

Наша спецификация материалов предельно проста:

  • Один Wemos D1, который можно приобрести на веб-сайте Wemos или на вашем любимом аукционе;
  • Один блок питания USB с кабелем USB-mini.

Никакой проводки не требуется. Стоимость ниже 10 евро.

Я полагаю, у вас уже есть

  • инвертор Omnik с установленным WiFi-модулем;
  • инфраструктура MQTT (брокер, дашборд);
  • последняя версия Arduino IDE с установленной поддержкой процессора ESP8266.
  • некоторое знакомство с вышеизложенным.

Существует довольно много инструкций по MQTT и использованию Arduino IDE для процессора ESP8266, но не стесняйтесь спрашивать в разделе комментариев.

Шаг 1. Окончательно отключите Omnik от Интернета

Отключить Омник от Интернета навсегда
Отключить Омник от Интернета навсегда

Если, как и я, у вас был инвертор, подключенный к вашей сети Wi-Fi, отключить его на удивление сложно. Любые изменения, которые вы вносите в настройки Wi-Fi, проверяются перед их применением. Вместо того, чтобы прыгать через обруч, например, менять пароль шифрования маршрутизатора и инвертора, а затем снова менять маршрутизатор, я решил применить более чистый подход и начать с нуля.

Подойдите к инвертору и выполните следующие действия:

  • нажимайте кнопку «Вниз», пока не замигает «Установить», затем нажмите «Ввод».
  • Нажимайте кнопку «Вниз», пока не замигает WiFi, затем нажмите «Ввод».
  • Нажмите кнопку «Вверх», чтобы замигало «Да», затем нажмите «Ввод».

Подключите к инвертору

Откройте свой компьютер и найдите сеть Wi-Fi под названием AP_xxxxxxxx, символ x. Подключитесь к нему. В зависимости от операционной системы вам может сначала потребоваться «забыть» эту сеть, если вы уже подключались к ней раньше, поскольку теперь возможно сохраненный пароль WiFi исчез.

Защитите точку доступа инвертора

После подключения откройте браузер, введите 10.10.100.254 и нажмите Enter. Появится всплывающее окно входа в систему. Введите admin в оба поля для входа в систему. НЕ следуйте указаниям мастера и настраивайте точку доступа. Нажмите «Дополнительно» в меню слева, затем в подменю «Беспроводная точка».

Сделайте следующие изменения:

  • Метод шифрования в WPA2PSK
  • Тип шифрования в TKIP
  • Введите пароль WiFi. Запишите пароль, он понадобится вам для подключения к инвертору в ближайшее время.

Нажмите «Сохранить», и модуль Wi-Fi перезапустится. Вы потеряете соединение, так как теперь требуется пароль. Повторно подключитесь и введите пароль Wi-Fi. Опять же, вам может потребоваться сначала заставить ваш компьютер «забыть» сеть AP_xxxxxxxx. Теперь вы должны снова подключиться к инвертору по защищенному каналу Wi-Fi.

Защитите страницы конфигурации инвертора

Откройте браузер, введите 10.10.100.254 и снова нажмите Enter. Появится всплывающее окно входа в систему. Снова введите admin в обоих полях, чтобы войти в систему. Нажмите «Учетная запись» в меню слева. Измените имя пользователя и пароль на две уникальные нетривиальные строки. Вам придется ввести их оба дважды. Запишите их. Нажмите «Сохранить», и модуль Wi-Fi перезапустится. Подождите несколько секунд и перезагрузите страницу. Убедитесь, что теперь вам нужны новое имя пользователя и пароль для открытия страниц конфигурации. Теперь ваш инвертор имеет дополнительный уровень защиты от изменений, внесенных посторонними лицами.

На этом все работы, которые необходимо проделать с инвертором, завершены. Теперь он отключен от Интернета, в достаточной степени защищен, но по-прежнему действует как точка доступа Wi-Fi, которую мы можем использовать для запроса.

Шаг 2. Загрузите и настройте программное обеспечение для Wemos D1

Загрузите и настройте программное обеспечение для Wemos D1
Загрузите и настройте программное обеспечение для Wemos D1

Загрузите программное обеспечение для Wemos. Вы можете найти код здесь. Вам нужно внести несколько изменений, чтобы настроить его для вашей домашней сети и вашего инвертора.

  • homeSsid: имя вашей домашней сети Wi-Fi.
  • homePassword: пароль вашей домашней сети Wi-Fi.
  • omnikSsid: имя вашей сети Omnik WiFi. Должно получиться AP_xxxxxxxxx
  • omnikPassword: пароль вашей сети Omnik WiFi, который вы указали на предыдущем шаге.
  • omnikIP: IP-адрес инвертора. Это всегда {10, 10, 100, 254}
  • omnikCommand: байтовая строка, необходимая для запроса вашего инвертора, см. ниже.
  • mqtt_server: имя хоста вашего брокера MQTT
  • mqtt_port: номер порта TCP, обычно 1883 для небезопасных или 8883 для безопасных (SSL) соединений.
  • mqtt_username и mqtt_password: учетные данные вашего брокера MQTT.
  • mqtt_clientID: введите здесь случайные цифры
  • mqtt_outTopic: тема сообщений MQTT.

Байтовый массив omnikCommand зависит от конкретного инвертора. Я опубликовал небольшой инструмент в виде электронной таблицы Google для вычисления строки. Вам нужно ввести серийный номер (около 10 десятичных цифр) в ячейку B1 и использовать строку, вычисленную в ячейке B4 в вашем эскизе.

Для успешной компиляции кода вам также понадобится библиотека PubSubClient.h. Убедитесь, что выбраны подходящая плата (Wemos D1) и порт, затем загрузите эскиз на плату. Вы можете поместить маленькую доску Wemos в небольшой пластиковый контейнер для защиты и подключить ее к источнику питания USB. Поместите его где-нибудь не слишком далеко от инвертора и вашего WiFi-роутера, и все готово!

Основной цикл в программном обеспечении подключается к инвертору WiFi, затем устанавливает TCP-соединение с ним, считывает данные, отключается, подключается к домашней сети WiFi, затем к брокеру MQTT и публикует отформатированные данные там. Все это подключение и отключение занимает чуть менее 15 секунд. После этого идет задержка в 20 секунд, поэтому данные должны публиковаться примерно каждые 35 секунд.

Шаг 3. Несколько слов о сообщениях, брокере и тестировании

Несколько слов о сообщениях, брокере и тестировании
Несколько слов о сообщениях, брокере и тестировании
Несколько слов о сообщениях, брокере и тестировании
Несколько слов о сообщениях, брокере и тестировании
Несколько слов о сообщениях, брокере и тестировании
Несколько слов о сообщениях, брокере и тестировании

Код выводит немного отладочных данных, поэтому, если что-то не работает, просто снова подключите WeMos к компьютеру, запустите Arduino IDE и нажмите CTRL + SHFT + M, чтобы запустить последовательную консоль. Убедитесь, что скорость установлена на 115200.

Вы можете использовать своего собственного брокера или использовать облачный сервис. Я использую свой собственный Mosquitto, установленный на моем NAS-устройстве Synology. Если вас устраивает облачный сервис, вы можете использовать Adafruit, Amazon AWS или любой другой.

Сообщения представляют собой строки JSON, отформатированные следующим образом:

При загрузке публикуется следующее сообщение:

Это можно использовать для обнаружения неожиданных перезагрузок.

Обычные сообщения выглядят так:

{«acPowerNow»: 580, «acVoltageNow»: 233,8, «acCurrentNow»: 2,5, «dcVoltage»: 410,8, «dcCurrent»: 1,4, «частота»: 49,96, «energyToday»: 12,16, «energyTotal»: 6082,7, » temperatureHeatsink »: 32,5}

Мощность в ваттах, напряжение в вольтах, ток в амперах, частота в герцах, энергия в киловатт-часах и температура в градусах Цельсия.

Я использую mosquitto_sub для проверки сообщений.

mosquitto_sub -h имя хоста -t "Solar / Omnik" -u пользователь -P пароль -p 1883 -v

Результаты см. На снимке экрана. Все сообщения публикуются с установленным флагом сохранения true.

На моем телефоне я использую приложение под названием MQTT Dash, и я добавил снимок экрана и что нужно ввести, чтобы показать этот зеленый диск питания.

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