När man har en dator till akvariet så kliar det lite i fingrarna, det finns ju mer att göra än att styra ljuset! Först ut blev en enkel sak, att mäta vattentemperaturen i karet. Jag införskaffade en DS18B20 som är en vanlig sensor med 1-wire-gränssnitt. Med hjälp av instruktionerna på Computer Laboratory var det enkelt att löda ihop den med ett pull-up-motstånd och koppla in den på min Pi.
Jag fick i och för sig flytta på styrningen av ett av reläerna och ändra lite i koden till ljusstyrningen men det var ett mindre bekymmer. Då var det lite jobbigare att den inte identifierades som den skulle… Efter ett tag hittade jag lösningen, version 3.18 av kerneln ändrade hanteringen av 1-wire och man är tvungen att lägga till ett par rader i /boot/config.txt:
# 1-wire settings dtoverlay=w1-gpio,gpiopin=4
Efter omstart gick det bra att söka upp sensorn med två modprobe-kommandon men de vill inte skriva in varje gång utan istället la jag in det permanent i /etc/modules:
w1-gpio w1-therm
För att kunna se temperaturen enkelt och på sikt presentera den på min spegel installerade jag Apache på min Pi med
apt-get install apache2
Sedan gick det enkelt att hacka ihop ett litet Python-skript som skriver aktuell temperatur varje minut till Apaches standardfil:
#!/usr/bin/python import time while True: tfile = open("/sys/bus/w1/devices/28-0000065bd235/w1_slave", 'r') text = tfile.read() tfile.close() secondline = text.split("\n")[1] temperaturedata = secondline.split(" ")[9] temperature = float(temperaturedata[2:]) temperature = temperature / 1000 wfile = open("/var/www/index.html", 'w') text = wfile.write(str(temperature)) wfile.close() time.sleep(60)
Nu ska det bara kompletteras med en JSON-variant och integreras i spegeln också men det får bli en annan dag.