Benutzer-Werkzeuge

Webseiten-Werkzeuge


arduino:bewaesserungsautomat

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

arduino:bewaesserungsautomat [19.06.2016 08:31] – [Pin-Belegung am Arduino Due] Frickelpietarduino:bewaesserungsautomat [18.05.2023 12:15] (aktuell) – Externe Bearbeitung 127.0.0.1
Zeile 1: Zeile 1:
 ====== Arduino Bewässerungsautomat ====== ====== Arduino Bewässerungsautomat ======
-{{:arduino:screenshot_2016-06-05_08.55.33.png?300 |Die Sektion I des Gehäuses}} {{:arduino:screenshot_2016-06-05_08.54.28.png?300 |Die Sektion II des Gehäuses}} Mein [[arduino:wasserstandsanzeiger|Arduino Wasserstandsanzeiger]] ist eine feine Sache, aber warum selber gießen, wenn das auch eine Maschine erledigen kann?+Mein [[arduino:wasserstandsanzeiger|Arduino Wasserstandsanzeiger]] ist eine feine Sache, aber warum selber gießen, wenn das auch eine Maschine erledigen kann? 
 +<box 75% round red|**Achtung**>Da die Pumpen, die ich für diese Version des Bewässerungsautomats verwendet habe, nicht richtig funktionieren, werde ich im Winter 2018 eine neue Version bauen. Mehr dazu [[arduino:bewaesserungsautomat_v2|hier]].</box>
  
-<box 100% round red|**Achtung!**>Dieses Projekt ist work in progress! Alle Angaben sind vorläufig!</box> +Aufgabenstellung für Ausbaustufe I:
- +
-Aufgabenstellung in Ausbaustufe I:+
   * Es sollen die Wasserstände in vier Blumenkästen und einem Vorratsbehälter erfasst werden.   * Es sollen die Wasserstände in vier Blumenkästen und einem Vorratsbehälter erfasst werden.
   * Bei niedrigem Wasserstand in einem Blumenkasten soll automatisch Wasser aus dem Vorratsbehälter nachgefüllt werden.   * Bei niedrigem Wasserstand in einem Blumenkasten soll automatisch Wasser aus dem Vorratsbehälter nachgefüllt werden.
Zeile 13: Zeile 12:
   * Der ganze Aparillo muss ein paar Sommer im Freien überstehen können.   * Der ganze Aparillo muss ein paar Sommer im Freien überstehen können.
  
