Совместим ли Pymodbus с MicroPython?

Я начинаю проект IoT и решил использовать плату NodeMCU. Проект состоит из удаленного мониторинга электрических сетей, поэтому он состоит из модуля, который берет много данных с анализатора электрической сети, а затем отправляет их на удаленный сервер через Интернет. Я решил использовать NodeMCU, потому что в нем уже реализован интерфейс WiFi и он очень дешевый. Однако я понял, что у меня будут проблемы со связью с анализатором энергосистемы, потому что он имеет интерфейс RS485 и реализует протокол Modbus. С интерфейсом RS485 проблем нет, потому что я собираюсь использовать адаптер для UART, но мне не удалось найти библиотеку Modbus для MicroPython. Итак, вопрос в том, совместим ли Pymodbus с MicroPython? А также, совместим ли он с платой NodeMCU?


person MauroDiamantino    schedule 23.07.2020    source источник


Ответы (1)


NodeMCU на базе ESP8266 очень ограничен в ресурсах, ~ 64 КБ ОЗУ, из которых только микропитон занимает около 30 КБ при загрузке. Pymodbus довольно большой, даже если он работает синхронно, ему все еще нужен pyserial, который, похоже, не портирован на micropython. см. https://forum.micropython.org/viewtopic.php?t=6534 .В принципе, я не думаю, что какое-то количество взломов и заморозок в прошивке сработает.

В настоящее время я читаю данные Modbus через RS485 с устройства Epsolar, используя ESP8266. Я использую micropython-modbus

https://github.com/techbase123/micropython-modbus

(адаптировано для ESP32 из pycom-modbus), который я дополнительно взломал для использования ESP8266, в основном путем удаления ненужных аргументов из метода init uModBusSerial вместе с последующими ссылками на них и изменением нескольких импортирует в свои эквиваленты MICROpython. Он отлично читает значения, но для меня запись работает только для некоторых значений. В качестве альтернативы можно попробовать плату на основе ESP32 с ~ 500 КБ ОЗУ (и кучей других функций) с pymodbus и либо портировать pyserial на micropython, либо следовать советам по чтению через UART в первой ссылке.

https://docs.micropython.org/en/latest/esp32/general.html

person Sean C    schedule 28.07.2020