DIY Wetterstation aus dem 3D Drucker

paddy

Active member
Hallo zusammen,

um mich mit Fusion 360 vertraut zu machen, habe ich eine kompakte Wetterstation entworfen und das meiste schon gedruckt. Die Wetterstation soll später autark betrieben werden. Die Stromversorgung übernimmt ein NIMH Akku (3 Zellen), geladen wird dies über ein Solar Panel an der Rückseite der Station (gegenüber dem Windmesser).

Die Station soll folgende Daten sammeln:
- Windgeschwindigkeit
- Windrichtung
- Temperatur, Druck, Feuchtigkeit der Luft
- Regenmenge
- Sonneneinstrahlung (indirekt über Spannungsmessung der Solarzelle)

Das ganze soll völlig ohne externe Stromversorgung auskommen. An dem Bestimmungsort habe ich einen Strom, nur einen 1" Mast, der als Aufnahme dient.

Die Station sieht aktuell so aus
1.png

2.png

3.png

4.png

5.png


Die Elektronik ist noch nicht fertig. Die Spannungsversorgung mit Ladeschaltung steht (Trickle charge). Ein Attiny wird später die Windrichtung bestimmen, ein weiterer die Windgeschwindigkeit und die Regenmenge sowie die Spannungen vom Akku und der Solarzelle. Beide sollen als I2C Slave Modul laufen und mittels Deep Sleep arbeiten (Interrupt des I2C Bus und Pin Change Interrupt). Ein Lolin (Wemos) D1 mini pro (ESP Modul) wird alle x Minuten aufwachen, die I2C Geräte nach Daten fragen und senden. Anschließend geht es wieder in den Sleep modus.

Wenn Interesse an dem Projekt besteht, werde ich hier weiter über den Fortschritt berichten und die Dateien veröffentlichen. Mitstreiter beim entwickeln der Software sind herzlichst Willkommen.

Gruß Patrick
 
Hallo Paddy,
das sieht doch schon mal sehr gut aus. Werde ich vermutlich nachbauen bzw. nachdrucken da ich schon länger so was machen wollte.
Als Controller würde ich einen ESP32 nehmen, der kann alles was benötigt wird, hat WLAN und Bluetooth und kann sich auch schlafen legen.
Da gibt es sogar Dev-Module mit integrierter Ladeschaltung für Lithium-Akkus, da würde eine Zelle ausreichen.
Der ESP32 läuft auf 3,3V und hat ca. 30 GPIO als Dev-Modul für unter 10 Euro mit USB Prog.-Port.
Als Sensor eventuell einen BME280 für Luftdruck, Luftfeuchte und Temp der kann auch I2C und 3,3V die anderen Sensoren müsste man dann mal schauen.
Spannendes Projekt.

Gruß How
 
Very cool
Maybe you can post in English .
I have some trouble to understand the I2C interrupt you talk about.

Why not a simple NodeMcu ?

By.
 
Hi Bernard,

Wemos/Lolin D1 Mini is pretty similar to NodeMCU as I understood.
But this is a really power hungry beast, so it can't run on batteries for long time. I need two pin-change interrupts, one for wind speed (anemometer) and one for rain gauge (tipping bucket). Also, I need two analog in for monitoring battery and solar module voltage. The wind vane currently consists of 8 Reed switches which give me 16 discrete positions (if magnet is between two reed switches, both gets triggered.) This results in additional eight digital inputs.

As far as I know, NodeMCU doesn't have enought inputs, Wemos D1 mini definetly doens't have enough. Because temp/hummidity/pressure is collected by BMP280 or similar, these devices communicate via I2C. Because Attiny nearly needs no energy, I want to use them to collect GPIO Interrupts of anemometer and rain gauge. Depending on which one you use, you get lots of IO pins both analog and digital. Also, you can use ATTINY (and others for sure) to create your own I2C device. This way, you only need two GPIO on your NodeMCU, Wemos or even bare ESP Mdoule.

Because electronic and software is not done right now, I'm free for other ideas.

But the 3D design doesn't relate to any electronics. If you want to build your own, put electronics like you want. I've seen people using compass modules or continuous turn potentiometer as wind vane. Others trust in DH11 and other sensors to collect environment data. So use what you're familiar with.
 
wow, genau das Project was ich auch noch auf der ToDo Liste habe und Deine Umsetzung ist interessant und ich würde mich gerne an dem Project beteiligen.
könntest Du auch die stl Dateien zum Drucker zur Verfügung stellen?

Gruß
Flo
 
Für alle, die es interessiert, die Wetterstation ist gewaltig gewachsen. Ich habe alle Teile gedruckt und es passt. Elektronik und Software sind noch nicht fertig, aber schon weit gediehen.

For all of you interested in this project, I made slow but good progress. Al parts are printed and fits well together. Electronics and software is not complete now but mostly done.

https://www.thingiverse.com/thing:3718078
 