-Aufgabenstellung in Ausbaustufe II:+Aufgabenstellung für Ausbaustufe II:
   * Der Bewässerungsautomat soll über ein LC-Display und Taster über Bluetooth konfigurierbar sein. (Zum Beispiel wäre es nützlich, wenn man einzelne Sensoren ausschalten könnte.   * Der Bewässerungsautomat soll über ein LC-Display und Taster über Bluetooth konfigurierbar sein. (Zum Beispiel wäre es nützlich, wenn man einzelne Sensoren ausschalten könnte.
  
  
-Komponenten: +Verwendete Komponenten: 
-  * [[arduino:Arduino Due]] (overpowerd, aber liegt rum)+  * [[arduino:Arduino Due]]
   * [[http://www.exp-tech.de/12-etape-liquid-level-sensor-extras|12" eTape Liquid Level Sensor]]   * [[http://www.exp-tech.de/12-etape-liquid-level-sensor-extras|12" eTape Liquid Level Sensor]]
-  * 4 x unipolare Hallschalter (PIC H501) +  * unipolare Hallschalter (PIC H501) 
-  * 4 x Zahnradpumpen (6 Volt)+  * Zahnradpumpen (6 Volt)
   * Pololu 9V Step-Up/Step-Down Voltage Regulator S18V20F9   * Pololu 9V Step-Up/Step-Down Voltage Regulator S18V20F9
-  * 4 x Adafruit NeoPixel Mini PCB +  * Temperatur- und Feuchtigkeitssensor DHT22 
-  * 1 x Adafruit NeoPixel Ring - 12 x 5050 RGBW +  * [[https://learn.adafruit.com/adafruit-tsl2591/overview|Adafruit TSL2591 High Dynamic Range Digital Light Sensor]] 
-  * 1 x Adafruit NeoPixel Ring - 24 x 5050 RGBW +  * Adafruit NeoPixel Mini PCB 
-  * 1 x [[https://learn.adafruit.com/adafruit-tsl2591/overview|Adafruit TSL2591 High Dynamic Range Digital Light Sensor]] +  * Adafruit NeoPixel Ring - 12 x 5050 RGBW 
-  * 1 x Bluefruit EZ-Link - Bluetooth Serial Link & Arduino Programmer+  * Adafruit NeoPixel Ring - 24 x 5050 RGBW 
 +  * [[https://learn.adafruit.com/adafruit-tsl2591/overview|Adafruit TSL2591 High Dynamic Range Digital Light Sensor]] 
 +  * Bluefruit EZ-Link - Bluetooth Serial Link & Arduino Programmer
 ===== Mechanischer Aufbau ===== ===== Mechanischer Aufbau =====
 ==== Gehäuse der Steuerungseinheit ==== ==== Gehäuse der Steuerungseinheit ====
Zeile 80: Zeile 81:
 ===== Elektrischer Aufbau ===== ===== Elektrischer Aufbau =====
 ==== Spannungsversorgung ==== ==== Spannungsversorgung ====
-Die Stromversorgung erfolgt durch eine Niedervolt-Buchse (5,5 mm Außen- und 2,5 mm Innendurchmesser; Minus-Pol außen, Plus-Pol innen) in der Unterseite des Gehäuses. Die Versorgungsspannung ist 5 Volt. Der Arduino wird mit dem Pololu 9V Step-Up/Step-Down Voltage Regulator S18V20F9 über den VIN-Pin mit 9 Volt versorgt.+Die Stromversorgung erfolgt durch eine Niedervolt-Buchse (5,5 mm Außen- und 2,5 mm Innendurchmesser; Minus-Pol außen, Plus-Pol innen) in der Unterseite des Gehäuses. **Die Versorgungsspannung ist 5 Volt.** Sie wird über ein Netzteil von Meanwell geliefert. Der Arduino wird mit dem Pololu 9V Step-Up/Step-Down Voltage Regulator S18V20F9 über den VIN-Pin mit 9 Volt versorgt.
  
 In der Sektion I des Gehäuses ist außerdem eine Stromverteilerplatine untergebracht. Stromverteilerplatinen erleichtern die Verkabelung erheblich, da keine Kabelpeitsche gelötet werden muss. Außerdem können bei Bedarf weitere Verbraucher angeschlossen werden. In der Sektion I des Gehäuses ist außerdem eine Stromverteilerplatine untergebracht. Stromverteilerplatinen erleichtern die Verkabelung erheblich, da keine Kabelpeitsche gelötet werden muss. Außerdem können bei Bedarf weitere Verbraucher angeschlossen werden.
  
-Um die Neopixel vor Spannungsspitzen zu schützen (siehe dazu: https://learn.adafruit.com/adafruit-neopixel-uberguide/power) und die Spannung zu glätten wird ein Elko (10 V, 2200 Mikrofarrad) parallel geschaltet.+Um die Neopixel vor Spannungsspitzen zu schützen (siehe dazu: https://learn.adafruit.com/adafruit-neopixel-uberguide/power) und die Spannung zu glätten ist ein Elko (10 V, 2200 Mikrofarrad) parallel geschaltet.
  
-==== Ansteuerung der Motoren mit MOSFETs ==== +==== Ansteuerung der Pumpen mit MOSFETs ==== 
-Geschaltet werden die Pumpen mit einem FQP30N06L, der über einen Widerstand mit 470 Ohm an dem PWM-Ausgang des Arduinos angeschlossen ist. An den Pumpen sindFreilaufdioden (1N5817) angebracht.+{{:arduino:img_0985.jpg?100 |Die vier MOSFETs zur Ansteuerung der Pumpen}} Geschaltet werden die Pumpen mit einem FQP30N06L, der über einen Widerstand mit 470 Ohm an dem PWM-Ausgang des Arduinos angeschlossen ist. Das Gate ist über einen Widerstand mit 100 kOhm auf Masse gelegt. An den Pumpen sind Freilaufdioden (1N5817) angebracht.
 ==== Hallschalter ==== ==== Hallschalter ====
 {{:arduino:img_0947.jpg?100 |Hallschalter mit Kabeln}} Für die Messung des Wasserpegels in den Blumenkästen kommen unipolare Hall-schalter (H501) zum Einsatz, die durch einen Neodymmagnet in einem Schwimmer geschaltet werden. Die Hallschalter werden mit 5 Volt betrieben. Nähert sich ein magnetischer Südpol, schaltet der Hallschalter den Signalpin auf GND. Im Arduino muss der interne Pullup-Widerstand aktiviert werden (INPUT_PULLUP), damit sauber zwischen HIGH und LOW differenziert werden kann (mehr zu den Pullups im [[https://www.arduino.cc/en/Tutorial/DigitalPins|Arduino-Tutorial]]). {{:arduino:img_0947.jpg?100 |Hallschalter mit Kabeln}} Für die Messung des Wasserpegels in den Blumenkästen kommen unipolare Hall-schalter (H501) zum Einsatz, die durch einen Neodymmagnet in einem Schwimmer geschaltet werden. Die Hallschalter werden mit 5 Volt betrieben. Nähert sich ein magnetischer Südpol, schaltet der Hallschalter den Signalpin auf GND. Im Arduino muss der interne Pullup-Widerstand aktiviert werden (INPUT_PULLUP), damit sauber zwischen HIGH und LOW differenziert werden kann (mehr zu den Pullups im [[https://www.arduino.cc/en/Tutorial/DigitalPins|Arduino-Tutorial]]).
  
 ==== DHT22 ==== ==== DHT22 ====
-Um über eine erhöhte Feuchtigkeit im Gehäuse gewarnt zu werden, ist ein DHT22 in der Gehäusesektion I verbaut. Der Sensor kann direkt an einen digitalen Eingang angeschlossen werden, es muss aber der interne Pullup-Widerstand (INPUT_PULLUP) aktiviert werden.+{{:arduino:img_0982.jpg?100 |Der DHT22 ist das weiße Kästchen neben dem Spannungsregler}} Um über eine erhöhte Feuchtigkeit im Gehäuse gewarnt zu werden, ist ein DHT22 in der Gehäusesektion I verbaut. Der Sensor kann direkt an einen digitalen Eingang angeschlossen werden, es muss aber der interne Pullup-Widerstand (INPUT_PULLUP) aktiviert werden.
  
 ==== TSL2591 ==== ==== TSL2591 ====
Zeile 117: Zeile 118:
  
 ===== Pin-Belegung am Arduino Due ===== ===== Pin-Belegung am Arduino Due =====
-Im Folgenden ist die Pin-Belegung am Arduino dokumentiert. Um Verwechselungen vorzubeugen, ist außerdem die Farbe der Kabel der Signalleitungen dokumentiert.+{{ :arduino:img_1009.jpg?300|Belegung der Pins am Arduino}}Im Folgenden ist die Pin-Belegung am Arduino dokumentiert. Um Verwechselungen vorzubeugen, ist außerdem die Farbe der Kabel der Signalleitungen dokumentiert.
  
  
Zeile 174: Zeile 175:
 Ein Programm zu erstellen, das die Hallschalter überwacht und bei Bedarf die entsprechende Pumpe aktiviert ist ziemlich einfach ([[Bewässerungsautomat:Programmversion 0.1 alpha|Programmversion 0.1 alpha]]). In ([[Bewässerungsautomat:Programmversion 0.2 alpha|Programmversion 0.2 alpha]]) wurde die Einbindung des LC-Displays verworfen und die LEDs durch [[arduino:neopixels|Neopixels]] ersetzt. [[bewaesserungsautomat:programmversion_0.3|Programmversion 0.3]] wurde durch eine ganze Reihe verschiedener Funktionen erweitert. Ein Programm zu erstellen, das die Hallschalter überwacht und bei Bedarf die entsprechende Pumpe aktiviert ist ziemlich einfach ([[Bewässerungsautomat:Programmversion 0.1 alpha|Programmversion 0.1 alpha]]). In ([[Bewässerungsautomat:Programmversion 0.2 alpha|Programmversion 0.2 alpha]]) wurde die Einbindung des LC-Displays verworfen und die LEDs durch [[arduino:neopixels|Neopixels]] ersetzt. [[bewaesserungsautomat:programmversion_0.3|Programmversion 0.3]] wurde durch eine ganze Reihe verschiedener Funktionen erweitert.
  
-In Programmversion 0.4 wurde die Steuerung der Pumpen auf PWM umgestellt. In Programmversion 0.5 soll der Code so umgeschrieben werden, dass die NeoPixel nicht bloß ein- und ausgeschaltet werden können, sondern die Helligkeit pulsiert werden kann. Dafür ist es nötig, auf den Befehl delay() zu verzichten und stattdessen den Befehl millis() zu verwenden ([[bewaesserungsautomat:programmversion_0.5|Programmversion 0.5]]).+In Programmversion 0.4 wurde die Steuerung der Pumpen auf PWM umgestellt. In Programmversion 0.5 soll der Code so umgeschrieben werden, dass die NeoPixel nicht bloß ein- und ausgeschaltet werden können, sondern die Helligkeit pulsiert werden kann. Dafür ist es nötig, auf den Befehl delay() zu verzichten und stattdessen den Befehl millis() zu verwenden ([[bewaesserungsautomat:programmversion_0.5|Programmversion 0.5]]). [[bewaesserungsautomat:programmversion_0.6|Programmversion 0.6]] beschränkt sich auf eine Verbesserung des Fading-Effekts der NeoPixel.
  
 Liste der Programmversionen: Liste der Programmversionen:
Zeile 185: Zeile 186:
  
  
-Tags: #3D-Druck #Arduino #Bewässerungsautomat #Elektronik+{{tag>3D-Druck Arduino Bewässerungsautomat Elektronik}}
arduino/bewaesserungsautomat.1466317878.txt.gz · Zuletzt geändert: 18.05.2023 09:06 (Externe Bearbeitung)