Auslesen/Visualisieren von Sensoren

  • Hallo Liebes Forum,
    kurz zu mir:
    Baujahr 1971, Elektronikbegeistert, Ehrgeizig, Autodidaktisch veranlagt, Lernfähig.

    Folgendes Projekt liegt vor mir:
    Auslesen und Visualisieren von Signalen in unserem Christlichem Gemeindezentrum (Neubau).

    Aktueller Zustand:
    Rohbau, Fenster und Türen werden nächste Woche angeliefert und eingebaut.

    Mein Vorhaben:
    1. Alle Zustände (Auf/Zu) der Fenster/Aussentüren werden mit Hilfe von Reedkontakten ausgelesen und auf einen Server/Website hochgeladen. Zugriff über webinterface u.o. APP, bzw. Smartphone/Tablett.
    An der Haupteingangstür wird zusätzlich ein (Funk-)Endschalter installiert, der den Zustand: Aufgeschlossen/Abgeschlossen abfrägt, installiert.
    2. Raumtemperaturabfrage mit DS18B20
    3. evtl. Abfrage, ob das Licht in den einzelnen Räumen an oder aus ist (<- nice to have, muss nicht)

    Der Hintergrund ist, daß man an einem "Panel" (Floorplan mit LEDs) im Technikraum sehen kann, welche Fenster/Türen noch offen sind (und welche Lichter noch an sind).
    Zusätzlich soll der Fernzugrif über www u.o. Smartphone funktionieren (Zustand Fenster/Türen, Raumtemperaturen, evtl. Lichtzustände).

    Vorhanden sind:
    1x Raspi B 512MB
    30x Reedkontakte (25 benötigt)
    20x Temperatursensoren DS18B20 (10-12 benötigt)
    1x 32-Kanal GPIO-Erweiterung -> von hier

    Was ich noch benötige, ist ein kleiner Schubs in die richtige Programmierrichtung:
    Die Reedkontaktabfrage funktioniert nach dieser Anleitung über Python problemlos mit 70m Kabel.
    Mit was programmier ich die Temperaturabfrage (Buskabel durch jeden Raum - ist das so machbar mit den DS18B20) ?
    Kann ich alles über Python programmieren, oder muß ich hier auf etwas anderes ausweichen ?
    Mit was kann ich die visualisierung umsetzen ?

    Wie gesagt, es soll hier keine Steuerung erfolgen, nur eine Statusabfrage.

    Danke schonmal für eure Antworten,
    Gruß, Matthias

  • Wenn Du die Freiheit hast und wirklich noch Kabel in alle Räume bekommst, dann lege ein 5poliges Buskabel. Du könntest auch die Reedkontakte über 1wire abfragen, dass spart natürlich jede Menge Kabel, wenn Du einfach nur eine Leitung durch alle Räume ziehen musst. DS18B20 ist ne gute Idee, gibt auch gefühlte 1000 Anleitungen dazu. Für die Reedkontakte könnte man den DS2406 nehmen. Und wenn Du die Kabel gelegt hast und das klappt mit dem RasPi nicht kannst Du immer noch auf einen USB-1wire-Adapter für den PC zurückgreifen.

    • Offizieller Beitrag

    Das sollte alles in python laufen. Wenn du Visualisieren willst, musst du die Daten irgendwo speichern. Ich würd ne Datenbank nehmen, ne Textdatei würde z.B. aber auch gehen. Hübsch wirds dann mittels einer der unzähligen Diagramm- Engines die es im Netz gibt. chartjs fällt mir auf anhieb ein.

    Der Unterschied zwischen Genie und Wahnsinn definiert sich im Erfolg.

  • Hey, Danke für eure Antworten.
    Warum soll ich ein 5-adriges Buskabel nehmen? - Ich nehme mal an, wenn ich die Temperatursensoren UND die Reedkontakte drüber laufen lass, oder? Die Reedkontakte sind schon vorhanden, da werde ich also keine anderen kaufen. Dann müsste ja für die Temperatursensoren ein 3-adriges, bzw. bei parasitärer Beschaltung sogar ein 2-adriges Buskabel reichen. Oder liege ich da falsch?

    Zwecks der Datenspeicherung: Das werde ich dann über eine php5-Datenbank machen.

    Gruß, Matthias

  • das bus kabel wäre für den "1-wire bus"... und was oben mit dem DS2406 angedeutet wurde (auch den link dahinter mal anklicken!) war der hinweis, dass über dieses bauteil die reedkontakte dann in den 1-wire bus integriert werden könnten.


  • Warum soll ich ein 5-adriges Buskabel nehmen?

    Da sage ich immer "Haben ist besser als Brauchen". Irgendwann hat man noch ne Idee und benötigt ein oder zwei Adern genau dahin wo schon das minimal verlegte 3 adrige Kabel liegt.


    Die Reedkontakte sind schon vorhanden, da werde ich also keine anderen kaufen.

    Sollst Du nicht! Wie demlak schon bemerkte kann man mit dem DS2406 am 1wire Schaltzustände erfassen und auch auslösen. Ich meinte nur, wenn man sowieso einen 1wire-Bus betreibt muss man nicht mischen.


    Dann müsste ja für die Temperatursensoren ein 3-adriges, bzw. bei parasitärer Beschaltung sogar ein 2-adriges Buskabel reichen. Oder liege ich da falsch?

    Theoretisch liegst Du richtig. Praktisch ist parasitär beim RasPi eher ein Glücksspiel.


    Zwecks der Datenspeicherung: Das werde ich dann über eine php5-Datenbank machen.

    Du meist sicher eine MySQL-Datenbank. Schau auch mal nach SQLite. Eine Textdatei würde es auch machen, da Du die komplette Logik einer Datenbank nicht brauchen wirst.

  • Hallo Jörg,
    zuersmal danke für deine Antwort..


    "Haben ist besser als Brauchen"


    Da muß ich dir zustimmen. Lieber eins mehr, das man nicht braucht, als eine weniger, das man dann braucht. Auch ich habe da schon meine Erfahrungen gesammelt. :wallbash:

    Ich habe mich jetzt mal ein bischen in die funktionsweise der "DS-Kollegen" eingelesen. Jetzt ist mir einiges klar geworden. Mit dem DS2406 kann ich nicht "schalten", sondern "Schaltzustände auslesen". :thumbs1:
    Für meinen Zweck reichen dann aber die DS2401 aus. Die werden ja dann jeweils in Reihe mit dem Reedkontakt geschalten, und geben "ihre Anwesenheit" bekannt, sobald das Fenster geschlossen ist (Schlieser), d.h. auch bei Kabelbruch hätte ich hier die Meldung: Fenster offen.

    Jetzt stellt sich mir nur noch die Frage, ob ich die DS2401 und die DS18B20 in einem Bus betreiben kann. Habe schon gelesen, daß es da Probleme geben soll. - Hat da jemand Erfahrung ?
    Btw. kann ich eigentlich mehrere Busse (1-wire) mit dem Raspi betreiben, sprich für mein Vorhaben einen Bus für das EG und einen Bus für das UG ? - Weil sonst komme ich mit den 150m Länge an meine Grenzen.


    Du meist sicher eine MySQL-Datenbank.


    Ja, korrekt. - SQLite ist installiert. :blush:

    Gruß, Matthias

  • wo hast du was über probleme mit DS2401 und die DS18B20 gelesen? da würd ich gerne mal auch nachlesen. hab davon noch nichts gehört

    Zitat

    sprich für mein Vorhaben einen Bus für das EG und einen Bus für das UG ?


    grundsätzlich ist das möglich, dies alles über einen einzigen bus zu steuern.. aber in der praxis stellt sich das tatsächlich als eine herausforderung heraus..
    ich empfehle zur 1-wire bus topologie mal ein wenig zu recherchieren.. ein mix aus verschiedenentopologien ist nicht empfehlenswert

    man muss auch nich direkt an die GPIOs vom RPi gehen.. es gibt usb-1-wire-master..
    ich weiß allerdings nicht, ob es empfehlenswert ist, davon mehrere zu nutzen, um einer schwierigen bus-topologie-mischung aus dem weg zu gehen... wäre aber vieleicht eine idee

    Einmal editiert, zuletzt von demlak (16. November 2014 um 20:05)


  • wo hast du was über probleme mit DS2401 und die DS18B20 gelesen?

    Sorry, ich find's nicht mehr. Dachte es war bei LOXONE, bin mir aber jetzt gar nicht mehr sicher.

    Die Topologien des 1-wire busses sind mir bekannt -> hier z.b. wäre es dann die zweite Variante (Baumstruktur , kurze Abzweige). Aber mit den 100m komm ich wahrscheinlich nicht hin. Drum die Frage nach einem zweiten 1-wire-Bus.

    Mit "usb-1-wire-master" meinst du den "USB-Adapter" ? - Wenn man da zwei anschliessen könnte, würds wohl funktionieren.
    Vielleicht meldet sich ja noch jemand zu dem Thema, der das schon mal getestet hat.

    Danke erstmal.

    Gruß, Matthias

  • Hallo Maddes,

    den Vorschlag raspiprojekt's, wennmöglich noch weitere "Adern" zu verlegen, kann ich voll und ganz unterstützen! Ich würde sogar noch weitergehen und Netzwerk-Duplexkabel einziehen, anstelle irgendeiner mehradrigen irgendwas-Leitung. Beim Netzwerkkabel handelt es sich i.d.R. um mehrfach geschirmtes Kabel. Das ist nicht nur vorteilhaft für echten Netzwerkbetrieb sondern auch für jedwede andere Art der Signalübertragung - egal ob 1wire, digital, analog... Je nachdem, wo Kabel so lang laufen treffen Sie auch 50Hz Brummen, von Phasenanschnitten herrührenden Frequenzgemischen und dergleichen. Da ist man froh, diese Probleme per Schirmung in Hardware gelöst zu haben.
    Ich hatte das bei mir auch gemacht und mißbrauche nun einige Adern, um die Stromversorgung meiner Feuermelder darüber zu realisieren und die Anwesenheitsschalter in Bad und Dusche (Stichpunkt Warmwasserzirkulation).

    Ich kenne Deine baulichen Gegebenheiten ja nicht - aber mit einem Duplexkabel könnte man notfalls auch in der Gebäudemitte eine Raspi positionieren (der dann selbst im Netzwerk hängt), falls die Wege zu den Sensor-Endpunkten so lang sind, wie bei Dir. Damit ergäbe sich vielleicht eine Halbierung der Weglänge?! Nur so eine Idee...

    Schöne Grüße

    schnasseldag

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!