Projekt:Thermometer: Unterschied zwischen den Versionen

Aus k4cg.org
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
(8 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
Am Raspberry im Raum der K4CG ist auf folgende weise ein DS18B20 Temperatur Sensor angeschlossen:
'''Dieses Projekt ist nicht mehr aktiv. Der neue Temperatur Sensor läuft auf [[Projekt:Sensors]]'''
{{Infobox
| maintainer = [[User:seysmow|seysmow]]
| jahr = 2015
| url = [https://github.com/k4cg/raspi-thermometer 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)
(http://www.reuk.co.uk/DS18B20-Temperature-Sensor-with-Raspberry-Pi.htm)
Zeile 13: Zeile 20:
Auf dem Raspberry läuft folgendes Script welches jede TCP Verbindung auf Port 31337 mit der aktuellen Temperatur beantwortet.
Auf dem Raspberry läuft folgendes Script welches jede TCP Verbindung auf Port 31337 mit der aktuellen Temperatur beantwortet.


<nowiki>
<nowiki>
import socket
import socket
import SocketServer
import SocketServer

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()