Eine Wetterstation mit dem NodeMCU

Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Unilein
Fachgebiet Rauchentwicklung
*******

Beiträge: 741
Registriert seit: Apr 2014
Bewertung: 5
#1
12.08.2017, 20:44

Hallo zusammen,

aus der "angeregten Diskussion" aus einem anderen Thread ist der Wunsch entstanden, gemeinsam eine Wetterstation zu bauen. Rolleyes
Wir wollen hier nicht nur einfach Temperatur messen oder ein wenig Luftdruck und dann Werte auf einem Display anzeigen. Nein, es soll schon ein wenig mehr sein. Folgendes schwebt mir da vor:
  • Basis: NodeMCU 0.9 oder 1.0
  • SD Karte
  • Temperatursensor
  • Luftdrucksensor
  • Regenmessung
  • Windmessung
  • Luftfeuchtigkeit
  • Licht-/ UV-Messung
  • Webinterface
  • Datenübertragung an einen Webserver / eine Datenbank
  • Datenspeicherung auf SD-Karte
  • freie Konfiguration

Zwar ist der NodeMCU kein Arduino, er lässt sich aber Problemlos mit der Arduino-IDE programmieren.Außerdem funktionieren viele Bibliotheken schon direkt mit dieser kleinen Platine. Ein Hindernis könnte sein, dass der NodeMCU nicht ganz so viele I/O-Pins hat. Gegebenenfalls müssen wir das dann elektronisch lösen (SPI oder Multiplexer oder oder...)


Hier schon mal ein paar Ressourcen, die wichtig für die Umsetzung sein könnten:


Wichtig in diesem Projekt: Der NodeMCU arbeitet mit 3,3 Volt. Damit müssen dann auch alle umliegenden Bauteile zurecht kommen. Alternativ muss mit Levelshiftern gearbeitet werden. Die Stromaufnahme des NodeMCU beträgt im Übertragungsmodus bis zu 150 mA. Eine Spannungsversorgung, die ca 300 mA liefern kann, schadet also nicht. Solar wäre natürlich eine Alternative.

Das soll es für's Erste mal gewesen sein. Es kann dann jetzt los gehen :-)

Gruß
Uni
-----

Klopapier beidseitig verwenden und der Erfolg liegt auf der Hand!
(Dieser Beitrag wurde zuletzt bearbeitet: 12.08.2017, 20:46 von Unilein.)
Zitieren
tesacrep
Administrator
*******

Beiträge: 500
Registriert seit: Dec 2013
Bewertung: 2
#2
13.08.2017, 16:28

Hey,


ich sehe wir haben das sehr ähnliche Vorstellungen. Solar war bei mir eigentlich eine Voraussetzung aber das kann man noch später nachziehen.
Die meisten Teile liegen bei mir schon bereit.

Zwei Fragen habe ich dennoch.

1. Hast Du einen Vorschlag für einen UV Sensor. so einer fehlt mir noch in meinem Repertoire.
2. Hast Du schon eine Idee für ein Gehäuse? Ich hatte ja mal einen versuch meiner Station hier gepostet. Leider habe ich damals nicht alles unter bekommen.

Auch wollte ich damals unbedingt Lipo's als Batterie nehmen. Heute bin ich weiter und würde aus einer Vielzahl von Gründen Bleiakkus vorziehen. der Einzige vorteil von dem Lipo war das er mit 3,7v eine Spannung liefert die kaum noch reduziert werden muss - das spart natürlich immens Strom.

Hast Du dir schon Gedanken zur Datenspeicherung gemacht? Das wird bestimmt auch ein großes Thema. Gerne stelle ich auf dem Server eine Datenbank bereit die dann angesprochen werden kann.

Ach-ja - ich stehe natürlich zu dem Wort und würde Dir gerne einen Node MCU schicken auch wenn Du schon einen hast. Bitte schick mir doch Deine Adresse per PM.


Grüße

tesacrep
Zitieren
Unilein
Fachgebiet Rauchentwicklung
*******

Beiträge: 741
Registriert seit: Apr 2014
Bewertung: 5
#3
13.08.2017, 17:50

