IskraJS & PZEM-016

Тема в разделе "Iskra JS, Espruino, Йодо", создана пользователем AntonMZ, 26 сен 2018.

  1. AntonMZ

    AntonMZ Нерд

    Добрый день.

    Просьба сильно не пинать по данной теме.
    Никак не могу совладать с IskraJS и PZEM-016 (измеритель).
    В PZEM-016, согласно инструкции, на выходе UART поверх 485 (Physical layer use UART to RS485 communication interface).
    К IskraJS есть RS485 модуль, пробовал через него, не взлетело, данных нет.
    Пробовал цепляться напрямую с PZEM-016 на A0/А1 порты искры, тоже ничего не выводит.
    Подскажите пожалуйста куда копать, а то темный лес какой-то...
     
  2. ИгорьК

    ИгорьК Оракул Модератор

    Ну, насколько помню, там непростой протокол обмена. Сначала надо задать вопрос, чтобы получить ответ.
    А это зря - можете повредить Искру.
     
  3. ИгорьК

    ИгорьК Оракул Модератор

    http://bit.ly/2meXKEh
    Здесь про 004 модель, но думаю, 016- то же, но через rs485.
     
  4. parovoZZ

    parovoZZ Гуру

    это как? И UART и RS-485 - это физические интерфейсы. Одно поверх другого быть не могет.

    А 016 от 004Т только наличием корпуса отличается?
     
  5. parovoZZ

    parovoZZ Гуру

    тады модуль на max485 и вперед с пестней.
     
  6. AntonMZ

    AntonMZ Нерд

    В инструкции написано "Physical layer to use UART to RS485 communication interface.
     
  7. parovoZZ

    parovoZZ Гуру

    И в чем противоречие? UART преобразуется в 485. Так всегда делали и делают. ))) I2C и USART в 485 не преобразовывается.
     
  8. ИгорьК

    ИгорьК Оракул Модератор

    upload_2018-9-26_17-12-47.png

    Что там написано? В кружочке! Это надо же - к ногам Искры присоединять!
     
  9. ИгорьК

    ИгорьК Оракул Модератор

    upload_2018-9-26_17-16-3.png

    А здесь вообще все нарисовано
     
    Mitrandir нравится это.
  10. AntonMZ

    AntonMZ Нерд

    В кружке написано ровно тоже самое что и на картинке.
    На модуле RS485 от Искры тоже самое.
    Соединяю A/B контакты модуля и PZEM.
    Код беру самый простой.

    Код (C++):
    var rs485 = require('@amperka/rs-485').connect({
      dirPin: P3,
    });

    rs485.write("0x0000");
    a = rs485.available();
    console.log(a);
    Модуль RS485 от амперки моргает диодами при отправке запроса (DIR+TX), но в ответ ничего не приходит (не моргает RX). 0x0000 уже заменял разными значениями, ничего не меняется.

    Такие же коды от PZEM в инструкции.
    [​IMG]
     
  11. ИгорьК

    ИгорьК Оракул Модератор

    А протокол там - modbus, если это что-то вам говорит.
    В частности, как я и предполагал: пока не спросишь - не ответит.
     
  12. AntonMZ

    AntonMZ Нерд

    Вопрос только какие параметры все же передавать, те которые я указал на картинке и правильно ли код написан, что сначала делается запрос (write), а потом сразу же запрос ответа (available).
    Просто на PZEM нет никаких индикаторов, не могу понять, работает оно или нет...
     
  13. ИгорьК

    ИгорьК Оракул Модератор

    Не... Не выйдет. Задай модулю вопрос правильно, да еще посчитай crc16 - и будет щастье.
     
  14. ИгорьК

    ИгорьК Оракул Модератор

    MODBUS - секретное слово.
    Если в PZEM-004t был UART и тоже некислая "постановка вопросов", то здесь еще веселее.
    Ищи примеры работы Искры по протоколу MODBUS.
     
  15. ИгорьК

    ИгорьК Оракул Модератор

  16. ИгорьК

    ИгорьК Оракул Модератор

  17. parovoZZ

    parovoZZ Гуру

    Мда... Не по Сеньке шапка...
     
  18. AntonMZ

    AntonMZ Нерд

    Все с чего-то начинают...
     
  19. AntonMZ

    AntonMZ Нерд

  20. ИгорьК

    ИгорьК Оракул Модератор

    С мигания лампочками, а не с протокола MODBUS.
     
    parovoZZ нравится это.