Projekt:Thermometer: Unterschied zwischen den Versionen

Aus k4cg.org
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
(3 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
'''Dieses Projekt ist nicht mehr aktiv. Der neue Themperatur Sensor läuft auf [[Host:scotty.intern.k4cg.org|scotty.intern.k4cg.org]]'''
'''Dieses Projekt ist nicht mehr aktiv. Der neue Temperatur Sensor läuft auf [[Projekt:Sensors]]'''
{{Infobox
{{Infobox
| maintainer = [[User:seysmow|seysmow]]
| maintainer = [[User:seysmow|seysmow]]
| machine = [[Host:tempi.intern.k4cg.org|tempi.intern.k4cg.org]]
| jahr = 2015
| jahr = 2015
| url = [https://github.com/k4cg/raspi-thermometer github.com/k4cg/raspi-thermometer]
| url = [https://github.com/k4cg/raspi-thermometer github.com/k4cg/raspi-thermometer]

Aktuelle Version vom 5. Februar 2017, 11:52 Uhr

Dieses Projekt ist nicht mehr aktiv. Der neue Temperatur Sensor läuft auf Projekt:Sensors

Projekt:Thermometer
Betreuer*In seysmow
Jahr 2015
URL github.com/k4cg/raspi-thermometer

Am Raspberry im Raum der K4CG ist auf folgende Weise ein DS18B20 Temperatursensor angeschlossen:

(http://www.reuk.co.uk/DS18B20-Temperature-Sensor-with-Raspberry-Pi.htm)

 Pin 1 -> Ground
 Pin 2 -> GPIO 4
 Pin 3 -> 3,3v

Damit das Thermometer erkannt wird, muss in der Datei /boot/config.txt die Zeile

 dtoverlay=w1-gpio

eingefügt werden.

Auf dem Raspberry läuft folgendes Script welches jede TCP Verbindung auf Port 31337 mit der aktuellen Temperatur beantwortet.

import socket
import SocketServer

def get_temp():
  tempfile = open("/sys/bus/w1/devices/28-0315715dbaff/w1_slave")
  thetext = tempfile.read()
  tempfile.close()
  tempdata = thetext.split("\n")[1].split(" ")[9]
  temperature = float(tempdata[2:])
  temperature = temperature / 1000
  return str(round(temperature,2))

class MyTCPHandler(SocketServer.BaseRequestHandler):
  def handle(self):
    print "connection received"
    self.request.sendall(get_temp())

class V6Server(SocketServer.TCPServer):
  address_family = socket.AF_INET6

if __name__ == "__main__":
  HOST, PORT = "2001:a60:f073:0:76da:38ff:fe00:5e92", 31337

  server = V6Server((HOST, PORT), MyTCPHandler)
  server.serve_forever()