Hallo Uwe,
Hallo Frank,
SUPER! Hat funktioniert. Bekam zwar zunächst immer noch Fehlermeldungen, aber nachdem ich dann die beiden Libraries aus dem Sketch-Verzeichnis gelöscht hatte, ging es.
Vielen Dank! Ohne eure Hilfe hätt ich das im Leben nicht rausbekommen.
Dann gehts nun ans zusammenbauen der Platine.
Gruß,
Dennis
Ankündigung
Einklappen
Keine Ankündigung bisher.
Pluggit Lüftungsanlage anbinden
Einklappen
X
-
Ein Gast antwortete
-
Hallo Uwe,
Danke für den Fix und die Infos. Ich hätte die Änderungen ähnlich vorgenommen, nur ist es mir entgangen, dass die Library mit dabei ist. Das macht es natürlich einfacher den Code zu kompilieren. Mit den Änderungen kann ich es zumindest kompilieren. Ich werde das demnächst mal testen und bei Github-Einbauen.Zitat von ufo dd Beitrag anzeigenseit Teensyduino 1.14 ist dort die IntervalTimer-Bibliothek mit dabei. Die beißt sich mit PITimer. Frank hat sein Sketch noch mit Version 1.13 gebaut.
Mit folgenden Änderungen in P300.ino hat es bei mir funktioniert:...
Einen Kommentar schreiben:
-
Hallo Dennis,
seit Teensyduino 1.14 ist dort die IntervalTimer-Bibliothek mit dabei. Die beißt sich mit PITimer. Frank hat sein Sketch noch mit Version 1.13 gebaut.
Mit folgenden Änderungen in P300.ino hat es bei mir funktioniert:
Zeile 18:
ersetzen durchCode:#include "PITimer.h"
Zeilen 135,136:Code:#include <IntervalTimer.h>
ersetzen durch:Code:PITimer2.frequency(1000); PITimer2.start(timerCallbackMs);
Dann sollte es gehen.Code:IntervalTimer Timer_ms; Timer_ms.begin(timerCallbackMs, 1000);
Gruß
Uwe
Einen Kommentar schreiben:
-
Ein Gast antworteteHi Frank,
Irgendwie bekomm ich es nicht hin. Also ich hab im Verzeichnis "../Dokumente/Arduino" ein Verzeichnis "P300" und ein Verzeichnis "libraries". In "libraries" habe ich die Verzeichnisse "IntervalTimer" und "PITimer" mit den entsprechenden Dateien drin. Wenn ich Arduino starte und über "Library importieren" die Verzeichnisse oben auswähle, sagt er "Es existiert bereits ein Library mit diesem Namen".
Von Arduino habe ich Version 1.0.5 unter Windows 7 und von Teensyduino hab ich die Version 1.15 installiert.
Beim "Überprüfen" kommen weiterhin Fehler. Hab mal ein detailliertes Log als gezippte txt-Datei angehängt.
Gruß,
DennisAngehängte Dateien
Einen Kommentar schreiben:
-
Lege im Sketch-Verzeichnis ein Unterverzeichnis "libraries" an und lege dort das komplette Verzeichnis "PITimer" ab. Nach einem Neustart der Arduino-Umgebung muss unter "Sketch" -> "Library Importieren" der PITimer auftauchen.Zitat von spunky78 Beitrag anzeigenMit "installieren" des Intervatimers meinst Du auch das kopieren ins Sketch-Verzeichnis nehm ich an?
Die Arduino-Umgebung vereinfacht und abstahiert hier zum Glück vieles.Zitat von spunky78 Beitrag anzeigenSorry für die vielleicht blödes Frage, aber mit Microcontroller-Gedöns hab ich mich bisher noch nie beschäftigt und bin hier ein blutiger Noob.
Einen Kommentar schreiben:
-
Ein Gast antworteteDen PITimer habe ich bereits installiert. Habe die beiden Files mit in das P300 Sketchverzeichnis gelegt. Hatte zuvor nämlich auch ne Fehlermeldung bzgl. des PITimers. Danach war das weg. Mit "installieren" des Intervatimers meinst Du auch das kopieren ins Sketch-Verzeichnis nehm ich an? Sorry für die vielleicht blödes Frage, aber mit Microcontroller-Gedöns hab ich mich bisher noch nie beschäftigt und bin hier ein blutiger Noob.
Ich werde das heute Abend mal probieren und berichten.
Gruß,
Dennis
Einen Kommentar schreiben:
-
-
Das Problem scheinen auch andere zu haben:Zitat von spunky78 Beitrag anzeigenHi Frank,
irgendwie bekomme ich immer Compilierungsfehler, wenn ich deinen Code auf den Teensy spielen will.
Timer interrupt problem
Die Lösung soll diese Library sein: https://github.com/loglow/IntervalTimer
Fürs Erste versuche mal Arduino 1.0.4 und die Teensy-Software vom Juni: Index of /teensy/td_115 oder Index of /teensy/td_114
Kannst du bitte wenn der Fehler bestehen bleibt die im Log beschriebenen erweiterten Einstellungen setzen.
Einen Kommentar schreiben:
-
Ein Gast antworteteHi Frank,
irgendwie bekomme ich immer Compilierungsfehler, wenn ich deinen Code auf den Teensy spielen will.
Code:This report would have more information with "Show verbose output during compilation" enabled in File > Preferences. Arduino: 1.0.5 (Windows 7), Board: "Teensy 3.0" IntervalTimer.cpp.o: In function `IntervalTimer::end()': C:\Program Files (x86)\Arduino\hardware\teensy\cores\teensy3/IntervalTimer.cpp:39: multiple definition of `pit0_isr' PITimer.cpp.o:C:\Users\dennis\AppData\Local\Temp\build8718450665310676947.tmp/PITimer.cpp:33: first defined here IntervalTimer.cpp.o: In function `IntervalTimer::disable_PIT()': C:\Program Files (x86)\Arduino\hardware\teensy\cores\teensy3/IntervalTimer.cpp:40: multiple definition of `pit1_isr' PITimer.cpp.o:C:\Users\dennis\AppData\Local\Temp\build8718450665310676947.tmp/PITimer.cpp:34: first defined here IntervalTimer.cpp.o: In function `IntervalTimer::start_PIT(unsigned long)': C:\Program Files (x86)\Arduino\hardware\teensy\cores\teensy3/IntervalTimer.cpp:41: multiple definition of `pit2_isr' PITimer.cpp.o:C:\Users\dennis\AppData\Local\Temp\build8718450665310676947.tmp/PITimer.cpp:35: first defined here collect2.exe: error: ld returned 1 exit status
Einen Kommentar schreiben:
-
Da wünsche ich viel Erfolg. Das Abfragen des Zusatzsensors ist ja zumindest einfach möglich.Zitat von spunky78 Beitrag anzeigenHui! Das wird was dauern, bis das läuft. Habe leider keinerlei Programmierkenntnisse. Muss erst mal schauen, wie ich in FHEM ein Modul gebastelt bekomme. Die werden ja in PERL geschrieben. Vielleicht kann mir in der FHEM-Community jemand dabei helfen.
Das dürfte dann in der Tat schwer werden.Zitat von spunky78 Beitrag anzeigenMit dem "Modbusteil per C/C++ im Teensy" implementieren hörts dann auf
. Dafür fehlen mir neben den Programmierkenntnissen auch die notwendigen Grundlagen bzgl. der Schnittstellen und wie man diese anspricht.
Einen Kommentar schreiben:
-
Ein Gast antworteteHui! Das wird was dauern, bis das läuft. Habe leider keinerlei Programmierkenntnisse. Muss erst mal schauen, wie ich in FHEM ein Modul gebastelt bekomme. Die werden ja in PERL geschrieben. Vielleicht kann mir in der FHEM-Community jemand dabei helfen.
Mit dem "Modbusteil per C/C++ im Teensy" implementieren hörts dann auf
. Dafür fehlen mir neben den Programmierkenntnissen auch die notwendigen Grundlagen bzgl. der Schnittstellen und wie man diese anspricht.
Einen Kommentar schreiben:
-
Genau so ist es. Für das Text-Protokoll gibt es eine Hilfe "?". Es wird automatisch erkannt ob ASCII oder Modbus gesprochen wird, wobei ich Modbus über die USB Schnittstelle nicht zu 100% testen konnte da mir eine Applikation fehlt.Zitat von spunky78 Beitrag anzeigenalso wenn ich Dich recht verstehe, müsste ich auf für FHEM quasi ein Modul haben (basteln), welches per Text-Protokoll die Sensoren (Luftfeuchte / Luftgüte) ausliest und per Modbus die Temperatursensoren und sonstige Einstellungen der Anlage sowie per Modbus Befehle Steuerbefehle sendet?
Wenn du in C/C++ programmieren kannst, so kannst du ja den Modbus-Teil im Teensy implementieren. Damit wird das integrieren in andere Anwendungen einfacher. Ein Teil der Modbus-Funktionalität wird ja später sowieso für die Steuerung per Gas- oder Feuchte-Sensor gebraucht.
Den CRC-Code für den Modbus habe ich schon implementiert. (s. test.cpp) Das Senden und Empfangen von Kommandos ist auch schon im Code vorbereitet. Dafür gibt es "proxy_intern". Es gibt allerdings noch keine Ende-Erkennung einer Antwort außer einem Timeout (sollte aber ausreichend sein). Die Antwort landet einfach im Puffer und muss ausgewertet werden.
Die Feuchtesensoren sprechen I2C, die Adresse wird in der Konfiguration eingetragen (config.h, SENSOR_HYT). Im Datenblatt gibt es eine Anleitung wie die Adresse zu setzen ist. Das geht über I2C Kommunikation unmittelbar nach dem Einschalten des Sensors. Da muss ein extra-Programm her.Zitat von spunky78 Beitrag anzeigenPS: Du sagtest, man könnte bis zu vier Sensoren anschließen. Wo kann man denn ein zweites Sensor-Board anschließen? Müsste man dafür auf dem "Mainboard" eine weitere Wannenstiftleiste anbringen und mit dem Teensy verbinden? Wenn ja, mit welchen Pins?
Die Gas-Sensoren werden über einen AD fähigen PIN angesprochen (config.h, SENSOR_GAS).
Der Anschluss für die Sensor-Platine ist schon so gestaltet, dass ein zweiter AD-PIN anliegt. Damit sollten ein zweiter Gas-Sensor und mehrere Feuchtesensoren angeschlossen werden können.
Einen Kommentar schreiben:
-
Ein Gast antworteteHallo Frank,
also wenn ich Dich recht verstehe, müsste ich auf für FHEM quasi ein Modul haben (basteln), welches per Text-Protokoll die Sensoren (Luftfeuchte / Luftgüte) ausliest und per Modbus die Temperatursensoren und sonstige Einstellungen der Anlage sowie per Modbus Befehle Steuerbefehle sendet?
Puh! Mal sehen ob ich da irgendwie hinbekomme.
Vielen Dank erstmal!
PS: Du sagtest, man könnte bis zu vier Sensoren anschließen. Wo kann man denn ein zweites Sensor-Board anschließen? Müsste man dafür auf dem "Mainboard" eine weitere Wannenstiftleiste anbringen und mit dem Teensy verbinden? Wenn ja, mit welchen Pins?
Viele Grüße,
Dennis
Einen Kommentar schreiben:
-
Hallo Dennis,
die Schaltung kann theoretisch bis zu vier Temperatur/Feuchtesensoren ansteuern. Diese können per Text-Protokoll über den USB-Serial-Port des Teensy ausgelesen werden. Getestet habe ich das nur mit einem Sensor. Ich habe auch keine Idee wie man ohne Geräteveränderungen weitere Sensoren dicht Verkabeln kann.
Wenn man die Anlage auslesen möchte, so muss man über den USB-Serial-Port das Modbus-Protokoll (s. Thread) sprechen. Darüber kann man dann alles machen/auslesen was die Fernbedienung auch kann.
Aus Zeitgründen wird meinerseits das Projekt bis zum Einsetzen der Heizperiode still liegen. Dann werde ich den Luftgütesensor mit einer Funktion zum Stoppen der Anlage ausrüsten. Vielleicht fällt dann auch eine Text-Schnittstelle zur Lüftungsanlage dabei ab.
Ich halte niemanden davon ab meine Software zu erweitern oder Linux-Software zur Modbus-Ansteuerung zu entwickeln und zu veröffentlichen. ;-)
Viele Grüße
Frank
Einen Kommentar schreiben:
-
Ein Gast antworteteWOW! Das ist hier ja richtig weitergegangen. Als ich das letzte Mal vorbei schaute, ging es noch um die Analyse des Protokolls. RESPEKT!
Nun habe ich aber auch direkt eine Frage. Meine P300 wird derzeit mit einem Schaltaktor gesteuert. Über FHEM (auf nem RasPi) kann ich damit recht simpel zwischen den Lüftungsstufen umschalten.
Vermisst habe ich bisher halt nur immer das Auslesen der P300. Und das mit dem Luftgüte und Luftfeuchtigkeitssensor ist der Hammer! Nun zu meiner Frage:
Wie spreche ich die Steuerung über meinen RasPi an? Brauchts dafür irgendwelche Module, Programme, oder sonst was? In welchem Format liegen die abgefragten Werte vor? Ich würde die halt gerne in FHEM darstellen/abfragen und zur Steuerung verwenden sowie von FHEM Steuerungsbefehle an die P300 senden. Aus den bisherigen Infos konnte ich da nichts für mich ableiten.
Wäre super wenn ihr mir da weiterhelfen könnt.
Viele Grüße,
Dennis
Einen Kommentar schreiben:


Einen Kommentar schreiben: