Der Regensensor ist Teil des Rasenmäher-Projekts. Nasser Rasen lässt sich nicht gut mähen. Außerdem besteht das Risiko in eine Pfütze zu geraten.

Das Messprinzip

Ein kapazitiver Sensor ist zwingende Voraussetzung. Alle anderen Systeme lassen sich mit DIY-Mitteln kaum realisieren. Optische Sensoren, die auf Refelxionsänderungen beruhen, sind mechanisch/optisch aufwendig zu bauen. Ohmsche Sensoren, die auf Leitfähigkeitsänderungen beruhen, müssen wegen des direkten Kontakts mit der Umwelt passend aufwändig beschichtet werden, um der Korrision widerstehen zu können. Kapazitive Sensoren sind einfach zu bauen und zu isolieren.

Die Größe der Kapazität eines Kondensators hängt im Wesentlichen von seiner Oberflächengröße und dem umgebenden Dielektrikum ab. Die Dielektrizitätskonstante von Luft (1,0) unterscheidet sich deutlich von der von Wasser (80-88). Ein in Wasser getauchter Kondensator wird eine rund 80-fache Kapazität aufweisen. Wenn der Kondensator bei Regen nur teilweise benetzt ist, sollte die Kondensatorkapazität ein Maß für die Benetzung und damit für die Regenstärke sein.

Die aktuelle Kapazität kann anhand der Ladedauer eines vorher entladenen Kondensators gemessen werden. Dies geschieht mit Hilfe eines Mikroprozessors.

Da das Ergebnis per I²C ausgelesen werden soll, also µC o.ä. benötigt wird, ist es am einfachsten, auch die Kapazitätsmessung mit dem µC durchzuführen. Die AVRs besitzen einen internen Komparator, der hierzu genutzt werden kann.

 Über den nicht-invertierenden (positiven) Eingang des Komparators wird die Zeit gemessen, die bis zum Erreichen der Referenzspannung des vorher entladenen Kondensators benötigt wird. Die Referenzspannung liegt am invertierenden (negativen) Eingang an. Überschreitet die Kondensatorspannung die Referenzspannung kippt der Ausgang des Komparators.

Der Sensor

Für den Kondensator ist es am einfachsten, eine kammartige Struktur auf eine Leiterplatte zu ätzen. Das kammartige ineinander greifen der beiden Pole bewirkt eine genügend große Oberfläche. Mein Exemplar besitzt bei eine Abmessung von 3x5 cm² eine Kapazität in Lauft von ca. 30 pF. Die Leiterbahnbreite besitzt knapp 1  mm. Engere Bahnen ergäben zwar eine höhere Kapazität und wären empfindlicher für kleine Tropfen, beinhalten aber auch das Risiko, dass die Herstellung wegen Fehlern bei der Übertragung des Musters und der Ätzung mehrere Versuche benötigt. Das wollte ich nicht, da die Empfindlichkeit für den angegeben Zweck ausreichend ist. Nach dem Ätzen und Anlöten eines Steckers wurde die Oberfläche zweifach mit Plastikspray besprüht. Diese Lackschicht dient als zum einen als Isolator und verhindert zum anderen die Korrosion. Die Schablone habe ich mit Hilfe eines Excel-Sheet entworfen (download Excel-Sheet oder PDF).

So sieht es fertig aus: Regensensor

Je nach konkreter Anwendung macht es ggf. Sinn die Ableitung in der Mitte oder doppelt an beiden Rändern zu platzieren.

Die Elektronik

Der I²C-Slave soll nach altbewährter Methode über die USI eines AVR abgewickelt werden. Da beim ATtiny 45 SDA und AIN0 auf einem gemeinsamen PIN herausgeführt wird, ist dieser Chip nicht geeignet. Der nächst größere in meiner Baselkiste war ein ATtiny 44.

Die Kapazitätsmessung erfolgt, wie oben beschrieben, über die Messung der Ladedauer. Damit die Ladedauer nicht zu klein wird, wird mit einem 1 MΩ geladen (R3). Die Zeitkonstante (2·π·R·C) ist dann etwa 0,2 ms, bei 8 MHz Takt also gut auszulesen. Der nicht-invertierende Eingang des Komparators (AIN0) dient zur Messung der Kondensatorspannung. Zum Entladen des Kondensators wird er kurzfristig als Ausgang geschaltet.

Der invertierende Eingang (AIN1) wird über einen Spannungsteiler (R1, R2) auf etwa 4 Volt als Referenz gelegt.
Schaltplan Board Ätzmaske Eagle-Projekt

 

Das fertige Board: Board bestückt ...und zusammengesteckt: Boards kombiniert

(Die Abb. zeigt eine vorhergehende Version. Die Ableitung des Reset-Pins ist noch nicht vorhanden.)

Die Software

Die Software ist recht einfach. AIN0 wird als Ausgang geschaltet. Standardmäßig liegt dieser auf Low. Der Kondensator wird entladen. Nach einer kurzen Zeit wird der Eingang wieder als Input geschaltet. Der Kondensator wird nun geladen. In einer simplen Schleife wird ein Zähler solange erhöht bis die Referenzspannung erreicht wird. Der Komparator-Ausgang liegt dann auf High.

#define OUTPORT PORTB
#define OUTPIN  PB0

int main(void)
{ uint16_t cnt = 0;  // Zähler zur Messung der Ladedauer des Kondensators
  
  ...
  
  while(1)
  { DDR(OUTPORT) |= _BV(OUTPIN);  // entladen
    _delay_ms(10);                // warten bis Kondensator sicher entladen ist
    cnt = 0;
    DDR(OUTPORT) &= ~_BV(OUTPIN); // laden
    while(!(ACSR & _BV(ACO)))     // zählt bei trockenem Sensor bis etwa 250. Bei nassem bis über 400.
      cnt++;
    // hier kann cnt verwertet werden
    ...
    
    _delay_ms(200);
  }  
}

Der Schleifenwert muss noch ein wenig angepasst werden, damit das Ergebnis in ein Byte passt. Das macht die I²C-Übertragung besonders einfach.

Die Montage

Hier ist noch einiges offen. Insbesondere gilt es, Überlegungen zum Winkel zur Horizontalen anzustellen.

  1. Die Kunststoffoberfläche des Sensors ist wasserdicht. Wasser verbleibt auf der Oberfläche bis es abläuft (bei schräg gestelltem Sensor) oder verdampft. Reale Objekte, insbesondere der Erdboden nimmt Wasser auf. Es sickert in das Objekt ein.
  2. Die Kunststoffoberfläche des Sensors ist nicht gut benetzbar. Wenn Tropfen Kontakt miteinander bekommen, verschmelzen sie schnell zu einem großen Tropfen. Große Tropfen laufen bei schräg gestellten Sensor schnell ab, kleine verbleiben.
  3. Die Oberfläche von zusammengelaufenen großen Tropfen ist kleiner als dies bei nicht zusammengelaufenen der Fall ist. Demzufolge ist die Verdampfungsrate unterschiedlich.
  4. Grashalme sind relativ schmal. Wenn dort Tropfen zusammenlaufen, sind sie in der Größe beschränkt.
  5. Grashalme stehen imWesentlichen aufrecht, der Erdboden liegt eher horizontal.
  6. Liegt der Sensor horizontal sammelt sich das Wasser auf der Oberfläche. Man bekommt eher einen Messwert, der zunächst mit der gesamten Regenmenge korreliert. Es wenn so viel Regen gefallen ist, dass die Tropfen abzulaufen beginnen ändert sich dies. Letzteres könnte man ggf. verhindern, indem man den Sensor auf dem Boden eines Sammelbeckens anbringt.
  7. Steht der Sensor deutlich aufrechter, laufen die Tropfen nahezu sofort ab (zumindest die etwas größeren). Der Sensorwert korreliert dann eher mit der aktuellen Regenstärke.
  8. Große Regentropfen sammeln sich schneller zu noch größeren Tropfen und laufen besser ab als viele kleine.