Sieht super aus. Trotzdem würde ich irgendwo eine transparente Fläche vorsehen wo man einen Licht und einen UV Sensor vorsehen kann. Auch ein Luftsensor wäre interessant.
Ich selber habe diese Wetterstation hier: https://www.elektormagazine.com/labs/firmwareupdate-esp32-weather-station-180468 Mir ist das MQQT Protokol wichtig

Nur hat da die Software noch Kinderkrankheiten (Regenmenge und einige Sensoren funktionieren noch nicht) und ich habe nicht genug Ahnung dafür.
Sehe bei dir nur noch ein Stromsensor vor und ein Relais für das Laden.
Leider ist bei meiner Wetterstation nur ein Spanungsteiler vorhanden der die Akkuspannung messen tut.
Nachts will er dann Laden weil weil die Spannung zurück geht. Wenn aber vom Solarpaneel nichts kommt bricht dadurch die Spannung zusammen.
Ich habe es gelöst indem ich mir ein Solarlademodul bestellt habe.

eBay-Artikelnummer:
292992658662

Im Prinzip fehlt eine 2 Möglichkeit um die Solarspannung zu messen und ein Strommodul um den Ladestrom zu messen. Alternativ könnte man sagen das ein Laden nur dann möglich ist wenn der Lichtsensor feststellt das die Sonne vorhanden ist.

Gruß
Uwe
 
Hallo Uwe,

Die Station soll später per MQTT Daten senden. Lässt sich mit dem Wemos ja leicht lösen.
Luftsensor würde ich bei Bedarf mit in den Stevenson Screen integrieren. Wobei mir nicht klar ist, was ich damit messen soll.

Lichtsensor habe ich hier liegen aber leider vergessen zu integrieren. Könnte man ggf auch in den Stevenson integrieren und zur Seite oder nach unten schauen lassen. Nach etwas kalibrieren könnte man da was messen.

Was ich aber nicht verstanden habe ist dein Einwand zum Laden. Das Solarmodul hängt an einem 5V Spannungsregler und einer Diode direkt an der Batterie, da kommen 4,3V an . Das sind drei NiMh die per Trickle Charge geladen werden.

Warum muss hier aus deiner Sicht der Akku vom Rest getrennt werden und warum bricht bei dir die Spannung ein, wenn du nachts laden willst?
Spannung von Batterie und Solar wollte ich mit einfachen Spannungsteiler messen. Aufgabe für die ATTINYs, die Wind, Regen und Windrichtung ermitteln.
 
Das Laden ist bei der ELV Station ist anders gelöst. Dort ist vorgesehen das ein 12V Akku verwendet wird und ein 12V Solarmodul.
Das Laderelais wird einfach eingeschaltet wenn eine gewisse Akkuspannung unterschritten wird.
Das führt dazu das Nachts versucht wird zu laden obwohl es dunkel ist. Der Akku ist dann tief entladen worden weil eine abschaltung der Wetterstation fehlt.
Mit dem Luftsensor wird Feinstaub gemessen https://www.elektormagazine.de/labs/esp32-weather-station-180468#/comments/labs/1774
Gruß Uwe
 
Hallo Paddy,

Sehr schönes Projekt.
Gibt es schon wieder etwas neues dazu?
Wie weit bist du mit der Elektronik?

Michael
 
Hallo,

die Software ist soweit durch. Zumindest die Software für die ATTINYs sind jetzt fertig:
1. ATTINY85 zum Messen von Wind und Regen
2. ATTINY85 zum Messen der analogen Spannung der Batterie
3. ATTINY24 zum messen der Windrichtung

Jeder für sich klappt super. Auch die drei Tinys zusammen arbeiten, aber nicht zuverlässig. Spätestens wenn der BME280 Sensor dazu kommt, ist Schluss.
Da gibt es irgendwelche Probleme mit dem I2C Bus. Es wird von allen Geräten nur noch quatsch gesendet (kein Adresskonflikt). Pullup Widerstände habe ich weggelassen, die müssten am BME280 Sensor bereits vorhanden sein.Verdrillt sind auch alle Leitungen. Sobald einer der ATTINY85 dazu kommt, geht nix mehr. Die ATTINY85 (beide gleichzeitig) funktionieren aber.

Ich vermute es hat mit der Geschwindigkeit auf dem I2C Bus zu tun. Ohne dem BME280 klappen alle drei Tinys. Mit dem BME nur der ATTINY24
 
Hallo zusammen,

der I2C Bus macht immer noch Probleme. Manchmal läuft er 15 Minuten und mehr gut, dann ist plötzlich wieder Schluss. Ich habe mich aber entschlossen, den Code nun zu veröffentlichen. Grundsätzlich läuft es ja. Ihr findet alles hier https://github.com/PaddyCube/WirelessWeather
Es wäre nett, falls mir jemand einen Wink geben könnte, warum ich über I2C plötzlich nur unsinnige Daten erhalte.
 
