# HM-WDS40-TH-I-BME280
Temperatur-/Luftfeuchtesensor auf Basis des Bosch BME280.
Der BME280 unterstüzt eigentlich auch die Erfassung des Luftdrucks, allerdings müsste dafür ein DeviceAddon auf der CCU installiert werden weshalb dies nicht Teil dieses Projekts ist. Der HB-UNI-Sensor1 (opens new window) von Tom ist eine gutes Beispiel für einen universell einsetzbaren Sensor.
TIP
Möchte man den Temperatursensor an einen HM-CC-RT-DN Heizkörperthermostat anlernen, benötigt man genauere Timings und muss auf einen externen Taktgeber zurückgreifen.
Das HMSensor WDS40-RTC Projekt kann mit einem 32kHz Oszillator bestückt werden.
# Hardware
- Arduino Pro Mini 8Mhz 3.3V
- CC1101 Funkmodul
- Taster 6x6
- Led 5mm
- 100Ω Widerstand
- BME280 I2C Breakout Board (kein SPI)
- Batteriehalter
Es gibt BME280 Boards für 3.3V ohne LDO was etwas Arbeit spart.
# Platine
Je nach Zweck gibt es hier verschiedene Optionen:
- Keine 😃
- HMSensor von pa-pa
- HB-UNI-SEN-BATT von Alex (opens new window)
- Sensor_PLHT von Tom (opens new window)
- HB-UNI-Bat von Ronny (opens new window)
- HB-Micro von Ronny (opens new window)
In diesem Beispiel wird die HB-UNI-Bat von Ronny verwendet.
# Babbling Idiot
Damit es bei abfallender Battriespannung zu keinem Dauersenden kommt, wird die BOD über die Fuse-Bits des Arduino deaktiviert, siehe Babbling Idiot. Am besten setzt man die Fuses direkt nach Einlöten der Stiftleiste, da man diese zum Anschluss des ISP über Jumperwires nutzen kann.
# Stromverbrauch optimieren
Der Ruhestrom kann drastisch gesenkt werden:
- LDO und LEDs vom Arduino entfernen, siehe Batteriebetrieb
- LDO vom BME280 Board entfernen, siehe Ruhestrom von Tom (opens new window). Dieser Punkt entfällt für die 3.3V Versionen des BME280-Boards.
Im Bild zu sehen: Der LDO ist entfernt und eine Lötbrücke wurde am Level-Shifter gesetzt.
Statt die Lötbrücke am Level-Shifter zu setzen, kann man aber auch den ausgelöteten LDO überbrücken (opens new window), d.h. das 5V- mit dem 3.3V-Pad verbinden.
# Aufbau
Der Aufbau gestaltet sich simpel: Wie gewöhnlich wird der CC1101, die Status-LED und der Taster nach der allgemein gültigen Verdrahtung angeschlossen bzw. anhand der gewählten Platine bestückt.
Die vier Anschlüsse des BME280-Boards:
VIN
: 3V Betriebsspannung, kann vom VCC PIN des Arduino genommen werden.GND
SCL
: I2C Taktleitung, wird an PINA5
des Arduino angeschlossen.SDA
: I2C Datenleitung, wird an PINAA
des Arduino angeschlossen.
Einige Platinen bieten entsprechende Lötpunkt an, wodurch der BME280 direkt per Stiftleiste aufgelötet werden kann.
# Gehäuse
- HM-WDS40-TH-I (opens new window) von Jan
- HB-UNI-SENS-BATT-Case (opens new window) (Schiebedeckel) von Christoph S.
- HB-UNI-SENS-BATT Platine (opens new window) (verschraubbarer Deckel) von Christoph S.
# Sketch
Als Sketch kommt HM-WDS40-TH-I-BME280 (opens new window) von Jérôme zum Einsatz. Wie immer dran denken die Serial und ID zu ändern.
Zusätzlich zu den üblichen Bibliotheken (AskSinPP, EnableInterrupt, Low-Power) benötigt man noch die
Lib für den BME280 (opens new window).
Allerdings hatte ich hier noch einen Fehler beim kompilieren (opens new window)
weshalb ich die BME280Spi*.o
Dateien gelöscht habe.
# Betrieb
Im Sketch ist ein ConfigButton
definiert weshalb der neue Aktor per kurzem Tastendruck in den Anlernmodus gebracht werden kann.
# Weiteres
- Der BME280 ist etwas träge, gib ihm ein paar (mehr) Minuten damit sich die Temperatur einpegelt.
- Das Projekt ist auch recht schön auf technikkram.net (opens new window) beschrieben. Leider fehlt hier die Babbling Idiot Protection.
- Solltest du Anmerkungen oder Probleme mit dem Nachbau haben, lass es mich bitte wissen damit dieses Projekt verbessert werden kann.