thermistor

command module
v0.0.0-...-d2aa554 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 4, 2019 License: MIT Imports: 16 Imported by: 0

README

This is the code for a fun home electronics project I did with my son.

Two thermistors are embedded in a radiant floor heating system. The thermistors are meant to be used with the thermostat included in the system, but I decided to install a Nest thermostat instead, which can't use these.

We took a Raspberry Pi and an ADS1015 I2C 12-bit analog-to-digital converter and connected the two thermistors to it. We do a little math and report the detected temperatures as a temperature sensor accessory with two services to Apple HomeKit, and expose the values as a Prometheus exporter. The code is in Go, uses Gobot for interfacing with the ADS1015 over the I2C bus and implements the HomeKit Accessory Protocol with HomeControl.

The finished product

Values in the Home app

This code is specific to our implementation and probably not very useful, but can be a decent example of how to use Gobot, HomeControl, Prometheus, the ADS1015 ADC, and calculating temperatures from thermistors in general.

Build

Cross-compile for the Raspberry Pi

$ GOARCH=arm GOOS=linux go build

Then scp it to /usr/local/bin on the Pi.

A systemd unit file (thermistor.service) is included. Copy the unit file to /etc/systemd/system and then run:

$ sudo systemctl daemon-reload
$ sudo systemctl enable thermistor
$ sudo systemctl start thermistor

License

The code is licensed under the MIT license. See the LICENSE file for details.

Documentation

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL