Neuling: Sandwich-Aufbau mit Sensoren

Hallo liebe Community,

ich habe eine Frage bezüglich eines Projektes, welches ich gerne umsetzen möchte.
Und zwar geht es um eine Art Wetterstation, welche ich aus folgenden Komponenten aufbauen möchte:

  • Arduino Uno
  • Data Logging Shield um Werte mit Excel zu verarbeiten
  • DHT 22 Sensor für Temperatur und Luftfeuchte
  • Zweiter Sensor, welcher den Luftdruck misst
  • TFT-Display
  • Akkubetrieb, dieser soll wie ein Handy mit Netzstecker aufladbar sein und ein paar Tage autark sein

Ich bin absoluter Anfänger auf dem Gebiet Arduino und würde gerne mehr dazulernen. Mir schwebt ein Aufbau in der Art einer Sandwichbauweise vor: Arduino Uno; Data Logger mit integrierter RTC; TFT Display. Vom Stecklayout passen die Pins übereinander, nur ist die Frage wie ich dann an die Anschlüsse für die Sensoren und Stromversorgung komme und ob der Aufbau des alleinigen Einsteckens (Data Shield zwischen Display und Arduino) überhaupt funktioniert.
Kann ich auf diese Weise die Signale der Pins über Screw Terminals erreichen und trennen plus programmieren?Oder ratet Ihr zu einem Aufbau mit einer eigenen Platine, diese Lösung fände ich gut aber ich finde keinen Arduino Uno der auch standardmäßig Steckerpins nach unten durchführt?

Um den Aufbau möchte ich ein 3D-gedrucktes Gehäuse konstruieren um alles kompakt zu halten.

Über eine Antwort würde ich mich sehr freuen, im Netz habe ich kein passendes Beispiel mit solch einem kombinierten Aufbau gefunden.

Viele Grüße und bleibt gesund!

Flori_2121

Hallo
Du hast dir ein super Projekt ausgesucht. Hast Du bereits Erfahrung in der Programmierung innerhalb der Arduinowelt gesammelt?
Den DHT 22 Sensor würde ich gegen einen BME280 Sensor austauschen, der hat alles Anbord und aus den Sensorwerten läßt sich sehr gut der Taupunkt ableiten, wenn benötigt.

Eine Frage für mein Verständnis:
Wozu wird die TFT-Anzeige benötigt?

Wenn du mit einem Uno auskommst (Speicherplatz und Pins), dann kannst du auch einen Nano verwenden. Der hat Pins die nach unten als Stifte ausgeführt sind und können so problemlos auf eine eigene Platine aufgesteckt werden.
Der Nano ist auch Softwarekompatibel zum Uno

paulpaulson:
Hallo
Du hast dir ein super Projekt ausgesucht. Hast Du bereits Erfahrung in der Programmierung innerhalb der Arduinowelt gesammelt?
Den DHT 22 Sensor würde ich gegen einen BME280 Sensor austauschen, der hat alles Anbord und aus den Sensorwerten läßt sich sehr gut der Taupunkt ableiten, wenn benötigt.

Eine Frage für mein Verständnis:
Wozu wird die TFT-Anzeige benötigt?

Danke für die schnelle Antwort!
Programmiererfahrung habe ich noch keine, dieses Projekt soll mir den Einstieg eröffnen.
Ich wollte einen DHT22-Sensor verwenden, da dieser laut Recherchen die Temperatur auf 0,5 °C genau messen kann. Der BME 280 kommt als Drucksensor in Frage, vielleicht könnte ich durch die Redundanz des Temperaturwerts ein Fehlverhalten der Sensoren feststellen falls es auftritt.
Das TFT-Display dient der Anzeige der Messwerte, ich persönlich sehe hier einen deutlichen Mehrwert in der Anzeige anstelle eines normalen 16x2 LCDs, welches man sehr häufig ausgeführt findet.

Den Tipp von Peter solltest du nachgehen, der DHT22 ist sehr ungenau und feuchtigkeitsempfindlich.

