During last minutes of the Open IoT Challenge I’d like to summarize my work in this project.
An idea of remotely monitoring industrial equipment came form my experience with those systems. There are SCADA systems that tend to be complicated and expensive. Transmitting interested data to end user dashboard or “big data” intelligent system can involve several intermediate systems/databases. With open source IoT technologies it can be made simple.
I’ve managed to successfully establish communication between Eclipse Kura and Modbus device, poll registers periodically and use kura cloud service to send it to MQTT broker. Remote configuration is possible using Kura Configuration UI and remote LwM2M server. However, only simple configuration of UART and fixed set of Modbus Discrete Input and Holding Registers is possible to configure.
I’ve faced several major problems during my development. Most of the time took me to establish reliable communication channel between Eclipse Kura and Modbus Simulator device through RS485 line. Because I’ve used RS485 converters without automatic direction control, software arbitration was needed. Unfortunately current implementation of Modbus in Kura is not sufficient for providing decent handling of synchronization between sending data through UART and controlling data direction over GPIO. I implemented dirty workaround inside Kura Modbus bundle.
Second fight I have had with the Leshan client functionality and it’s dependencies. It took me several hours to successfully connect from bundle to Leshan server. But it was worth it.
I’ve managed to realize :
- Modbus slave simulator – implemented using libmodbus library – http://libmodbus.org/
- Modbus Monitoring application with basic functionality – based on Eclipse Kura framework
However, I haven’t implemented local alarm and data visualization application and full feature remote configuration using LwM2M.
Nevertheless, I’m not going to stop this project and continue with joy of exploring IoT space.
Later this month I will publish source code. It needs a little bit of cleanup 😉