Der Außensensor
In diesem Post möchte ich den Bau, und die Programmierung des Außensensors zeigen. Dieser besteht aus nur drei Teilen. Einem Temperatursensor, dafür verwende ich den DHT11 (hier auf Amazon) und einem kleinen Arduino/Mikrocontroller, hierfür bietet sich der Arduino Nano, oder ein preiswerter Klon dessen (hier auf amazon), an, da er zwar ein vollwertiger Arduino, inklusive einfacher Programmierung über USB ist, jedoch sehr klein ist, und nur wenig Strom verbraucht.
Zusätzlich benötigt man einen 433Mhz Sender und Empfänger Set (hier auf amazon). Über dieses kann der Außensensor die aktuelle Temperatur an den Empfänger, also letztendlich das LCD Display (hier auf amazon), senden.
Die Verbindung der Geräte mit dem Nano ist einfach: Der DHT 11 hat drei beschriftete Pins, GND muss mit dem Ground verbunden werden, S mit einem digital Pin des Arduino, und der mittlere Pin mit den +5V des Arduino Nano. Auch die Pins des 433Mhz Senders sind beschriftet, VCC mit +5V, GND mit dem Ground, und ATAD mit einem digital Pin des Arduino.
Zusätzlich benötigt man einen 433Mhz Sender und Empfänger Set (hier auf amazon). Über dieses kann der Außensensor die aktuelle Temperatur an den Empfänger, also letztendlich das LCD Display (hier auf amazon), senden.
Die Verbindung der Geräte mit dem Nano ist einfach: Der DHT 11 hat drei beschriftete Pins, GND muss mit dem Ground verbunden werden, S mit einem digital Pin des Arduino, und der mittlere Pin mit den +5V des Arduino Nano. Auch die Pins des 433Mhz Senders sind beschriftet, VCC mit +5V, GND mit dem Ground, und ATAD mit einem digital Pin des Arduino.
Der Sketch
Das Auslesen des DHT11 Temperatursensors geht über die dht11 Bibliothek, durch den Befehl DHT11.temperature(). Das Übertragen der Temperatur gestaltet sich etwas komplizierter, da der Befehl zum Senden von Daten, der verwendeten Bibliothek VirtualWire, nur bestimmte Formate akzeptiert (siehe Code).
Das Einzige, was man noch ändern muss, sind die Datenpins des DHT11 und des 433Mhz Senders.
Der fertige Code für den Sender sieht so aus:
Weitere Ausbaumöglichkeiten
Abhängig davon, ob der Außensensor über die Steckdose, oder über eine Batterie betrieben wird, könnte man die Frequenz des Sendens der aktuellen Temperatur herunterstellen. So kann man die Temperatur etwa nur jede Minute senden, und dazwischen in den Stand-by Modus gehen. Die Verwendung des Stand-by Modus mit dem Arduino, habe ich bereits hier erklärt.
Hatte ich auch probiert, funktioniert aber leider nicht.
AntwortenLöschenFehlermeldung(wenn man switch ausklammer):
wetterstation_sender.ino: In function 'void loop()':
wetterstation_sender.ino:25:33: error: cannot convert 'String' to 'char*' in initialization
Fehler beim Kompilieren.
den ganzen switch rausschmeißen und dafür..
AntwortenLöschensprintf(temperatur, "%d", temp);
.. einsetzen.
hth..
D.