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