Hi Paddy,
die Abschlusswiderstände am I2C Clock und Data hast Du drinne? Die sind wichtig für die richtige I2C Funktion.
Bist Du Dir sicher, dass das BME280 Modul Abschlusswiderstände drauf hat, macht ja eigentlich keinen Sinn, da die ja nicht wissen können, wie viele Slaves am I2C hängen.

Wieso hast Du mehrere ATTiny drinne, ich würde einen ESP32 nehmen, der hat mit I2C keine Probleme und kann WLAN und BT und hat richtig Wums. Den kann man auch mit Arduino programmieren und kostet nicht viel.

Ich habe einen ESP32 mit BME680, BME280 und 6 weiteren I2C am laufen, das alles mit Display und ohne das es Geschwindigkeitsprobleme gibt.

Bin auch am überlegen, ob ich mit ne WLAN Wetterstation baue, der BME680 kann alles was der BME280 kann, zusätzlich hat er noch einen VOC Sensor für die Luftqualität. Eventuell noch einen PM2.5 Sensor rein, das wäre ne richtig umfangreiche Mess-Station.

Gruß Holger
 
Hallo,

ob der die drin hat, weiß ich nicht genau. Bisher hatten alle I2C Module diese bereits drauf. Ich habe aber auch auf dem Breadboard 4,7k Widerstände von VCC auf SCL und SDA gesetzt. Machte keinen Unterschied.

Die Wetterstation soll mit Batterien betrieben werden. Die ESP Module machen jeden Akku in kurzer Zeit platt. Daher muss das Modul die meiste Zeit schlafen. Die ATTINY schlafen auch die meiste Zeit. Ich nehme den PIN Change Interrupt um Wind und Regen zu messen. Die Windfahne benötigt alleine schon 8 Pins und Batterie Spannung und Spannung des Solarmodul sollen auch gemessen werden. Das reichen die Wemos und NodeMCU, die ich bisher gefunden habe einfach nicht mehr aus.
 
Hi Paddy,
ja sparsam ist der ESP32 nicht, allerdings hat er auch einen Sleepmode und die ca. 30 GPIO sollten eigentlich für alle Funktionen ausreichend sein. Analogeingänge gibt es auch einige, allerdings nicht besonders genau obwohl 10Bit breit.
Da meine Wetterstation aber sowieso 230V Zugang hat wegen der Ardumower-Ladestation, ist die Spannungsversorgung bei mir kein Thema. Bekommt halt ein kleines 5V Netzteil.
Mit Deinem I2C Problem kann ich leider nicht weiter helfen, eventuell mal die Signale mit einem Oszi anschauen, ob die Flanken und Pegel passen.
Hat der ATTiny nicht 5V? Der BME280 arbeitet doch mit 3,3V, eventuell ein Problem mit den Pegelumsetzern?
Habe gerade gesehen, dass Du ein Breadboard im Einsatz hast, das ist mit I2C keine gute Lösung, da hatte ich aiuch schon Ärger.
Gruß Holger
 
Der ATTINY läuft mit nahezu jeder Spannung, je nach Version sogar bis 1,8V runter. Bei mir läuft alles mit 3,3V.
Pullups für SCL und SDA habe ich auch drin, macht aber keinen Unterschied. Zum testen habe ich auch mal einen anderen WEMOS genommen und sogar eine andere Platine (habe noch eine Platine für WEMOS mit I2C Steckplätzen). Auch hier das gleiche Problem. Ich verstehe es echt nicht mehr. Die Spannungsquelle ist auch egal, entweder meine Platine, direkt über eine 18650 Zelle oder per USB, immer das gleiche Problem. Tippe fast auf ein Softwareproblem bei den ATTINYs, aber da komme ich nicht recht weiter.

Ich habe auf Github nun auch mal den aktuellen Schaltplan hochgeladen. Im Anhang auch noch mal als PDF
Attachment: https://forum.ardumower.de/data/media/kunena/attachments/2946/Schematics.pdf/
 
Zuletzt bearbeitet von einem Moderator:
Kurzes Update von mir. Jetzt läuft alles wunderbar seit etwa zwei Stunden.
Die Spannungswandler vom Typ MCP1702 benötigen am Eingang und am Ausgang je 1uF Keramikkondensator. Ich hatte hier aber 4,7uF Elkos. Habe nun die Kerkos einfach parallel zu den Elkos gepackt, jetzt geht es.
Außerdem habe ich den Code aufgeräumt und wieder auf TinyWireS umgestellt. Somit bleibt noch viel Platz auf den ATTINYs für Ergänzungen. Die Wire Bibliothek die mit dem SpenceKonde TinyCore kommt funktioniert zwar super, belegt aber irre viel vom knappen Speicher.

Falls es jemanden interessiert, es liegt alles im Git Repository. Es wird nun Zeit, die Station zusammen zu bauen und draußen zu platzieren.
 
Hallo zusammen,

die Station ist nun in den Garten gewandert und hat das erste Gewitter heil überstanden. Hier noch ein Video, damit ihr mal seht, wie sie aussieht
 
Zuletzt bearbeitet:
Oben