Страница 1 из 2

PZEM-016 по MQTT

Добавлено: Вт мар 17, 2020 2:57 pm
woow
Считываю данные пока только в сериал
Нужна помощь как вытащить данные в MQTT. Вот кусок скетча лупа энергоучёта с пзем модулем тут выводятся данные напряжения в сериал монитор.
СпойлерПоказать

Код: Выделить всё

void loop() 
{
        currentMillisPZEM = millis();                                                     // время отсчета для запуска программы каждую секунду (по умолчанию)
        if (currentMillisPZEM - startMillisPZEM >= periodPZEM)    // за каждые х секунд запускаем коды ниже 
        {    
          uint8_t result;                                                                             // Объяем переменную "результат" как 8 бит    
          result = node.readInputRegisters(0x0000, 9);         // читаем 9 регистров (информацию), начиная с 0x0000 (информация о напряжении)) 
          if (result == node.ku8MBSuccess)                                        // Если есть ответ 
            {
              uint32_t tempdouble = 0x00000000;                           // Объяем переменную «tempdouble» как 32 бита с начальным значением 0// 
              PZEMVoltage = node.getResponseBuffer(0x0000) / 10.0;     // получаем 16-битное значение для значения напряжения, разделить его на 10 (согласно инструкции)
                                                                                                          // От 0x0000 до 0x0008 - адрес регистра значения измерения
              tempdouble =  (node.getResponseBuffer(0x0002) << 16) + node.getResponseBuffer(0x0001);      // получаем текущее значение. Текущее значение состоит из 2 частей (2 цифры по 16 бит спереди и 2 цифры по 16 бит сзади) и объединяют их в 32-разрядные без знака.

              Serial.print(PZEMVoltage, 1);                                   // Выводим значение напряжения на сериал мониторе с 1 десятичным знаком 
              Serial.print("V   ");              
            } 
Тут написал строку MQTT публикации в МДМ

client.publish ("Energija/faza_A/voltage", (PZEMVoltage, 1));

в результате прилетает только Energija/faza_A/voltage а самого значения нет.

Re: PZEM-016 по MQTT

Добавлено: Вт мар 17, 2020 3:10 pm
homester
Мне кажется надо вот так:
client.publish("Energija/faza_A/voltage", String( PZEMVoltage).c_str());

(зависит от библиотеки клиента)

Re: PZEM-016 по MQTT

Добавлено: Вт мар 17, 2020 5:00 pm
woow
Ок, доберусь домой, попробую. И если повезёт буду иметь одну фазу :) , останутся ещё две. Можно к той же шине rs485 все PZEM подключить, но как их потом разобрать, или три отдельные сборки PZEM+ARDUINO+W5100

Re: PZEM-016 по MQTT

Добавлено: Вт апр 07, 2020 10:37 pm
woow
Начал собирать информацию про этот девайс. Пока не имею преобразователя RS485 на TTL( UART), так не нечем испытывать.
Собрал сюда инфу сколько удалось найти и ознакомится.
Цель такова чтобы вести мониторинг с разных потребителей и передавать через сеть по MQTT протоколу.
Поскольку у этого девайса выход по RS485 к немy можно подсоединять много таких PZEM016 в отличии от популярного PZEM004t.
Передавать в сеть можно как при помощи ардуино, так и ESP32.
Есть вот какие наработки по этому поводу:
1. здесь одиночный вариант, на Arduino UNO+ (RS485 to TTL UART) не включена часть присоединения более одного устройства и передача ведётся только в сериал монитор.
http://solar4living.com/pzem-arduino-modbus.htm
2.На ESP32 + RS485 to TTL есть возможность подключать более одного PZEM но и здесь передача ведётся только в сериал монитор. Надо доклеивать MQtt часть. http://evertdekker.com/?p=1307
СпойлерПоказать
Изображение
https://pikabu.ru/story/monitoring_yene ... o_6314209 делали но не до конца
http://www.desert-home.com/2018/07/pzem ... 765139562 попытки и идеи реализации
http://163.117.157.189/wordpress/?p=271

Re: PZEM-016 по MQTT

Добавлено: Вт апр 07, 2020 10:38 pm
woow
Как-то криво но одолел, есть нюансы. Через Arduino NANO и W5500. С MQTT, без Wi-Fi по проводам :)
dfhf.jpg
dfhf.jpg (39.58 КБ) 5253 просмотра

Re: PZEM-016 по MQTT

Добавлено: Сб апр 11, 2020 10:26 am
TrDA
woow писал(а):
Вт апр 07, 2020 10:38 pm
... С MQTT, без Wi-Fi по проводам :)
Посмотри ещё тут:
https://tasmota.github.io/docs/PZEM-0XX/#pzem-016

Re: PZEM-016 по MQTT

Добавлено: Сб апр 11, 2020 1:59 pm
crontab
woow писал(а):
Вт мар 17, 2020 2:57 pm
Считываю данные пока только в сериал
Нужна помощь как вытащить данные в MQTT. Вот кусок скетча лупа энергоучёта с пзем модулем тут выводятся данные напряжения в сериал
В прошивке tasmota есть возможность MQTT

Re: PZEM-016 по MQTT

Добавлено: Сб апр 11, 2020 4:12 pm
woow
Это WiFi такие решения уже давно есть.

Re: PZEM-016 по MQTT

Добавлено: Вт апр 14, 2020 10:31 am
TrDA
woow писал(а):
Сб апр 11, 2020 4:12 pm
Это WiFi такие решения уже давно есть.
Не совсем понимаю чем вас не устраивает WiFi.

Как вариант вот ещё одно решение:
https://wifi-iot.com/p/wiki/210/

Re: PZEM-016 по MQTT

Добавлено: Вт апр 14, 2020 12:08 pm
woow
Я бы сделал вообще на RS485- USB но увы не кто не помог а сам не смог. Когда проводом не достать WiFi это выход, а так ни какого преимущества, по мне так надёжнее