Close

Log No. 2

A project log for Raspberry Pi Heating System

A heating system based on the Raspberry pi to control relays and valves.

Colin ConwayColin Conway 04/25/2016 at 13:290 Comments

Added a few updates and bug fixes for various issues. I've put in an oil sensor node for a horizontal cylinder shaped Kerosene tank. At the moment I've only included the ASK radio method of data transmission using 433mhz modules, but I've an ESP8266-07 on the way (the one with the external antenna), so hopefully that will be able to reach the wifi router and send the data via TCP (which should make it much more reliable).

One of the main improvements is adding a separate thread for screen control, which gets rid of the bug that prevented any changes while the screen was in Timed mode. I've also added headless modes so the heating system can be controlled by HTML only with no need for a touchscreen at all (which I still have to test properly).

I've added an extra OK box in the Timed screen that's easier to click and set up the weather feeds as individual try and except methods to pull the data, so if one piece of information isn't available the rest can still be displayed. I've also included a python script to re calibrate the touchscreen if necessary.

To the html I've added readouts for the oil sensor and fixed a bug when saving the times via HTML as the json was not reloaded in the running thread, meaning that the user had to click on the Timed button on the screen or reboot before it was reloaded.

Sources of the code has been added along with a list of the libraries for the arduino sketches that are necessary for that part of the system and a licence.txt file.

I've added a couple of other bug fixes and performance improvements and cleaned up the code a little. I'm aware it's still a little messy (especially where the HTML is concerned) but the whole system is a work in progress! When I'm happy with it and I have an enclosure for the devices I'll install it at home (finally!) and maybe clean the code up and comment some more so it's a little clearer.

One thing to note I will still have to modify the screen display so that the buttons and display are variable based on the width and height of the screen (a percentage size of the screen maybe?). I've already added this for the Timed button display, will still have to do it for the main screen display - next version perhaps. Lots done, lots more to do.

Discussions