You have chosen to sponsor your bid up to a maximum amount of .
The project will be run on a Raspberry Pi. The project will use the UART GPIO pins of the Raspberry Pi or its USB ports to communicate to external devices using the Modbus RTU RS485 protocol. The software should be a GUI to simplify setup. The GUI should enable the user to specify the Modbus slave ID's of devices to read information from, allow the user to specify the register addresses to read from each slave device, and set up registers on the RPi to store the read values into. It should also allow setup of the modbus communication parameters. The GUI will reside on the Raspberry Pi, but need to be accessible remotely via the internet.
The software should also set up the Raspberry Pi as a web server. Stored values should be read from the RPi using a HTTP command, i.e., http://RPi_IP/readreg.htm,R,fmt Where readreg.htm will be a function stored on the RPi to read the register number (R), using the number format (fmt). Number format can be INT or REAL.
Data that is read from the modbus devices should be stored on the RPi. An additional register should be set up for each value stored so they can be averaged over a 15-minute interval. The 15-minute interval values should then be written into a CSV file, which will be uploaded to a remote server every 24-hours.