Arduino Basteleien – Mein Plan

Arduino UNO

Beim 30c3 vor zwei Jahren habe ich das erste Mal etwas gelötet (MaxiLamps) und ein Arduino Starterkit ausprobiert. Zu meinem Geburtstag 2014 habe ich dann ein paar Sensoren erhalten, da ich den Plan geäussert hatte, unsere Gartenbewässerung mit Arduino zu organisieren (Danke nochmal dafür 🙂 ). MaxiLamps habe ich ganz putzig weiterentwickelt aber der Arduino ist mit Zubehör wegen Zeitmangel im Schrank geblieben.

Der Garten hat in der Zwischenzeit einen Wasseranschluss erhalten …

Tube

… und so war die Realisierung der Bewässerung erstmal erheblich einfacher. Anstelle einer Arduino Steuerung mit Regenwasser habe ich in 2015 eine Tröpfchenbewässerung von Gardena mit einem Bewässerungscomputer installiert. So sahen die Ergebnisse aus.

Tomatoes & Cucumbers

Vermutlich war es ganz gut, die Bewässerung zunächst mal mit herkömmlichem “Zeug” zu realisieren um ein Gefühl dafür zu bekommen, wie Bewässerung überhaupt funktioniert. Nach einem Jahr kann ich erstmal sagen:

Das Zeug von Gardena ist wirklich stabil und gut (Gardena 1874-20 Bewässerungscomputer MultiControl duo und zweimal Gardena 1399-20 Micro-Drip-System Start-Set).

Glücklicherweise ist das Drip-System sehr modular aufgebaut und ich kann es bestimmt für die Arduino Basteleien weiterverwenden.

Da das mit der Bewässerung im Garten nun gut läuft, will ich etwas anderes bauen

Plan

Ich möchte einen “autarken” Blumenkasten bauen, mit folgenden Features:

  • Wassertank
  • Pumpe/Arduino und Drip System Schläuche
  • Anbindung an WiFi
  • Stromversorgung per Solarzelle und Batterie
  • Wenn Erde trocken ist, soll gegossen werden und wenn der Tank fast leer ist, soll er einen Nachricht verschicken, damit jemand kommt und den Tank wieder füllt.

Erste Schritte

Ich habe einen Arduino Uno Rev3 (Original – Made in Italy) und ein Verbindungskabel zum PC. Auf dem PC (in meinem Fall ein Mac) braucht man die Arduino Software (IDE – Entwicklungsumgebung – kostenlos).

Arduino IDE

Der Arduino braucht Strom. Den bekommt er, wenn man ihn mit dem Verbindungkabel an den USB Port steckt. Um ein bischen warm mit dem System zu werden, habe ich heute ein kleines Programm geschrieben, dass den hello, art Morsecode auf einer blauen Leuchtdiode anzeigt.

hello, art - Morse Code

Es geht bestimmt eleganter aber dieser Code funktionierte auch 🙂

const unsigned int LED_PIN = 13;
const unsigned int LONG = 1000; 
const unsigned int SHORT = 200; 

void setup() {
  pinMode(LED_PIN, OUTPUT);
}

void loop() { 
  // H ....
  digitalWrite(LED_PIN, HIGH); 
  delay(SHORT); 
  digitalWrite(LED_PIN, LOW); 
  delay(SHORT); 
  digitalWrite(LED_PIN, HIGH); 
  delay(SHORT); 
  digitalWrite(LED_PIN, LOW); 
  delay(SHORT); 
  digitalWrite(LED_PIN, HIGH); 
  delay(SHORT); 
  digitalWrite(LED_PIN, LOW); 
  delay(SHORT); 
  // E .
  digitalWrite(LED_PIN, HIGH); 
  delay(SHORT); 
  digitalWrite(LED_PIN, LOW); 
  delay(SHORT); 
  digitalWrite(LED_PIN, HIGH); 
  delay(LONG); 
  digitalWrite(LED_PIN, LOW); 
  delay(LONG);
  // L .-..
  digitalWrite(LED_PIN, HIGH); 
  delay(SHORT);   
  digitalWrite(LED_PIN, LOW); 
  delay(SHORT); 
  digitalWrite(LED_PIN, HIGH); 
  delay(LONG); 
  digitalWrite(LED_PIN, LOW); 
  delay(LONG);
  digitalWrite(LED_PIN, HIGH); 
  delay(SHORT);   
  digitalWrite(LED_PIN, LOW); 
  delay(SHORT); 
  digitalWrite(LED_PIN, HIGH); 
  delay(SHORT);   
  digitalWrite(LED_PIN, LOW); 
  delay(SHORT); 
  // L .-..
  digitalWrite(LED_PIN, HIGH); 
  delay(SHORT);   
  digitalWrite(LED_PIN, LOW); 
  delay(SHORT); 
  digitalWrite(LED_PIN, HIGH); 
  delay(LONG);   
  digitalWrite(LED_PIN, LOW); 
  delay(LONG);
  digitalWrite(LED_PIN, HIGH); 
  delay(SHORT); 
  digitalWrite(LED_PIN, LOW); 
  delay(SHORT); 
  digitalWrite(LED_PIN, HIGH); 
  delay(SHORT); 
  digitalWrite(LED_PIN, LOW); 
  delay(SHORT); 
  // O ---
  digitalWrite(LED_PIN, HIGH); 
  delay(SHORT); 
  digitalWrite(LED_PIN, LOW); 
  delay(LONG);
  digitalWrite(LED_PIN, HIGH); 
  delay(SHORT);   
  digitalWrite(LED_PIN, LOW); 
  delay(LONG);
  digitalWrite(LED_PIN, HIGH); 
  delay(SHORT);   
  digitalWrite(LED_PIN, LOW); 
  delay(LONG);
  // Komma gibt es nicht beim Morsen
  // Leerzeichen -...- 
  // A .-
  digitalWrite(LED_PIN, HIGH); 
  delay(SHORT); 
  digitalWrite(LED_PIN, LOW); 
  delay(SHORT); 
  digitalWrite(LED_PIN, HIGH); 
  delay(LONG);   
  digitalWrite(LED_PIN, LOW); 
  delay(LONG);
  // R .-.
  digitalWrite(LED_PIN, HIGH); 
  delay(SHORT);   
  digitalWrite(LED_PIN, LOW); 
  delay(SHORT); 
  digitalWrite(LED_PIN, HIGH); 
  delay(LONG);   
  digitalWrite(LED_PIN, LOW); 
  delay(LONG);
  digitalWrite(LED_PIN, HIGH); 
  delay(SHORT);   
  digitalWrite(LED_PIN, LOW); 
  delay(SHORT); 
  // T -
  digitalWrite(LED_PIN, HIGH); 
  delay(LONG); 
  digitalWrite(LED_PIN, LOW); 
  delay(LONG);
}

 

Leave a Reply