HotSystems:
Wenn du mit einem Uno auskommst (Speicherplatz und Pins), dann kannst du auch einen Nano verwenden. Der hat Pins die nach unten als Stifte ausgeführt sind und können so problemlos auf eine eigene Platine aufgesteckt werden.
Der Nano ist auch Softwarekompatibel zum Uno

Ich persönlich sehe im Uno einen Mehrwert für zukünftige Projekte und wollte daher auf diese Lösung gehen. Zudem empfinde ich den Sandwichaufbau als sehr ästhetisch und würde mir die eigene Platine sparen. Alle Anstecker würde ich zu einer Seite führen.
Ist die Vielfalt der zur Verfügung stehenden Komponenten beim Nano (Data Shield; Displays, Bibliotheken etc.) auch so vielfältig wie beim Uno? Das verstehe ich auch als Software-/Hardwarekompatibel? :wink:

Hallo
dann mal schnell ein Tipp aus der Projektküche:
Teile dein Projekt in Funktionsblöcke auf, hierfür nutze die Vorgaben nach dem EVA-Prinzip und einen Sift und Stück Papier. Ein Blockschaltbild ist auch immer sehr hilfreich, insbesondere wenn es um die Energieversorgung geht.
So kannst du alle Funktionen einzeln Testen und danach für Kontrollstrukturen funktional-zusammenfassen.
Aber fange bitte ganz ganz einfach an und arbeite die Beispiele aus dem IDE durch und mit Chance fallen dort die ersten Teilsketche für dein Projekt mit ab. Die delay()-Funktion sollte gemieden werden, dafür gibt es Zeitgeber-Funktionen.
Welches 3D-Programm verwendest du, vllt habe ich ein Gehäuse fertig, das du an deine Anforderungen anpassen kannst?

Das mit der eigenen Platine hast du angesprochen, kommt nicht von mir.
Letztendlich ist es dein Projekt, ich würde von dem "gebastel" mit dem übereinander stecken absehen.
Wäre mir def. zu störungsanfällig.
Daher mein Vorschlag mit dem Nano, und nein, da gibt es nicht so viele Wackel-Shields.

Ok vielen Dank für Eure Auskünfte.

Wenn Ihr mir von dem DHT22 Sensor abratet, welchen Sensor mit einer Temp.genauigkeit von +/- 0,5 °C sowie der Messung der beiden anderen Zustandsgrößen könntet Ihr mir dann für mein Projekt empfehlen? Nur den BME 280?

@paulpaulson: Danke für Deine Tipps und das Angebot, ich werde mich selbst noch bisschen "reinfuchsen" :smiley:

Der BME280 ist schon ok .
Wird von mir auch mehrfach eingesetzt, bisher ohne Ausfall.

Am Anfang musst du einfach mal ein paar Erfahrungen machen. Mach aber kleinere Schritte

  • DHT 22 Sensor für Temperatur und Luftfeuchte
  • Zweiter Sensor, welcher den Luftdruck misst

Es gibt in der Tat I2C Sensoren, die alle 3 Komponenten auf einmal messen. BME280 ist gut und günstig. Kannst nehmen.

"Nachteil" sehe ich nur am I2C. Also wenn dir vorschwebt, Arduino innen, Sensor außen,dann bleib lieber bei einem DHT22 - kompatiblen Sensor. Suchbegriffe wären AM2305 oder wenns noch stabiler sein soll ein AM2306. Beides gute Sensoren. Noch billiger ist der AM2320, den solltest du aber nur innen verwenden. Für alle 3 kannst die DHT Lib verwenden und sie sind relativ unkritisch bezüglich der Kabellänge.

  • Data Logging Shield um Werte mit Excel zu verarbeiten

den Schritt würde ich zunächst mal ganz außen vor lassen. Mach deine Sensoren, dein Display. Wenn du Daten loggen willst - denk über eine vollautomatische Lösung nach. Speichere die Daten nicht lokal am Arduino sondern speichere Daten in deinem lokalen Netz oder im Internet. Dazu besorgst du dir statt dem Logging Shield ein Ethernet Shield (oder vieleicht in der Folge sogar einen anderen Microcontroller mit WLAN). Aber aus meiner Sicht hat das ein paar Monate Zeit. Nur jetzt kein Geld für ein Logging Shield ausgeben, das bringt es imho nicht (außerdem haben viele Ethernet Shields auch einen SD-Kartenslot).

