-
Notifications
You must be signed in to change notification settings - Fork 7
I2C Bus einrichten
Die Klimasensoren werden über den I2C Bus angeschlossen. Auch die GPIO Extender zum Betrieb der LEDs werden über diesen Bus an den CaravanPi angeschlossen.
Um den I2C-Bus über Python ansprechen zu können, müssen zunächst die entsprechenden Bibliotheken geladen bzw. aktualisiert werden:
pip install smbus2
sudo apt-get install i2c-tools
Das Laden der Module erfolgt über die /boot/config.txt
. Diese muss ggf. erweitert werden. Dazu editieren Sie die Datei mit
sudo nano /boot/config.txt
Suchen Sie nach den folgenden Zeilen. Falls diese nicht schon enthalten sind, fügen Sie sie am Ende ein.
dtparam=i2c1=on
dtparam=i2c_arm=on
siehe auch https://www.raspberrypi-spy.co.uk/2014/11/enabling-the-i2c-interface-on-the-raspberry-pi/ https://www.thomaschristlieb.de/mit-dem-bme280-sensor-luftdruck-temperatur-und-feuchtigkeit-ins-internet-bringen/
Da unser I2C Bus recht lang ist und über zwei I2C Extender auch noch extrem verlängert wird (mehrere Meter) sind die internen Pull-Up Widerstände des Raspberry nicht mehr ausreichend. Daher setzen wir gleich am GPIO Pin von SCA und SCL jeweils einen 4,7 kOhm Widerstand gegen 3,3 V.
-
Prüfen, ob der I2C-Bus aktiviert ist
lsmod | grep i2c_
Sie sollten eine Ausgabe wie diese bekommen:
i2c_bcm2835 16384 0 i2c_dev 16384 0
-
Prüfen Sie, ob der I2C Bus in funktion ist und Geräte erkennt
i2cdetect -y 1
Das Ergebnis sollte z.B. sein
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: 20 21 -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- 53 -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- 76 77
Diese Anzeige würde bedeuten, dass an den I2C Adressen 20, 21, 53, 76 und 77 entsprechende Sensoren etc. angeschlossen sind. Falls noch keine Geräte am Bus angeschlossen sind, erscheinen natürlich nur
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
Falls Geräte am I2C angeschlossen sind und es erscheint die leere Matrix oder eine volle Matrix, dann stört ein Gerät am I2C Bus die Funktion:
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f
10: 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f
20: 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f
30: 30 31 32 33 34 35 36 37 38 39 3a 3b 3c 3d 3e 3f
40: 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f
50: 50 51 52 53 54 55 56 57 58 59 5a 5b 5c 5d 5e 5f
60: 60 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f
70: 70 71 72 73 74 75 76 77
In diesem Fall nehmen Sie alle kabelgebunden Geräte vom I2C Bus (Lagesensor, Klimasensoren). Dann sollten lediglich die beiden IC (20 und 21) auf der Platine angezeigt werden. Dann stecken Sie ein Gerät nach dem anderen wieder an und prüfen das Ergebnis.
Der I2C Bus ist wirklich eine geniale Sache. Eigentlich ist alles so einfach. Es können theoretisch bis zu 77 Geräte / Sensoren angeschlossen werden, solange nur alle unterschiedliche Adressen verwenden. Bei unseren Sensoren ist das so. Es werden die Adressen 20 und 21 für die GPIO Extender verwendet, die Adresse 53 vom Beschleunigungssensor und die Adressen 76 und 77 für die Klimasensoren.
Der I2C Bus ist aber auch eine ordentliche Diva. Ist irgendwas nicht super angenehm, dann fällt schon mal ein Gerät aus oder der ganze Bus ist nicht mehr ansprechbar. So ging es auch mir. Daher stets sorgfältig prüfen, ob alle Kabel an den richtigen Ports stecken.
http://www.netzmafia.de/skripten/hardware/RasPi/RasPi_I2C.html
CaravanPi - smart Caravan based on Raspberry Pi
(c) Josef Spitzlberger, Schloss Lustheim, Munich, Germany, 2019ff
CaravanPi Wiki
- Testaufbau
- Raspberry Pi OS installieren und initial konfigurieren
- MagicMirror installieren
- CaravanPi Skripte installieren
- MagicMirror vorbereiten & updaten
- OBSOLET V2 - Bottle Framework installieren
- Ein-/Aus-Schalter installieren
- Bewegungsmelder installieren
- Hupe/Buzzer installieren
- weitere Taster installieren
- OBSOLET V2 - Konfigurations-Website einrichten
- Temperatur Sensoren installieren
- Temperatur Sensoren anzeigen
- Gasflaschenwaage HX711 installieren
- Gasflaschenfüllstand anzeigen
- mehrere Gasflaschen Waagen anschließen
- I2C-Bus einrichten
- Klimasensor installieren
- Klimasensor BME280 anzeigen
- Klimasensor BME680 anzeigen
- GPIO Ports mit MCP23017 erweitern
- Lage-Sensor installieren
- Lage-Sensor anzeigen
- I2C Extender - langes Kabel
- Tank-Füllstände auslesen
- LEDs zur Lageanzeige
- RGB-LEDs am MCP23017 betreiben
- LED Einbau im Testaufbau
- Caravan ausrichten im Testaufbau
ab hier altes WIKI, muss noch umgezogen werden
XX = in Bearbeitung NEU = neue Funktion in letzter Version
- Stromversorgung Grundsätzliches
- Testgerät bauen
- Verkabeln am Caravan
- Gasflaschen-Waage bauen
- LEDs am Caravan anbringen
- Temperaturfühler im Kühlschrank anbringen
- Klimasensoren innen & außen anbringen
- Stromversorgung Raspberry Pi
- Stromversorgung Monitor
- WLAN im Caravan
- CaravanPi in Betrieb nehmen
- Gasflaschenwaage in Betrieb nehmen
- Defaultwerte für Lage, etc eintragen
- NEU XX Vorüberlegungen
- NEU XX MariaDB installieren
- NEU XX CaravanPi Datenbank anlegen
- NEU XX phpmyadmin installieren
- NEU XX Grafana installieren
- NEU XX Grafana auf MagicMirror anzeigen
- NEU XX Pythonzugriff auf MariaDB
- NEU XX Problembehandlung MariaDB, Grafana
- NEU XX Vorüberlegungen
- NEU XX Flask installieren
- NEU XX Status-Website einrichten
- NEU XX vorhandene Websites migrieren
- NEU XX 230V Eingang prüfen
- NEU XX 12V Batterie prüfen
- NEU XX Gassensor