This job is to design, build, and program a simple microcontroller using an open platform (such as Arduino, BeagleBone, Raspberry Pi, or similar). The microcontroller will be used to control a boiler and a pair of water chillers based on outside temperature and return water temperature.
There are three sources of input:
1 - A pre-existing Davis weather station which provides the outside temperature. The micro-controller would need to poll the plain text output of this weather station over the existing http interface (example: ftp://ftp.roanokegov.com/Weather/downld02.txt)
2 - two locally connected temperature sensors (WaterOutTemp & returnTemp)
All inputs should be logged every minute
There are three outputs, all of which are simple 6 volt DC lines
1 - One line controlling the boiler
2 - Two lines controlling two separate water chillers
The Micro-controller would need to run a simple control program. Given two user defined set point temperatures (SetPoint1 & SetPoint2) and three other parameters X, Y, and Z, the program would do the following:
In Winter Mode:
If the outside temperature is below SetPoint1 by X degrees and the returnTemp is below SetPoint2 by Y degrees, activate the boiler
In Summer Mode:
if the outside temperature is above SetPoint1 by X degrees and the returnTemp is above SetPoint 2 by Y degrees, turn on compressor1
if the outside temperature is above SetPoint1 by X degrees and the returnTemp is above SetPoint 2 by Z degrees, turn on compressor2
The micro controller needs to have a simple user interface accessible over http. The interface should allow the user to see the current input status, the status of all output lines, and a log of inputs and control actions. Manual override switches should also be provider for turning the various output lines on and off.
It should also be possible to reboot the controller and update the controller code remotely.
- This project is for a single use case, so only one microcontroller needs to be built
- The developer will need to select the microcontroller, case, temperature sensors, and all necessary interfaces needed to complete the project
- The developer may choose the language in which to write the control program, however free, open source languages are preferred
- The developer may purchase the microcontroller hardware and perform the work at their location. Alternatively, the developer may provide the specification for the hardware and I can purchase and assemble the micro-controller such that the developer can work on the device remotely. Thus overseas candidates do not necessarily have to arrange for shipping of the micro-controller.
- The work needs to be completed by August 15th.