Hi,

zu deiner ersten Frage: Ich habe nur mal kurz in der Bucht geschaut. Dort gibt es jede Menge UV Sensoren, die passen. Auch 3,3 Volt.

Bei den Lipos bin ich ja prinzipiell skeptisch. Die 3,7 Volt auf 3,3 Volt zu bringen geht kaum noch mit einem Spannungsregler.

Ich werde vermutlich bei der Spannungsversorgung auf Solar und Bleiakku setzen. Auf 3,3 Volt komme ich dann entweder über den NodeMCU oder über 4 Spannungsregler: Von 12 auf 9 auf 5 auf 3,3 Volt (damit nicht ein Regler die ganze Arbeit machen muss). Aber das ist nur eine Idee.

Über das Gehäuse habe ich mir noch überhaupt keine Gedanken gemacht.

PN folgt... Big Grin

Gruß
Uni

Gesendet von meinem SM-G930F mit Tapatalk
-----

Klopapier beidseitig verwenden und der Erfolg liegt auf der Hand!
Zitieren
tesacrep
Administrator
*******

Beiträge: 500
Registriert seit: Dec 2013
Bewertung: 2
#4
13.08.2017, 18:31

Hey,


ach ja - gerade geschaut. Die UV Sensoren hatte ich schon mal auf Plan, hab die aber wieder verworfen weil se mir zu teuer waren. Ich finde die knacken noch immer Preislich sind aber deutlich günstiger geworden.

Ja bei den Lipo's gibt es einige nachteile/Probleme. Die fangen an mit:

- Temperatur (extreme Hitze/Kälte)
-  Lebensdauer (besonders bei Teilladungen durch Solarzellen)
- Preislich Unatraktiv
- "Teure" Laderegler

Damit sind die einfach raus.

Findest Du es überhaupt eine gute Idee die Daten "zentral" zu sammeln?
Ich dachte bisher an eine ganz simple Schnittstelle die man per URL aufrufen kann.

Also als beispiel könnte man so die Temperatur übermitteln:

http://weatherapi.micro-dev.de/index.php...&temp=22.5

Sowas würde sich einfach realisieren lassen. Soweit ich weis kommt der Arduino mit https:// nicht klar (da reicht einfach die Rechenleistung nicht).

Wenn Du Dir sowas vorstellen könntest würde ich da mal was aufsetzten.


Grüße

tesacrep
Zitieren
Unilein
Fachgebiet Rauchentwicklung
*******

Beiträge: 741
Registriert seit: Apr 2014
Bewertung: 5
#5
13.08.2017, 19:05

Hi,

Daten zentral zu sammeln ist natürlich immer eine Diskussion wert. Es geht ja immer auch um Datenschutz. Ich würde das Programm auf dem MCU aber so gestalten, dass man das konfigurieren kann, ob Daten nach extern übertragen werden. Außerdem könnte man mit einem "Handle" arbeiten. Der MCU fragt mit seinem "Namen" an, bekommt ein Handle. Und damit werden dann die Daten zurück übertragen. Zusammen mit Namen und Handle werden die Daten zum Server übertragen. Der Server prüft, ob Namen und Handle zusammen passen und speichert die Daten.

Setzt natürlich voraus, dass die jeweilige Wetterstation in der Datenbank bekannt ist.

Gruß
Uni
-----

Klopapier beidseitig verwenden und der Erfolg liegt auf der Hand!
(Dieser Beitrag wurde zuletzt bearbeitet: 13.08.2017, 19:13 von Unilein.)
Zitieren
tesacrep
Administrator
*******

Beiträge: 500
Registriert seit: Dec 2013
Bewertung: 2
#6
18.08.2017, 07:03

Hey,


ich hätte weitere Ansätze zur Datensicherheit.
Theoretisch könnten wir sagen wir lassen nur Zugriffe von festen IPs zu. Das wäre natürlich am besten allerdings bekommen die meisten haushalte von ihrem Provider alle 24h eine neue IP - deswegen wird das schwierig umzusetzen.

