wemaus

Font Size

Cpanel

Stationsuhr III

In diesem Betrag wird die wohl erste Hardware-Erweiterung für die Stationsuhr in der Version V1.3 vorgestellt. Hierbei geht es um eine kleine Platine, die auf der Rückseite der Hauptplatine, auf den dafür vorgesehen Erweiterungsbuchsen aufgesteckt wird.

Dieses Aufsteckmodul beinhaltet zwei Sensoren, einen Luftdruck-/ und Fechtesensor, die über den I2C-Bus am Prozessor angeschlossen sind. Im Gegensatz zum Luftdrucksensor,  eine Breakout-Platine mit einem BMP180, hat der Feuchtesensor, ebenfalls eine Breakout-Platine mit einem SHT15 Sensor, keinen echten I2C-Bus, jedoch eine ähnliche Kommunikation über zwei Leitungen, die sich mit dem I2C-Bus vertragen. D.h., beide Sensoren können parallel an einem Bus angeschlossen werden.

Bei der Programmierung ist aber darauf zu Achten, dass der aktive I2C-Bus die Portleitungen PC4/SDA und PC5/SCL nicht für andere Anwendungen zulässt. Deshalb muss der Bus für die Abfrage des Feuchtesensors einfach kurz abgeschaltet werden. Erreicht wird dies durch zwei kurze Befehlssequenzen, die das Statusregiste aufrufen, den Bus deaktivieren und dann wieder einschalten.

Im Folgen ist ein Auschnitt aus der Software zu sehen, die die Anwendung der kurzzeitigen Abschaltung verdeutlicht.

 

releaseBus();

sendCommandSHT(0b00011110);                 // Reset Sensor Humidity
delay(11);
humidity = readHumidity();                          // Read value from sensor

enableBus();                        

Und nun noch die beiden Funktionen releaseBus() und enableBus() dazu:

 

// Schaltet den I2C-Bus ab, so dass er auch für Anderes benutzt werden kann
void releaseBus() {
  TWCR = _BV(~TWEN) | _BV(TWIE) | _BV(TWEA) | _BV(TWINT);
}

 

// und I2C-Bus wieder aktivieren
void enableBus() {
  TWCR = _BV(TWEN) | _BV(TWIE) | _BV(TWEA) | _BV(TWINT);  
}

 

 

Ein paar Bilder zur Erweiterung zeigen die Platine und die beiden darauf befindlichen Sensoren.

Stationsuhr Testaufbau  

 

Die ersten Tests der Sensoren in Verbindung mit der Stationsuhr.

     
Stationsuhr Testaufbau  

 

 

Der Feuchtesensor SHT11 mit einem 100 nF Abblockkondensator zwischenn VCC und GND.

     
Erweiterungsplatine Stationsuhr   Die Skizze zeigt die Anordnung der Verdrahtung auf der Erweiterungsplatine. In den folgenden Bilder ist der Aufbau nochmals verdeutlicht.
     
Stationsuhr Erweiterungsplatine  

 

 

Die ganze Schaltung passt gut auf die kleine Lochrasterplatine mit der Abmessung 16 x 10 Loch.

     
Erweiterungsplatine Verdrahtungsseite  

 

 

Der I2C-Bus, sowie die + 5 V und GND werden links nach rechts durchgeschleift. Die Kontakte oben links und rechts bleiben frei (einer davon liegt auf + 12 V).

     
Erweiterungsplatine Bestückungsseite  

 

 

Links der Feuchtesensor SHT11 und rechts der Drucksensor BMP180, beide sind auf Buchsenleisten gesteckt.

     
Erweiterungsplatine  

 

Auf der Hauptplatine der Uhr wird die Erweiterungsplatine in die beiden dafür vorgesehenen je 5-poligen Buchsenleisten gesteckt. Pullupwiderstände für den Bus sind bereits auf der Hauptplatine.

     
Stationsuhr V1.3   So sieht nun die neue Ansicht der Uhr aus. Innen- und Aussen-Anzeigen wurden getauscht, damit die Feuchteanzeige die korrekte Zuordnung bekommt.

 

Der Aufbau der Platine ist recht einfach, es wird jeweils nur die Betriebsspannung (+ 5 V, GND) und der Bus angeschlossen. Beim Feuchtesensor SHT15 werden die Leitungen DATA mit SDA und SCK mit SLC verbunden. Ein kleiner Kondensator, von 100 nF, am Betriebsspannungsanschluss des Feuchtesensors, blockt diese ab.

 

 

Die neue Übersicht zum Funktionsumfang der Stationsuhr ab der Version V1.3:

Funktionsübersicht   
  Taste Taste
  kurz (0,15 s)
lang (> 0,5 s)
Taste 1 Hintergrundbeleuchtung für 3 Sekunden einschalten Hintergrundbeleuchtung einschalten
Taste 2 Wechsel MESZ/MEZ, UTC, UTC invers Einstellen der Bezugshöhe für die Luftdruckanzeige
Taste 3 Versionsinformation für 3 Sekunden Hintergrundbeleuchtung, Aus- und Einschaltung einstellen
Taste 4 Alarm ein/aus Alarm einstellen
Drehgeber-Taste Hintergrundbeleuchtung einschalten, wenn aus. Alarm abschalten
Drehgeber Einstellen der Alarm-/ oder Hintergrundbeleuchtungszeiten und der Bezugshöhe für die Luftdruckanzeige

 

 

Version 1.5:

In der neuen Version V1.5 ist die Statusanzeige der Sensoren (S) für Feuchte (F) und Luftdruck (P) verbessert worden. So wird nun wenn kein Sensor dieser Art vorhanden ist, ein Hinweis dazu ausgegeben, dass der bzw. die Sensoren nicht vorhanden sind. Beim Luftdrucksensor wird zusätzlich für 15 Sekunden zuvor der interne Fehler angezeigt.

 

Stationsuhr Sensor Status  

 

 

Links unten im Display wird der Status der Sensoren für die Feuchte und den Luftdruck angezeigt, wenn einer der Sensoren nicht verfügbar ist.

     
Feuchtesensor SHT21  

 

 

Der neue und bessere Feuchtesensor SHT21 mit echter I2C-Schnittstelle und fester Adresse weist zusätlich auch eine höhere Genauigkeit auf.

     
Tastenbeschriftung  

 

Stationsuhr mit Tastenbeschriftung am unteren Rand der Tastaturplatine.

 

Die Einstellung für die beiden unterschiedlichen Feuchtesensoren SHT11 bzw. SHT21 kann in der Software eingestellt werden.

 

 

 

Download:    
    Desktop_Uhr_V01_5_web.ino.zip
    Libraries
    Library von Sparkfun.com für den BMP180-Sensor (SFE_BMP180)
    Library für den SHT21 über den Arduino IDE Library Manager: Sodaq_SHT21

 

Links:

   
Teil I   Stationsuhr I
Teil II   Stationsuhr II