Wednesday 22 November 2017

Reittiere


RRDtool create tutorial und Beispiele quotrrdtool createquot erstellt eine Datenbank. Es liest nicht Ihren Verstand. Bevor Sie RRDtool wissen, was zu erstellen, müssen Sie zunächst bestimmen, was Sie brauchen und wann Sie es brauchen. Dieses Beispiel ist nicht so viel über Schnitt und Paste, es ist, Ihnen beizubringen, wie Sie Ihre Idee in eine funktionierende Einrichtung übersetzen konnte. Werfen Sie einen Blick auf die Zahlen, die Sie RRDtool später geben werden. Was bedeuten diese Zahlen? Wie ändern sie sich? Ein gängiges Beispiel ist ein Zähler, der von einem Netzwerkgerät gehalten wird und die Anzahl der Bytes im oder aus dem Gerät anzeigt. Dieser Zähler wird irgendwann gestartet und nimmt weiter zu. In diesem Fall interessieren Sie sich für den Unterschied, das Delta, zwischen zwei Momenten in der Zeit. Der Unterschied ist die Menge der in diesem Zeitintervall transportierten Bytes. Ein ähnliches, aber weniger oft gesehenes Beispiel wäre der Zähler auf einem Stromzähler. Auch dies ist ein immer größer werdender Zähler. Es resultiert in der Menge von kWh, die in einem Zeitintervall verwendet wird. Doch in diesem Fall sollten Sie erkennen, dass kWh ist nur eine andere Art zu zählen Joules, etwas, das Sie wirklich wissen wollen, später im Prozess. Eine völlig andere Art von Eingang wäre ein Tachometer, das Gerät in einem Auto, das zeigt, wie schnell Sie sich bewegen. Die Zahl, die Sie erhalten, ist bereits eine Rate. Auch wenn Sie es in mph oder in km / h, es ist nur eine Reihe von Metern pro Sekunde, wenn auch in einer anderen Einheit, ähnlich wie kWh vs Joules gegeben. Irgendwann wird RRDtool den eingegebenen Wert in eine Rate umwandeln und diese Raten normalisieren, so dass sie in gut definierte Zeitintervalle passen. Theres nichts, das Sie über dieses tun können, ist es, wie es funktioniert. Siehe Preise, Normalisierung und Konsolidierung für eine ausführlichere Erklärung dieser. Theres kein Problem, wenn Sie quotabusequot RRDtool, mit Daten zu arbeiten, die nicht eine Rate ist, wie Temperatur. Denken Sie daran, dass RRDtool denken, es ist ein Satz, und geben Sie es RRDtool, als ob es bereits eine Rate ist. Das bedeutet Zähler Typ GAUGE. Es gibt viele verschiedene Beispiele zu denken. Wenn Sie ein Beispiel haben, das von allgemeinem Interesse sein wird oder wenn Sie bereit sind, für meine Zeit zu zahlen, schicken Sie es mir, und ich werde es hier ausarbeiten. Die Eingabe ist eine Rate, z. B. M / s oder sollte als Rate, z. B. Temperatur Die Eingabe ist eine ständig wachsende Zahl, z. B. Einen Oktett-Zähler in einem Router. RRDtool sollte den Unterschied zwischen dem letzten Update und dem aktuellen berechnen und dividiere es um die verstrichene Zeit. Dies ist vergleichbar mit COUNTER, mit der Ausnahme, dass die Eingabe abnehmen kann. Dies ist zum Beispiel in einem kWh-Meter nützlich, wenn Sie mehr Sonnenenergie produzieren, als Sie verwenden. In diesem Fall erhalten Sie tatsächlich eine negative Rate. Dies ist zu verwenden, wenn der Zähler jedes Mal zurückgesetzt wird, wenn er gelesen wird, wenn die Leute beginnen, von Null zu zählen, und so weiter. Der Hauptunterschied zwischen ABSOLUTE und GAUGE ist, dass die Eingabe noch nicht eine Rate ist, sollte sie zuerst durch die Zeit geteilt werden, um eine Rate zu erhalten. Der Hauptunterschied zwischen ABSOLUTE und COUNTER besteht darin, dass RRDtool den vorherigen Eingangswert nicht verwenden sollte, um sein Delta zu berechnen. Sobald Sie herausgefunden haben, wie die Eingabe verarbeiten, müssen Sie herausfinden, wie Sie die berechneten Preise speichern möchten. Es gibt mehrere Dinge zu betrachten. Zunächst einmal müssen Sie wissen, wie viel Zeit Sie wollen, um zu sehen. Auch sehr wichtig ist, wie Sie wollen, um in der Lage, dies zu betrachten. Sagen, Sie wollen in der Lage, ein Jahr zurückblicken, müssen Sie noch wissen, ob Sie in der Lage sein, quotzoom inquot oder wenn Sie nur wollen, um das große Bild zu sehen. Mit anderen Worten: Wenn jetzt der 1. März 2009 ist, möchten Sie 2007-03-01 bis 2009-03-01 betrachten oder möchten Sie 2007-03-01 Mitternacht zur nächsten Mitternacht betrachten können. Was Sie hier verstehen müssen, ist Konsolidierung. Sagen Sie, dass Sie auf zwei Jahre Wert von Informationen zu suchen, und dass die verfügbaren Daten in einer Auflösung von 300 Sekunden pro Eimer. Das bedeutet, Sie haben mehr als 200.000 Eimer. Wenn Sie dies in einem Bild von 400 Pixeln breit anzeigen möchten, müssen 500 solcher Buckets in eine Spalte von Pixeln passen. Halten Sie diese 200.000 Eimer ist nicht nur eine Verschwendung von Platz. Wenn RRDtool alle diese Eimer auf dem Diagramm platzieren muss, muss es arbeiten. Abhängig von den Verarbeitungsfunktionen Ihres HTTP-Servers kann dies zu Verzögerungen beim Anzeigen Ihrer Grafiken führen. Sie können RRDtool anweisen, historische Daten konsolidiert zu halten, die für die Anzeige ohne die gerade genannte Verzögerung geeignet sind. Dies erfordert eine gewisse Planung, die ich weiter ausführen werde. Aber was ist, wenn Sie Zoom vergrößern können Kein Problem, können Sie sagen, RRDtool, um auch die Daten in ihrer ursprünglichen Eimer Größe (z. B. die 300 Sekunden). Oder, wenn Sie so wählen, können Sie sagen, RRDtool, um die Daten nur in diesem ursprünglichen Eimer Größe zu halten. Es liegt an dir. Nur wissen, dass es schwierig ist, Ihre Meinung zu ändern, sobald Sie Ihre Datenbank erstellt haben. In vielen Fällen müssen Sie ganz von vorn beginnen, wenn Sie tun. RRDtool verwendet RRAs (RRDtool Archives), um Daten zu speichern. Jede dieser RRAs ist unabhängig von den anderen, können Sie eine, die Daten in einer 300-Sekunden-Auflösung und eine andere speichert, die Daten in einer 86400-Sekunden-Auflösung speichert. Wenn Sie möchten, können Sie jedes dieser Beispiele enthalten die gleiche Menge an Zeit, kein Problem. Es ist nur eine Frage, wie viele Zeilen Sie in jedem RRA generieren. Sagen Sie, dass Sie Bilder erzeugen, bei denen der innere Graphenbereich 360 Pixel breit ist. Es ist in der Regel am besten, wenn Sie Ihre RRD einrichten, so dass einer seiner RRAs die Auflösung auf dem Bildschirm entspricht. Sie können dies tun (in der Gestaltung der Bühne), indem Sie die Größe der einzelnen Eimer, oder Sie können sorgfältig planen Start-und Endzeiten. Wenn Sie eine RRA haben, die Daten in einer 86400-Sekunden-Auflösung speichert, und Sie 360 ​​Tage von Informationen anzeigen, ist dies eine schöne Passform. Anzeige 180 Tage und jeder Tag wird 2 Spalten breit, nicht viel eines Problems sein. Display 720 Tage und RRDtool muss noch 2 Eimer in einem Pixel passen. Betrachten Sie das Betrachten von Netzwerkstatistiken, damit Sie wissen, wie viel Daten transportiert werden, wodurch Sie feststellen können, ob es Zeit ist, Ihre Netzwerkkapazität zu erweitern. Netzwerk-Zähler werden wahrscheinlich immer steigenden Nummern (bis eine Zähler-Wrap auftritt), so dass Teil ist einfach: Verwenden Sie COUNTER. Auch kommen sie oft in Paaren: Inbound und Outbound (aus dem Gerät gesehen). Sie werden das Gerät etwa alle 5 Minuten abfragen, aber Sie geben sich selbst (und Ihre Zeitplan) etwas locker. Allerdings theres eine Grenze, wie viel Durchhang Sie bereit sind zu geben. Wenn Updates sind weiter entfernt als 10 Minuten, etwas schief gelaufen und Sie können nicht auf die Genauigkeit der Netzwerk-Zähler verlassen. Ein Ausfall kann aufgetreten sein, was zu einem Neustart des Geräts führt. Sie wissen, dass das Gerät nicht immer mehr als 100Mbps transportiert, also ist jede Rate höher als das Ergebnis eines unbekannten Fehlers irgendwo an einem unbekannten Ort. Sie wissen nicht, warum es passieren würde (wenn überhaupt), Sie wollen einfach nie, dass es zu zeigen. Sein gerechtes wie ein Sicherheitsnetz. Einer der Zähler Der andere Zähler ist genau der gleiche, mit Ausnahme seines Namens. Geben Sie folgendes an rrdtool create: Angenommen, Sie möchten in der Lage sein, die letzten 2 Jahre, die letzten 2 Monate, die letzten 2 Wochen und die letzten 2 Tage anzuzeigen. Die Datenbank verwendet die Standardschrittweite von 300 Sekunden pro Intervall. Das erste, was ich merke: jedes Mal, wenn quotlastquot erwähnt wird. Dies bedeutet, dass keine zusätzlichen Zeilen vorhanden sein müssen, um das Zoomen in der Vergangenheit zu ermöglichen. Zum Beispiel, theres keine Notwendigkeit, Daten in einer 300-Sekunden-Auflösung für die gesamten zwei Jahre zu halten. Ich merke auch sofort die Verwendung von Jahr, Monat, Woche und Tag. Dies sind keine festen Zeitintervalle. Ein Jahr kann 365 oder 366 Tage sein. Ein Monat kann 28 Tage, 29 Tage, 30 Tage, 31 Tage, es kann sogar eine Stunde weniger oder eine Stunde mehr sein, oder 30 Minuten weniger / mehr, je nachdem, wie Tageslicht sparen für Sie arbeitet. Ebenso ist eine Woche nicht immer 7 Tage und ein Tag ist nicht immer 24 Stunden. Dies ist nicht praktikabel, und für die Zwecke dieses Beispiels ist es auch unnötig. Dies bedeutet, dass ich die Anforderung ändern kann, die letzten 720 Tage, die letzten 60 Tage, die letzten 14 Tage und die letzten 2 Tage alle auf UTC-Zeit basieren (ohne Sommerzeit). Nun ist es Zeit, die Breite jedes Graphen zu bestimmen. Das erste, was zu tun ist, die Menge der Zeit betrachten. Mit einer Schrittgröße von 300 Sekunden entspricht ein Tag 288 Stufen. 720288 207360 Schritte Es ist nicht immer so eine schöne Passform. Entscheiden Sie selbst, was Ihnen gefällt: Sie betrachten mehr (oder weniger) Zeit als ursprünglich geplant oder haben unterschiedliche Bildbreiten. Was immer Sie tun, stellen Sie sicher, dass die Zahlen ganze Zahlen sind. Nicht, weil RRDtool es braucht (es doesnt), sondern weil es das Leben leichter macht. Die Zahlen 360, 30, 7 und 1 sind die Anzahl der Schritte, die bei der Erstellung jedes RRA zu füllen sind. Die Zahl 576 ist die Anzahl der zu füllenden Zeilen. Damit bleiben zwei weitere Parameter: CF und xff, die ich kurz erkläre. Geben Sie diesem RRDtool: RRA: MIN: 0: 360: 576 RRA: MIN: 0: 30: 576 RRA: MIN: 0: 7: 576 RRA: DURCHSCHNITT: 0: 360: 576 RRA: DURCHSCHNITT: 0: 30: 576 RRA: DURCHSCHNITT: 0: 7: 576 RRA: DURCHSCHNITT: 0: 1: 576 RRA: MAX: 0: 360: 576 RRA: MAX: 0: 30: 576 RRA: MAX: 0: 7: 576 MIN, DURCHSCHNITT UND MAX Bestimmen Sie, wie RRDtool mehrere Raten in einem konsolidieren soll. Mehr zu diesem in Preise, Normalisierung und Konsolidierung, wenn youre interessiert. Beachten Sie, ich habe 3 MIN und MAX RRAs und 4 DURCHSCHNITT Dies liegt daran, dass die minimale, durchschnittliche und maximale von nur einer Rate immer gleich sein wird. Ich brauche nur einen von ihnen, nicht alle drei. XFF, der X-Files Factor, bekam seinen Namen, weil er unwissenschaftlich ist, wenn man ihn auf eine beliebige andere Zahl als Null setzen muss. Es hat mit unbekannten Daten zu tun und wie dies verarbeitet wird. Was ist der Durchschnitt der Eine und einzige wahre Antwort ist: quotunknownquot. Dennoch, viele Leute wollen Antwort quot1quot. XFF bestimmt, wie viel der ursprünglichen Daten unbekannt sein kann und noch 1 (oder jede andere Rate) produzieren. Ein gemeinsamer Wert ist 0,5, was bedeutet, Ergebnisse in 1, aber nicht. Für dieses Beispiel wäre 0,5 geeignet, aber wenn Sie die Daten für die Abrechnung Zwecke wäre es nicht. Betrachten Sie Durchschnitt. Mit XFF auf 0,5 gesetzt, wäre dies im Durchschnitt 100. Wahrscheinlichkeiten sind die Unbekannten sind das Resultat eines Verbindungsproblems, in welchem ​​Fall es unfair sein würde, Ihren Kunden für eine Rate von 100 während dieser unbekannten Abstände zu rechnen. Für die Kapazitätsplanung auf der anderen Seite, würden Sie wahrscheinlich eine Rate von 100 gesehen, wenn kein Ausfall aufgetreten wäre. Dann wieder, möchten Sie vielleicht wissen, gab es einen Ausfall, auch wenn man auf die Grafik zeigt 2 Jahre. Quotrrdtool createquot wird auch eine Startzeit akzeptieren. Dies ist nur wichtig, wenn Sie historische Daten haben, die Sie importieren möchten. Wenn Sie dies nicht tun, nur überspringen Sie den Parameter und RRDtool wird das Richtige zu tun. Wenn Sie historische Daten importieren möchten, setzen Sie diese auf etwas vor den ältesten Daten, die Sie importieren möchten. Weitere Parameter sind die Schrittweite (standardmäßig 300 Sekunden) und der Name der zu erstellenden Datei. Das gesamte Beispiel ist nun beendet. Dies ist der Befehl für RRDtool für diesen speziellen Beispielfall: rrdtool create database. rrd DS: ds0: COUNTER: 600: 0: 12500000 DS: ds1: COUNTER: 600: 0: 12500000 RRA: MIN: 0: 360: 57: 60: 576 RRA: DURCHSCHNITT: 0: 30: 576 RRA: DURCHSCHNITT: 0: 7: 576 RRA: DURCHSCHNITT: 0: 0: 1: 576 RRA: MAX: 0: 360: 576 RRA: MAX: 0: 30: 576 RRA: MAX: 0: 7: 576 Ich mag meine Skripte etwas anders schreiben. Ich benutze eine Unix-Shell, und schreiben Sie mein Skript wie folgt: Das macht keinen Unterschied, wenn die Shell rrdtool Feuer, bekommt es zu sehen, den gleichen Befehl (vielleicht mit einigen mehr Whitespace, ich weiß nicht einmal). Gefällt Ihnen diese Information? Weiterempfehlen Dont you Tell me Diese Seite wurde erstellt von Alex van den Bogaerdt, einem unabhängigen IT-Berater. Wenn Sie Feedback geben möchten oder wenn Sie mich einstellen möchten, schauen Sie bitte unter. rrdgraphexamples Verschieben Sie die Daten um eine Woche nach vorne (604800 Sekunden) Wenn die spezialisierte Funktion RRAs für die anomale Verhaltensdetektion existieren, können sie dazu verwendet werden, das Diagramm einer Zeit zu erzeugen Serie mit Vertrauensbändern und Ausfällen. Dieses Beispiel erzeugt einen Graphen der Datenreihe in Blau (LINE2 mit der virtuellen Scaledobs-Datenquelle), Vertrauensschranken in Rot (skalierte und skalierte untere virtuelle Datenquellen) und potentielle Fehler (dh ein anomales aberrantes Verhalten) Die Fail-Datenquelle). Die Rohdaten stammen aus einem AVERAGE RRA. Die feinste Auflösung der beobachteten Zeitreihen (ein konsolidierter Datenpunkt pro Primärdatenpunkt). Die vorhergesagten (oder geglätteten) Werte werden im HWPREDICT RRA gespeichert. Die prognostizierten Abweichungen (think standard deviation) werden im DEVPREDICT RRA gespeichert. Schließlich enthält die FAILURES RRA Indikatoren, wobei 1 für einen möglichen Fehler steht. Alle Daten werden durch Multiplikation mit 8 zu Bits (anstelle von Octets) umskaliert. Die Vertrauensgrenzen werden durch einen Versatz von 2 Abweichungen sowohl oberhalb als auch unterhalb der vorhergesagten Werte (die CDEFs oben und unten) berechnet. Vertikale Linien, die potenzielle Ausfälle anzeigen, werden über das TICK-Graphenelement aufgezeichnet, das Nicht-Nullwerte in einem RRA in Tick-Markierungen umwandelt. Hier bedeutet ein Achsenbruch-Argument von 1.0, dass die Tick-Markierungen die gesamte y-Achse überspannen und somit zu vertikalen Linien auf dem Graphen werden. Die Wahl von 2 Abweichungen (ein Skalierungsfaktor) stimmt mit dem von der FAILURES RRA intern verwendeten Standard überein. Wenn der interne Wert geändert wird (siehe rrdtune), sollte dieser Graphikbefehl konsistent sein. Der Befehl rrdtool graph ist entworfen, um Daten mit einer bestimmten zeitlichen Auflösung zu zeichnen, ungeachtet der tatsächlichen Auflösung der Daten in der RRD-Datei. Dies kann ein Problem für die spezialisierten Konsolidierungsfunktionen darstellen, die eine Eins-zu-eins-Abbildung zwischen Primärdatenpunkten und konsolidierten Datenpunkten beibehalten. Wenn ein Graph darauf besteht, den Inhalt dieser RRAs auf einer gröberen Zeitskala anzusehen, versucht der Graph-Befehl etwas Intelligentes zu tun, aber die Vertrauensbänder und Fehler haben nicht mehr dieselbe Bedeutung und können irreführend sein. Rrdgraph gibt einen Überblick über die Funktionsweise von rrdtool. Rrdgraphdata beschreibt DEF, CDEF und VDEF im Detail. Rrdgraphrpn beschreibt die RPN-Sprache, die in den xDEF-Anweisungen verwendet wird. Die rrdgraphgraph-Seite beschreibt alle Graphen - und Druckfunktionen. Programm von Tobias Oetiker 60tobioetiker. ch62 Diese Bedienungsanleitung von Alex van den Bogaerdt 60alexvandenbogaerdt. nl62 mit Korrekturen und / oder Ergänzungen von mehreren PersonenRaspberry Pi 1-Wire Temperatursensor Projekthintergrund Dieses Projekt wurde inspiriert, als einige Rohre im Winter in den Crawlspace gefroren sind Wir waren nicht da. Die Idee ist, einige 1-Draht-Temperatursensoren aufzunehmen und sie mit einem Himbeer-Pi (RPi) zu treiben, die Messwerte zu protokollieren, eine Spurverfolgung durchzuführen und eventuell eine Glühlampe im Crawlspace auszulösen, wenn der gleitende Mittelwert der Temperatur ansteigt Unterhalb einer Schwelle, um es ein wenig aufzuheizen, sicher. Stuff Ich landete mit: Himbeer-Pi (RPi Model-B), ein kleines Acryl-Etui für die RPi, eine SD-Karte zum Booten der RPi (ich benutzte 8Gb, weil sie herumliegen unbenutzt), 26-Pin-Flachbandkabel, Zwei 26 Ein RJ45 auf D-Sub-Adapter ohne D-Sub-Teil, Einige Cat5e Twisted-Pair-Kabel, RJ45 Crimp auf Enden für die Twisted-Pair-Kabel, Cat5e Twisted-Pair-Splitter. Einige Surface Mount RJ45 Buchsen, einige Twisted Pair Keystone Punchdown-Buchsen, Ein paar DS18S20 1-Draht-Thermometer, (optional) DS18B20 wasserdichte 1-Draht-Thermometer (n). (Optional) Realtek RTL8188CUS usb wifi adapter (Edimax EW7811) Ein Leistungsschalter Schwanz, Schrumpfschlauch, Löten. 10k Fußansicht Ein Himbeer-Pi ist ein Kreditkarten-großes Board, das Linux betreibt und hat einige nützliche Header für die Herstellung von Sachen. Mein Plan mit diesem Projekt war, die GPIO-Header der RPi zu verwenden, um die DS18S20s in regelmäßigen Abständen zu lesen und dann die Messwerte in irgendeine Art von Zeitreihen-Datenbank zu loggen (nach der Recherche habe ich das Rrdool und eine Python-Schnittstelle dazu verwendet). Ein Cronjob fragt die Temperaturwerte jede Minute ab. Ein anderer Cronjob berechnet einen 10-minütigen gleitenden Durchschnitt und kann die Glühlampen auslösen. Doch ein dritter Cronjob wacht stundenweise auf und fährt einige Grafiken auf einer Webseite, die als Display verwendet werden. Klicken Sie auf die meisten Bilder unten für größere Ansichten. Die Auswahl der DS18S20s Ich habe einige der Forschung über die 1-Draht-Thermometer und setzte sich auf dem DS18S20 vor allem wegen der Temperatur und Genauigkeit. Sie sind relativ teuer, leider. Die, die ich bekam, lief etwa 4 jeder () (Edit: sie können viel weniger teuer in diesen Tagen, ich sah 10 für 6 auf amazon vor kurzem). Sie können daisy-chained werden und sollen über Twisted Pair laufen. Eine weitere Möglichkeit ist, die wasserdichte 1-Draht-Thermometer (Link oben), die bereits umhüllt in einem wasserdichten Metallgehäuse mit einem 3ft schwarze Schnur läuft in sie zu kaufen. Dieses Ding war 5 von Amazonas, als ich es kaufte und es funktioniert auf dem gleichen 1-Draht-Netzwerk wie die anderen, keine Probleme. Es hat drei Drähte: redpower, blackground, whitedata. Einrichten der RPI Im nicht gehen, gehen in eine Tonne Detail hier, weil Sie alle diese Informationen anderswo online finden können. Das RPi will von einer SD-Karte starten. Es gibt mehrere Bilder können Sie dd auf die SD-Karte, wählte ich wheezy, die native Unterstützung für 1-Draht-Bus aus dem GPIO-Header haben. Einmal startete ich die RPi, stellte ich sicher, sshd ausgeführt wurde, hakte ein Ethernet-Kabel und tat den Rest des Setups und Codierung aus einer bequemeren Konsole. RPi GPIO - Proto Board - Twisted Pair Bridge Der RPi verfügt über einen 26-Pin Header mit dem Namen GPIO (General Purpose I / O). Ich habe gelesen, dass diese Pins sind grundsätzlich Haken direkt an den Mikroprozessor so wirklich vorsichtig sein, um sie durch einen Unfall. Seine leicht zu tun, wenn Sie baumelnde Drähte und Ruine könnte Ihre RPi. Eine Alternative zur Verwendung des GPIO-Headers ist, dass Sie einen kleinen USB-Brücken-Dongle erhalten können, der Ihr 1-Draht-Netzwerk in den USB-Port des RPi bringt. Ich beschloss, das GPIO-Material zu verwenden, weil ich so tapfer bin. Heres die GPIO-Pinbelegung: Ich habe ein 26-poliges Flachbandkabel mit einem kleinen 26-poligen Stecker gecrimpt, um den GPIO-Header aufzunehmen. Das Anbringen des Verbinders wurde in meinem Holzbearbeitungsschraubstock sorgfältig durchgeführt. Dann klemmte ich einige Drähte in das andere Verbindungsstückende und hakte es alle zu einem Brot, um zu sehen, wenn ich einen DS18S20 sehen / lesen könnte. Alles hat funktioniert und die RPi hatten einen Eintrag auf / sys / bus / w1 / Geräte für das Thermometer, die ich als Datei lesen konnte (via cat oder ein Python-Skript). Heres, was es aussieht, wenn seine Arbeit (Ihre haben eine andere Seriennummer, sie sind alle einzigartig): Das genaue Format dieser Daten ist in dem oben genannten Datenblatt beschrieben. Die anfänglichen 0x2a und 0x00 sind die Temperatur-Nutzlast als Zeichen erweiterte twos Kompliment. Zum Glück für Sie und mich, jemand bereits konvertiert es auf eine Temperatur im Fahrer. Das ist das t Geschäft n die zweite Linie. Beachten Sie, dass theres eine implizite Dezimalpunkt so die oben genannten bedeutet 20.937176C. Denken Sie daran, um 1000 zu teilen. Es funktioniert auch beachten Sie die crcd1 YES Bit. Wenn das mit NEIN endet, zeigt der CRC (zyklische Redundanzprüfung, d. h. Fehlererfassungsbits) einen Datenfehler an, und Sie sollten das Lesen verwerfen und erneut versuchen. Das passiert. Ich hatte einige Proto-Boards, die hier liegen, also lötete ich einige Überschriften, die die Bandkabelverbindungsstücke passen. Weder die Proto-Board noch die Header war groß genug, um alle 26 Stifte aus dem Kabel, aber das ist ok, weil alles, was Sie auf dem Twisted-Pair-Netzwerk war eine Macht, Masse und Signal. Ich ursprünglich verwendet Strom aus GPIO Pin1 (3v), sondern später auf GPIO pin2 (5v) geschaltet, weil das Dokument über zuverlässige 1-Draht-Netzwerken empfohlen 5V und das Datenblatt für die DS18S20 sagt, es kann bis zu 5V behandeln. Für Masse verwendete ich GPIO Pin9 und für Signal verwendete ich GPIO pin7 (GPIO 4 / GPCLK0). Die DS18S20s verfügen über einen parasitären Leistungsmodus, wo Sie sie mit nur zwei Drähten ausführen können: Masse und Daten. Die Daten haben einen Pullup-Widerstand zur Stromversorgung und liefert genügend Strom für den Chip, um es auszuführen. Wenn Sie dies tun, müssen Sie den unbenutzten Stromanschluss des DS18S20 erden. Ich habe nicht viel Glück mit diesem, though. Die DS18S20s berichten zurück schlechte Temperaturen Weise häufiger, wenn so verdrahtet. Diese zuverlässige 1-Draht-Netzwerk-doc sagt auch, dass für große Netzwerke sollten Sie drei Pins (Run Power). Also habe ich nicht Chaos mit herauszufinden, warum parasitären Power-Modus nicht sehr viel. Ich nahm einen D-Sub-RJ45-Adapter und entfernte den D-Sub-Teil, so dass ich hatte nur ein acht Stifte hängen von der Rückseite. Dann schneide ich ein paar verdrillte Kabel, verpresst ein Ende, steckte es in das D-Sub-Ding und benutzte ein Multimeter, um herauszufinden, welche Farben im Twisted-Pair-Kabel den Farben auf dem D-sub-Ding entsprachen. Auf meinem Setup sah es so aus: cat5e Twisted Pair D-Sub-Steckverbinder thingy Sie sollten Ihre eigenen überprüfen, wenn Sie sich entscheiden, es auf diese Weise tun, denn, Im sicher, dass dies nur auf die Art, wie ich Crimp Netzwerkkabel (übrigens, Die gleiche Reihenfolge wie die cat5e Twisted Pair Farben oben). Basierend auf einem Diagramm auf Hobby-Boards über 1-Draht-Netzwerke, entschied ich, meine Twisted-Pair-grüne Draht für 5V Macht, mein grün / weißes Kabel für Masse, mein blaues Kabel für Daten und meine blau / weißen Draht für Masse verwenden. Ich habe auch orange auf GPIO1 und braun auf GPIO17 mit ihren Paaren (orange / weiß und braun / weiß) sowohl auf Masse auch. Ich tat dies, so dass ich weit entfernte Lichtschalter über einen Power Switch Schwanz oder Solid State Relais später steuern konnte. Das Verdrehen eines Signals oder eines Stromkabels mit Erde hilft, Interferenzen auf der Leitung zu entfernen und wird dazu beitragen, die Länge des Netzwerks, das Sie ausführen können, zu erhöhen. Ich verwendete einige Heißkleber und eine Reißverschlussbindung, um das D-sub Ding fest an das Proto Board zu befestigen und die rechten Stifte an den rechten Flecken auf der Platine zu löten, um die oben beschriebenen Verbindungen zu implementieren. Ich habe einen 2k Ohm Widerstand zwischen Strom und Signal und testete es mit einem langen Ethernet-Kabel mit einem Ende abgeschnitten und klemmte in ein Steckbrett, um zu sehen, ob ich noch lesen konnte das Thermometer. Heres die letzte Schaltung und wie es aussieht: Wie Sie sehen können, landete ich mit einem 2k Ohm Widerstand statt der empfohlenen 4,7k Ohm Widerstand, wieder auf Anraten des zuverlässigen 1-Draht-Netzwerk-doc und einige Threads hatte ich online gelesen Über Fern-1-Draht-Netzwerke. Dieses Dokument definiert das Netzwerkgewicht als Gesamtbelastung (Draht, Geräte) im Netzwerk und Netzradius als Abstand zwischen dem Master (RPi) und dem am weitesten entfernten Slave (DS18S20). Ich wollte mehrere DS18S20s und hatte eine Idee, dass mein Netzwerk würde mindestens 20 Meter Kabel brauchen, um zu tun, was ich wollte. Das 1-Draht-Netzwerk Das 1-Draht-Netzwerk ist im Grunde so einfach wie das Verlegen von Twisted-Pair-Kabeln, wo immer Sie Temperaturmessungen wünschen. Ich entschied mich für ungeschirmte Cat5e Twisted Pair, weil ich eine Rolle davon im Schrank sitzen hatte. Zuerst nahm ich die DS1820s, eine kurze Strecke von Twisted Pair Cat5e-Kabel und ein RJ45-Ende und machte ein kleines Plug-In-Thermometer. Crimp das Ende auf das Kabel, dann löten Sie die DS1820s drei Pins auf die entsprechenden Farbdraht auf der anderen Seite. Für mich ist das DS1820 pin1 (Masse) zu blau / weiß, DS1820 pin2 (data) zu blau und DS1820 pin3 (power) auf grün. Ich verwendete zwei Größen von Schrumpfschlauch, um die Drähte von einander abzuschirmen und alle Drähte in einer Hülle zu umhüllen. Seien Sie vorsichtig, wenn Sie dies tun, um nicht zu schrumpfen Ihre Wärmeschrumpfschläuche, indem Sie den Lötkolben zu schließen. Auch Blick auf Ihre Drähte sorgfältig Ich schaffte es, ein paar von ihnen nick, wenn Strippen eines der cat5e Kabel und eines meiner Thermometer würde nicht funktionieren, bis ich schneiden Sie es offen und befestigt es mit einigen elektrischen Band. Sobald Sie Ihren Stecker in Thermometer können Sie ein normales Twisted-Pair-Netzwerk rund um den Bereich, den Sie wollen Temperaturmessungen aus nehmen. Ich bestellte einige Twisted-Pair-RJ45-Splitter online zu erleichtern. Ich weiß nicht, ob Sie eine alte Nabe verwenden können, wenn Sie eine haben und würde gerne hören. Aber definitiv nicht verwenden einen Schalter, weil mein Verständnis ist, dass ein Hub auf der physikalischen Schicht arbeitet, während ein Switch ist bewusst von Daten. Dont Sorge über die schlechten Bewertungen Menschen geben RJ45-Splitter: so gut ich kann sagen, sie sind von dummen Menschen, die versuchen, sie zu verdrahten Ethernet statt mit einem Hub / Switch. Ich beendete meine Läufe mit modularen Oberflächenmontage RJ45 Buchsen, dass ich die kleinen Thermometer anschließen konnte. Sobald alles eingerichtet wurde, konnte der Spaßteil beginnen: Schreiben des Codes. Nach einigen Recherchen fand ich rrdtool. Round-Robin-Datenbank-Tool. Dies ist ein wirklich ordentliches Dienstprogramm, das Sie verwenden können, um Dateien zu erstellen und zu füllen, die ein timeseries von Daten speichern. Es kann abgeleitete Werte berechnen, archivieren Sie timeseries und sogar Diagramme der Daten für Sie. Und, zu booten, gibt es eine einfache Python-Schnittstelle zu. Ich fand auch ein ziemlich gutes Tutorial für die Verwendung. Um das rrdtool auf der SD-Karte des RPi einzurichten, müssen Sie das Intervall (--step) angeben, bei dem Sie Messungen vornehmen, eine oder mehrere Datenquellen benennen und ein oder mehrere RRA (Round Robin Archive) erstellen. Heres den Befehl, den ich am Ende mit: Dies schafft drei Datenquellen (innerhalb, außerhalb und Crawlspace), die Datenwerte zwischen -50 und 50 speichern können. Alle sollen angeblich einmal alle 60 Sekunden (--step) zur Verfügung gestellt werden und betrachtet werden Unbekannt sein, wenn mehr als 900 Sekunden vergangen sind, ohne gesetzt zu sein. Die Werte können jederzeit gespeichert werden, nachdem der UNIX-Zeitstempel an --start übergeben wurde. Darüber hinaus schafft es zwei RRAs, die nur ein Datum (also nimmt den Wert jeder Aktualisierung) und speichert es für 525600 Generationen (1 Jahr). Der andere Durchschnitt von sechzig Messungen zusammen, so dass 25 der 60 (bis zu 15) unbekannt und speichert 87600 Generationen. Als nächstes schrieb ich ein einfaches Python-Dienstprogramm, um die Temperatur der Sensorwerte abzurufen und sie in diese rrdtool-Datei zu schreiben. Denken Sie daran, zu überprüfen, ob der CRC gültig war, wenn Ihre nicht die Daten wahrscheinlich beschädigt ist. Dies geschieht manchmal: Dieses Ding heißt jede Minute von einem Cronjob und, wie Sie sehen können, fügt einige Daten in die rrdtool-Datei erstellt oben. Da rrdtool auch grafisch dargestellt werden kann, habe ich einen anderen Cronjob erstellt, der einmal pro Stunde läuft, um ein grafisches Bild zu erzeugen: Heres ein Skript, das als Cronjob aufwachen kann, die 10-minütige gleitende Durchschnittstemperatur berechnet und einen Lichtschalter umschaltet Hoch oder niedrig. Dieser Pin geht über das Twisted-Pair-Netzwerk auf dem braunen Draht aus und kann in einen Leistungsschalter-Schwanz oder ein Halbleiterrelais eingespeist werden, um einen Schalter zu kippen. Denken Sie daran, dass die GPIO-Pins sehr niedrigen Strom (18ma), so dass Sie cant Flip ein mechanisches Relais mit einer dieser direkt. Der WiFi-Adapter, den ich verlinkt habe von Edimax arbeitet mit dem RPi und braucht keinen USB-Hub. So verwendete ich es, um zu vermeiden, Ethernet hinunter zu wohin ich das 1-Wire Netz zu leben wünschte. Heres eine weitere Probe eines Temperaturgraphen aus der RRD extrahiert, diese von einem Thermometer außerhalb, wenn es unter dem Gefrierpunkt war: index. html wurde zuletzt aktualisiert 24. April 2015 und ist Copyright (C) 2002-2015 by Scott Gasch (scott. gasch064gmail) .

No comments:

Post a Comment