PZEM-016 по MQTT

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

Аватара пользователя
woow
Сообщения: 821
Зарегистрирован: Пн июл 04, 2016 8:46 am
Откуда: Mazeikiai

PZEM-016 по MQTT

Сообщение woow »

Считываю данные пока только в сериал
Нужна помощь как вытащить данные в MQTT. Вот кусок скетча лупа энергоучёта с пзем модулем тут выводятся данные напряжения в сериал монитор.
SPOILERSPOILER_SHOW

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

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 а самого значения нет.
Последний раз редактировалось woow Ср май 13, 2020 12:35 pm, всего редактировалось 1 раз.
Raspberry Pi 3B+
homester
Сообщения: 205
Зарегистрирован: Вт дек 24, 2019 2:09 pm

Re: PZEM-016 по MQTT

Сообщение homester »

Мне кажется надо вот так:
client.publish("Energija/faza_A/voltage", String( PZEMVoltage).c_str());

(зависит от библиотеки клиента)
Raspberry Pi3 B+, v4.44, внешняя з/к
Аватара пользователя
woow
Сообщения: 821
Зарегистрирован: Пн июл 04, 2016 8:46 am
Откуда: Mazeikiai

Re: PZEM-016 по MQTT

Сообщение woow »

Ок, доберусь домой, попробую. И если повезёт буду иметь одну фазу :) , останутся ещё две. Можно к той же шине rs485 все PZEM подключить, но как их потом разобрать, или три отдельные сборки PZEM+ARDUINO+W5100
Raspberry Pi 3B+
Аватара пользователя
woow
Сообщения: 821
Зарегистрирован: Пн июл 04, 2016 8:46 am
Откуда: Mazeikiai

Re: PZEM-016 по MQTT

Сообщение 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
SPOILERSPOILER_SHOW
Изображение
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
Последний раз редактировалось woow Ср май 13, 2020 12:36 pm, всего редактировалось 1 раз.
Raspberry Pi 3B+
Аватара пользователя
woow
Сообщения: 821
Зарегистрирован: Пн июл 04, 2016 8:46 am
Откуда: Mazeikiai

Re: PZEM-016 по MQTT

Сообщение woow »

Как-то криво но одолел, есть нюансы. Через Arduino NANO и W5500. С MQTT, без Wi-Fi по проводам :)
dfhf.jpg
dfhf.jpg (39.58 КБ) 5719 просмотров
Raspberry Pi 3B+
TrDA
Сообщения: 147
Зарегистрирован: Ср сен 27, 2017 9:13 pm
Откуда: MSK

Re: PZEM-016 по MQTT

Сообщение TrDA »

woow писал(а): Вт апр 07, 2020 10:38 pm ... С MQTT, без Wi-Fi по проводам :)
Посмотри ещё тут:
https://tasmota.github.io/docs/PZEM-0XX/#pzem-016
Всем удачи.
Спрашивайте - не стесняйтесь.
crontab
Сообщения: 6
Зарегистрирован: Пт авг 18, 2017 9:25 pm

Re: PZEM-016 по MQTT

Сообщение crontab »

woow писал(а): Вт мар 17, 2020 2:57 pm Считываю данные пока только в сериал
Нужна помощь как вытащить данные в MQTT. Вот кусок скетча лупа энергоучёта с пзем модулем тут выводятся данные напряжения в сериал
В прошивке tasmota есть возможность MQTT
Вложения
tas.jpg
tas.jpg (71.99 КБ) 5614 просмотров
Аватара пользователя
woow
Сообщения: 821
Зарегистрирован: Пн июл 04, 2016 8:46 am
Откуда: Mazeikiai

Re: PZEM-016 по MQTT

Сообщение woow »

Это WiFi такие решения уже давно есть.
Raspberry Pi 3B+
TrDA
Сообщения: 147
Зарегистрирован: Ср сен 27, 2017 9:13 pm
Откуда: MSK

Re: PZEM-016 по MQTT

Сообщение TrDA »

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

Как вариант вот ещё одно решение:
https://wifi-iot.com/p/wiki/210/
Всем удачи.
Спрашивайте - не стесняйтесь.
Аватара пользователя
woow
Сообщения: 821
Зарегистрирован: Пн июл 04, 2016 8:46 am
Откуда: Mazeikiai

Re: PZEM-016 по MQTT

Сообщение woow »

Я бы сделал вообще на RS485- USB но увы не кто не помог а сам не смог. Когда проводом не достать WiFi это выход, а так ни какого преимущества, по мне так надёжнее
Последний раз редактировалось woow Ср май 13, 2020 12:50 pm, всего редактировалось 3 раза.
Raspberry Pi 3B+
Ответить