Danke für Eure Hilfe.

Ich werde mich nun an einer Umsetzung mit einem Arduino Nano versuchen.

Hier habe ich eine Frage bezüglich der Pinbelegung: Ich möchte ein Display sowie ein SD-Card Data Logger verwenden, beide benutzen die SPI-Schnittstelle. Laut einem YouTube-Video ist dies auch möglich, jedoch weiß ich nicht ob ich in der Pinbelegung etwas ändern muss bzw. kann.

Folgende Pins werden belegt:
SD-Daten-Logger:
MISO -> D12
MOSI -> D11
SCK -> D13
CS -> D5

Display:
Waveshare 4,2 inch 400x300 E-Ink E-Paper Raw Display Three-color Arduino

e-Paper
Arduino
Vcc
5V
GND
GND
DIN
D11
CLK
D13
CS
D10
DC
D9
RST
D8
BUSY
D7

Oder würde solch ein Display mit den Anschlüssen am Arduino Nano funktionieren?
4.3inch e-Paper UART Module

VCCIO Red
GND Black
RXD White
TXD Green

Ich suche mir aktuell die passende Hardware zusammen.

Deine ausgesuchten Module werden per SPI gesteuert. SPI ist ein Bus, mit dem du mehrere Module treiben kannst. Somit passt die Pinbelegung.
Einzig der Pin CS unterscheidet sich.
Darüber wird das jeweilige Modul aktiviert.

flori_2121:
Ich suche mir aktuell die passende Hardware zusammen.

Wenn Du kannst, entscheide Dich für eine Variante.
Mische nicht unbedingt SPI und UART auf einem Nano.
Schon gar nicht, wenn Du die USB-Schnittstelle weiter (zum programmieren) nutzen möchtest.

SPI sind einmalig 3 PIN + jeweils 1 weiterer PIN je Device (wenn mehr als eines).
UART mag bei einem Display gehen, musst Du aber dann zusätzlich als SoftwareSerial() im Code aufnehmen.
Möglich wäre auch nur I2C.
Braucht nur 2 PIN - Steuerung erfolgt nur softwareseitig, Ansprache ist in der Hardware integriert.
Für solch langsame Sachen wie Epaper eigentlich ausreichend...

Danke für die Rückmeldung.

@Dieter: Habe ich es richtig verstanden, dass die Unterscheidung beim Pin CS bedeutet, dass ich hier für den jeweiligen Device einen unterschiedlichen digitalen Pin verwenden muss, die anderen Anschlüsse aber teilweise auf den selben Pins laufen dürfen?

@my_xy_projekt: Danke, ich verwende gleichzeitig noch I2C für andere Devices, dies beißt sich aber nicht oder? Ich werde dann auf 2 Devices SPI gehen, damit ich noch weiter die USB-Schnittstelle verwenden kann. Oder rätst du mir das Display mit zwei weiteren Devices (Sensor BME 280 und DS3231) auch über I2C zu betreiben?

flori_2121:
@Dieter: Habe ich es richtig verstanden, dass die Unterscheidung beim Pin CS bedeutet, dass ich hier für den jeweiligen Device einen unterschiedlichen digitalen Pin verwenden muss, die anderen Anschlüsse aber teilweise auf den selben Pins laufen dürfen?

Richtig, die Unterscheidung macht der CS Pin und da brauchst du je einen eigenen digitalen Pin.
Die anderen SPI Pins liegen immer auf dem selben Pin, nicht teilweise.

Paralell kannst du noch I2C betreiben, das beißt sich normalerweise nicht.

Super, danke für die Antwort Uwe!