Was meinst Du mit namen und handle? Im Prinzip ist mein Vorschlag ja so bloß das bei mir der Name die Id ist und der handle der Token?

EDIT: Du musst den Link oben rauskopieren. So wie er aktuell dargestellt wird ist er gekürzt. Da fehlen wichtige Parameter.


Grüße

tesacrep
Zitieren
Unilein
Fachgebiet Rauchentwicklung
*******

Beiträge: 741
Registriert seit: Apr 2014
Bewertung: 5
#7
20.08.2017, 13:28

Tach,

bevor wir uns weiter über Sicherheit austauschen, sollten wir lieber ein kleines Konzept entwerfen, wie wir vorgehen wollen. Festlegen, welche Komponenten genau zum Einsatz kommen und wie wir die Hardware aufbauen wollen.

Danach machen wir uns Gedanken, wie wir die Daten der Sensoren abrufen wollen und wie wir sie speichern wollen. Und dann schauen wir mal, wie wir Daten übertragen wollen. Und dazu gehört dann auch das Thema Sicherheit.

Und zum Schluss bauen wir dann eine Webseite für die Konfiguration und natürlich eine, mit der man die Daten abrufen kann. Mit dem Smartphone oder mit einem PC.

Gruß
Uni
-----

Klopapier beidseitig verwenden und der Erfolg liegt auf der Hand!
Zitieren
tesacrep
Administrator
*******

Beiträge: 500
Registriert seit: Dec 2013
Bewertung: 2
#8
21.08.2017, 19:52

Hey,


da hast Du recht - ich will die "Schnittstelle" aber nachehr eh flexibel halten so das nicht jede Wetterstation die selben Komponenten haben muss.

Ein einheitliches "Basispaket" sollten wir aber zumindest finden.

Ich würde hier mal auf die "günstigen" Sensoren gehen damit unser Projekt auch zum nachbauen anregt Smile
Die Liste mit den "must have Sensoren" darfst du gerne kommentieren bzw ergänzen:

- Temperatur und Luftfeuchtigkeit (DHT21)
- Helligkeit (analoger Sensor)
- Luftdruck Sensor (BMP180)

Ob es nachehr diese Sensoren sein müssen würde ich jetzt nicht festlegen. Wir sollten uns aber einig sein, damit wir zumindest die selbe Codegrundlage verwenden können.

Noch eine lustige Idee hätte ich: Wie wäre es mit einem außergewöhnlichem Sensor? z.B. Feinstaub oder Co2? Das würde das Projekt vielleicht noch interessanter machen und somit mehr Aufmerksamkeit auf sich ziehen.

Ach ja an jeden der noch einsteigen will: Ich habe immer noch zwei Mikrocontroller zu verschenken - ich würde mich freuen wenn sich noch ein paar dazu entschließen dem Projekt zu folgen.


Grüße

tesacrep
(Dieser Beitrag wurde zuletzt bearbeitet: 21.08.2017, 19:53 von tesacrep.)
Zitieren
Unilein
Fachgebiet Rauchentwicklung
*******

Beiträge: 741
Registriert seit: Apr 2014
Bewertung: 5
#9
25.08.2017, 20:46

Hallo Gemeinde,


Zitat:da hast Du recht - ich will die "Schnittstelle" aber nachehr eh flexibel halten so das nicht jede Wetterstation die selben Komponenten haben muss.

Welche Schnittstelle meinst Du jetzt? Doch hoffentlich nicht die zu den Sensoren. Das wird dann nämlich reichlich komplex.

Zitat:- Temperatur und Luftfeuchtigkeit (DHT21)
- Helligkeit (analoger Sensor)
- Luftdruck Sensor (BMP180)

Ja OK. Aber aus meiner Sicht gehört Wind und evtl. Regen dazu. Und ein UV-Sensor sollte auch sein. CO2 finde ich übrigens auch spannend. Feinstaub hat zwar wenig mit dem Wetter zu tun, ist aber auch nett. Zumindest kann man argumentieren, dass der Feinstaub unter Umständen das Wetter beeinflusst.

