Hallo, ich habe einen VOC Sensor bekommen, hierbei handelt es sich um einen IAQ Engine (ähnlich dem IAQ2000) Der hängt auch schon am Pi Ic2 und wird von der Adressierung erkannt. Ich habe aber leider nichts gefunden womit ich den Sensor ansprechen/auslesen kann, wobei die Engine wohl im Gegensatz nicht beschrieben werden darf sondern nur gelesen. Hat jemand den den IAQ 2000 oder besser noch die Engine laufen und könnte mir ein File zukommen lassen damit ich weiterkomme. Leider bin ich in C völlig talentfrei vielleicht kann mir jemand helfen ? Vielen dank schonmal. Gruß Frank
:
Verschoben durch User
Hast du die Suche benutzt? Es gibt direkt hier im Wiki einen Eintrag dazu... http://www.mikrocontroller.net/articles/IAQ-2000
Jep, habe ich gelesen aber nur kann ich damit nichts anfangen. Ich benötige ein Programm / Script, oder was auch immer das den Sensor abfragt. Ich kann das nicht selbst deshalb frage ich hier um Hilfe.
Frank schrieb: > Jep, habe ich gelesen aber nur kann ich damit nichts anfangen. Ich > benötige ein Programm / Script, oder was auch immer das den Sensor > abfragt. Ich kann das nicht selbst deshalb frage ich hier um Hilfe. Sorry, aber dann beschäftige dich damit, dann kannst du das ganze in absehbarer Zeit auch umsetzen. Hier ohne Eigenleistung nach fertigen Lösungen zu fragen stößt nicht gerade auf freudige Gesichter, ist einfach nicht sehr höflich... Warum willst du unbedingt etwas selbst machen, wenn du es eigentlich nicht kannst? Wenn ich unbedingt eine Torte haben möchte dann lern ich eben backen oder geh in den Laden und kauf eine fertige. Nicht böse gemeint, aber ein bisschen Eigeninitiative schadet nicht... Du weißt doch schon, dass man den Sensor per I2C anspricht. Dann liegt es doch nahe sich mal etwas in I2C einzulesen. Dannach wirst du vermutlich mit den Angaben im verlinkten Artikel was anfangen können. Des weiteren bin ich mir sicher, dass es fertige I2C-Tools für den RPi gibt, die du nur noch benutzen musst. Es ist ja beim besten willen nicht so, dass dir hier keiner helfen will, aber alles vorkauen will eben auch keiner. Wenn du selbst was probiert hast und dann noch spezifischere Fragen hast werden die dir dann sicherlich gerne beantwortet.
Hallo, nun ja, es ist halt unheimlich schwer, wenn man so etwas noch nie gemacht hat. Aber ich gebe dir ja recht, und ich habe mich in den letzten Tagen etwas eingelesen und versuche nun, das selbst umzusetzen. Aber wie gesagt ich würde immer noch sagen, dass ich keine Ahnung davon habe, aber du sagtest ja das ich Hilfe bekommen könnte :-) Wenn ich das richtig verstanden habe läuft das Ganze wohl so ab : Der I2C Bus wird in der Startkondition von SDA High auf Low gesetzt und SCL bleibt auf High. Damit kann der Sensor ausgelesen werden. Dann werden die Adressbereiche MSB ( Byte 1 ) und LSB ( Byte 2 ) ausgelesen, wobei der Wert MSB mit 256 multipliziert wird und mit dem Wert LSB addiert wird. Das Ergebnis wäre dann der Wert der Luftbelastung in ppm. Ich hoffe ich habe das richtig verstanden. Da ich nun in C oder sonstigem völlig talentfrei bin versuche ich mich mal in Pyhton, nicht das ich mich da auskenne, aber ich versuche es mal: #!/usr/bin/python import smbus import time import math import RPi.GPIO as GPIO #Adresse Ic2 IAQENGINE = 0xB5 # I2C Bus 0 oeffnen Bus = smbus.SMBus(0) # Signed Integer auslesen def ReadSInt(Device, Adresse): # Auslesen der beiden Bytewerte MSB = Bus.read_byte_data(Device, Adresse) LSB = Bus.read_byte_data(Device, Adresse + 1) # Wert MSB mit 256 multipli. Data = (MSB *256): MSB = MSB * 256 # Datenbytes zusammenfuegen Data = (MSB << 8) + LSB return Data # Ausgabe print "----------------------------------------" print "Luftbelastung " + Data + " ppm" print "----------------------------------------" Bus.close() time.sleep(1) Könnte das so funktionieren, vor allem unter dem Aspekt das ich den Sensor nicht schreiben darf da er sich dann verabschieden kann. Schonmal vielen Dank für eure Hilfe. Gruß Frank
Dominik S. schrieb: > Es ist ja beim besten willen nicht so, dass dir hier keiner helfen will, > aber alles vorkauen will eben auch keiner. > Wenn du selbst was probiert hast und dann noch spezifischere Fragen hast > werden die dir dann sicherlich gerne beantwortet Hallo Robert, vielen Dank für deine Hilfe das bringt mich wirklich weiter. Aber wie du schon gesehen hast habe ich mich mit dem Thema beschäftigt und ich glaube ich weiß auch wie es gehen könnte, wobei es mit der Umsetzung noch etwas hapert. Was ist falsch daran Vorlagen als Beispiel zu nutzen und es seinen Bedürfnissen anzupassen ? Ich bin mir ganz sicher, dass Daniel das genau so sieht. Vielleicht meldet er sich ja hier noch zu Wort. schöne Grüße Frank
Frank schrieb: > Könnte das so funktionieren, vor allem unter dem Aspekt das ich den > Sensor nicht schreiben darf da er sich dann verabschieden kann. Naja, beschreiben wirst du ihn nicht, so lange du keine Funktion aufrufst die ein "write" oder ähnliches enthält :) Ich denke die Gefahr das Teil kaputt zu machen ist eher überschaubar. Funktionieren wird das so nicht. Habe zwar noch nie was mit Python gemacht aber im obigen Beispiel würdest du beispielsweise >> MSB = Bus.read_byte_data(Device, Adresse) aufrufen, ohne "Device" und "Adresse" jemals definiert zu haben. Des weiteren scheint das zwischen "def" und "return Data" eine Funktionsdefinition zu sein - dieses Fkt rufst du aber auch niemals auf. Wenn du noch nie was mit P. gemacht hast würde ich mal an anderer Stelle ansetzen. Im Wiki (http://www.mikrocontroller.net/articles/Raspberry_Pi#Der_I2C-Bus) wird von "i2c-tools" gesprochen, die du per Kommandozeile nutzen kannst. Aufgrund obiger Aussage >> Der hängt auch schon am Pi Ic2 und wird von >> der Adressierung erkannt. kennst du die ja vielleicht auch schon. An deiner Stelle würde ich erstmal versuchen mit diesen Tools das / die entsprechenden Register auszulesen. Das ganze in ein Skript verpacken kannst du immer noch, wenn du merkst, dass du es schaffst an einen brauchbaren Wert zu kommen.
:
Bearbeitet durch User
Ich habe den Sensor mal mit i2cget -y 1 0xB5 bzw i2cdump angesprochen und nun reagiert er nicht mehr. Mit ic2deteckt -y 1 ist er auch nicht mehr zu finden. Das war es dann wohl oder ?
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.