Dann noch eine Frage zur Versorgung, hier herrscht noch etwas Unklarheit:
Der Arduino Nano wird auf der Internetseite mit einer Operation Voltage von 5V beschrieben. Jedoch besitzt er ja auch einen Ausgang mit 3,3V. Ich frage nach, da viele Devices ja mit 3,3V betrieben werden können und andere mit 5V. Ich hatte mir jetzt die herausgesucht die einen Pegelwandler integriert haben, sprich mit 3,3V oder 5V angeschlossen werden können.
Können die 3,3V Devices auch am 3,3V Pin betrieben werden oder ist es besser die Versorgung mit 5V zu machen und die Komponenten mit integriertem Spannungswandler zu nehmen? Hier wurde ich auch aus anderen Posts nicht ganz schlüssig bzw. worin der Hauptunterschied besteht.

Viele Grüße

Dann gleich noch eine Frage hinterher zur Stromversorgung, die mir jetzt aufkam:
Ich möchte das Projekt mit einem LiPo-Akku mit 3,7V versorgen, welchen man per USB-Kabel wie ein Handy an der Steckdose laden kann.

Der Akku soll das Gerät betreiben, auch parallel wenn er an der Steckdose hängt (außer es ist ausgeschaltet, dann soll nur der Akku laden). Der Akku soll jedoch automatisch die Versorgung übernehmen, wenn der Ladevorgang zur Steckdose unterbrochen wird. Hierfür habe ich einen passenden Battery Charger, welcher den Akku laden kann. Meine Frage ist nun, ob ich zum Betrieb des Arduino Nano mit diesem 3,7V Akku noch irgendwelche Hardware zum Zwischenschalten benötige, um meine Schaltung wie beschrieben umzusetzen.

flori_2121:
Super, danke für die Antwort Uwe!

Dann noch eine Frage zur Versorgung, hier herrscht noch etwas Unklarheit:
Der Arduino Nano wird auf der Internetseite mit einer Operation Voltage von 5V beschrieben. Jedoch besitzt er ja auch einen Ausgang mit 3,3V. Ich frage nach, da viele Devices ja mit 3,3V betrieben werden können und andere mit 5V. Ich hatte mir jetzt die herausgesucht die einen Pegelwandler integriert haben, sprich mit 3,3V oder 5V angeschlossen werden können.
Können die 3,3V Devices auch am 3,3V Pin betrieben werden oder ist es besser die Versorgung mit 5V zu machen und die Komponenten mit integriertem Spannungswandler zu nehmen? Hier wurde ich auch aus anderen Posts nicht ganz schlüssig bzw. worin der Hauptunterschied besteht.

Viele Grüße

Der Nano ist ein Controller, der mit 5Volt betrieben wird und somit auch 5Volt an den Pins liefert.

Hier musst du darauf achten, dass du Module anschließt, die auch an den Steuerpins 5V vertragen. Dazu musst du dir das jeweilige Datenblatt ansehen. Wenn du Module mit 3,3V daran betreiben willst, musst du die Stromaufnahme des jeweiligen Moduls berücksichtigen. Welchen Strom dein Nano an 3,3V liefert, solltest du im Datenblatt deines Nanos finden.

Betreibst du 3,3V Module am Nano, die wiederum keine 5Volt an den Pins vertragen können, benötigst du für die Datenleitungen entsprechende Levelshifter. Da musst du dann darauf achten, dass du für I2C andere Levelshifter einsetzen musst, als für SPI.
Also alles nicht ganz so einfach. :wink:

flori_2121:
.....Meine Frage ist nun, ob ich zum Betrieb des Arduino Nano mit diesem 3,7V Akku noch irgendwelche Hardware zum Zwischenschalten benötige, um meine Schaltung wie beschrieben umzusetzen.

3,7Volt sind für den Nano zu wenig. Du brauchst min. 5Volt.
Also brauchst du noch einen Stepup-Wandler, der daraus 5Volt macht.
Oder gleich eine 5V Powerbank.

Was den generellen Akkubetrieb betrifft, habe ich keine Erfahrungen. Meine Projekt laufen alle am Netz mit Netzteil.