Leider ist speziell der Feinstaub-Sensor nicht ganz billig. Aber sei's drum.

Zunächst einmal müssen wir den Kern, mit dem wir da arbeiten einmal betrachten:

Der NodeMCU arbeitet mit 3,3 Volt. Alle Sensoren, die wir nutzen müssen also mit 3,3 Volt zurecht kommen. Die Feinstaub-Sensoren, die ich gesehen habe, können das schon mal nicht. Nicht nur die Betriebsspannung spielt eine Rolle, auch die Signale (High/Low-Pegel) sind anders definiert.

Dann müssen wir einmal schauen, wie viele Pins uns zur Verfügung stehen. Es sind 11 GPIO's also 11 Pins. Zumindest theoretisch. Praktisch müssen wir davon 4 Pins abziehen, da sie von der SPI-Schnittstelle genutzt werden. Und an der hängt die SD-Karte. Sofern es Sensoren gibt, die SPI können, könnten wir diese am SPI betreiben. Was ich so gesehen habe, ist aber recht dünn. Wir gehen also mal lieber von 7 Pins aus.

Der NodeMCU hat 2,5 serielle Schnittstellen. 5 Pins werden dafür benötigt (3 x TXD, 2 x RXD). Dummerweise sind das auch GPIO's. Sollten wir also serielle Datenübertragung einbauen müssen, würden wir, sofern wir bidirektional kommunizieren wollen, mindestens 2 Pins verlieren. Manche Sensoren benötigen serielle Kommunikation. Wäre also zu prüfen.

Es gibt am NodeMCU nur EINEN analogen Pin. Das ist Pin A0. Diesen kann man NICHT als digitalen Pin nutzen. Da gehen also nur analoge Geschichten. Gut zu wissen, falls wir ein analoges Signal von einem Sensor bekommen (Evtl. bei einem Helligkeitssensor? Oder bei einem UV-Sensor?).

Alle GPIO's können übrigens PWM. Gut, beim Auslesen von Sensoren bringt das nix, aber wer weiß, wozu es gut sein kann.

Wenn wir die Sache nicht zu komplex machen, hätten wir 6 Pins frei. Bei Nutzung von SPI könnten wir zwar mehr anschließen, jedoch benötigen wir für jedes Teil am SPI einen Chipselect-Pin. Alternativ geht ein Portexpander. Da geht mehr. Auf jeden Fall verlieren wir bei SPI trotzdem Pins.

Nunja... Ich denke, wir sollten jetzt mal wirklich zusammenstellen, was wir tun wollen. Also welche Sensoren zum Einsatz kommen. Tja und dann könnten wir anfangen zu überlegen, welcher Sensor an welchem Pin hängt.

Danach könnten wir uns die Programmstruktur überlegen. Darüber habe ich mir bereits Gedanken gemacht und mir eine nette Multitasking-Sache ausgedacht. Natürlich fehlt dann noch das Web-Interface, aber ich denke, es macht Sinn, das zuletzt zu bauen. Denn das ist ja ganz genau auf die vorhandenen Möglichkeiten abzustimmen und wenn es nett aussehen soll, auch am aufwändigsten anzupassen, falls sich zwischendurch etwas ändert.

Ach ja... Und wir benötigen eine Zeitquelle. Wir wollen schließlich wissen, WANN welches Wetter ist, bzw war. Da könnten wir entweder einen NTP-Server aus dem Internet nutzen oder alternativ ein Uhrenmodul anschließen.... Was uns wieder GPIO's kosten würde.

Gruß
Uni
-----

Klopapier beidseitig verwenden und der Erfolg liegt auf der Hand!
Zitieren
Unilein
Fachgebiet Rauchentwicklung
*******

Beiträge: 741
Registriert seit: Apr 2014
Bewertung: 5
#10
25.08.2017, 22:06

Hallo zusammen,

ich nochmal :-)

Das folgende Bildchen zeigt die Pin-Funktionen des NodeMCU noch einmal auf:

   
-----

Klopapier beidseitig verwenden und der Erfolg liegt auf der Hand!
Zitieren


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste