This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
projects:farmrobot:batteriemanagement [2021/03/21 18:51] jonas [Web Interface to view and graph the data] |
projects:farmrobot:batteriemanagement [2021/03/21 19:02] (current) jonas [Modbus Python and Watson-IoT MQTT publish on Raspberry Pi 4B] |
||
---|---|---|---|
Line 104: | Line 104: | ||
===== Modbus Python and Watson-IoT MQTT publish on Raspberry Pi 4B ===== | ===== Modbus Python and Watson-IoT MQTT publish on Raspberry Pi 4B ===== | ||
- | Using FTDI USB adapter which can be interfaced on / | + | Using FTDI USB adapter which can be interfaced on / |
+ | Adding the current user to the " | ||
sudo adduser pi dialout | sudo adduser pi dialout | ||
- | | + | |
+ | Installing prerequisites: | ||
sudo apt install python3 | sudo apt install python3 | ||
wget https:// | wget https:// | ||
sudo python3 get-pip.py | sudo python3 get-pip.py | ||
- | sudo pip install pymodbus | + | sudo pip install pymodbus\\ |
- | \\ | + | |
+ | ModbusSerialClient is the Modbus client that is used to interface the registers on the BMS: | ||
from pymodbus.client.sync import ModbusSerialClient | from pymodbus.client.sync import ModbusSerialClient | ||
- | Using IBM Watson IoT platform | + | === IBM Watson IoT platform |
Creating a new device and gathering credentials: | Creating a new device and gathering credentials: | ||
Line 129: | Line 131: | ||
pip install wiotp-sdk | pip install wiotp-sdk | ||
- | Modbus communication implementation based on: https:// | + | Modbus communication implementation based on: https:// |
+ | === Code: === | ||
<file py pc_bms_modbus_mqtt.py> | <file py pc_bms_modbus_mqtt.py> | ||
import numpy as np | import numpy as np | ||
Line 234: | Line 237: | ||
===== Web Interface to view and graph the data ===== | ===== Web Interface to view and graph the data ===== | ||
+ | An easy way to set up a web interface is to host a node-red instance on a server, for example on a stationary Raspberry Pi 4, which can be accesses via network or can be made accessible with port forwarding from the internet.\\ | ||
+ | |||
Setting up a Raspberry Pi 4B with docker and docker run portainer. | Setting up a Raspberry Pi 4B with docker and docker run portainer. | ||
Create a new Node-Red Stack with a compose file, which creates a node-red web instance on the device on port 1880. | Create a new Node-Red Stack with a compose file, which creates a node-red web instance on the device on port 1880. | ||
Line 260: | Line 265: | ||
The node-red webapp can then be accessed via [[http:// | The node-red webapp can then be accessed via [[http:// | ||
The Node-RED Dashboard module is needed to display the data with node-red\\ | The Node-RED Dashboard module is needed to display the data with node-red\\ | ||
- | To install, click the Menu Button and choose " | + | To install, click the Menu Button and choose " |
Then click on install and install in the pop-up window. Then return to the main view.\\ | Then click on install and install in the pop-up window. Then return to the main view.\\ | ||
+ | {{: | ||