Bewässern Sie Ihre Pflanzen mit einem selbstgebauten intelligenten Bewässerungssystem, das auf PiFace und Ubidots basiert
Einer der Gründe, warum ich zu Hause hauptsächlich Kakteen habe, ist, dass ich oft vergesse, meine Pflanzen zu gießen. Deshalb habe ich dieses Projekt entwickelt, um ein elektrisches Ventil fernzusteuern und meine Pflanzen von überall aus mit meinem Handy zu bewässern.
Am Ende dieses Tutorials sollten Sie in der Lage sein, etwa Folgendes zu tun:
Materialien
- Raspberry Pi Modell B:

- Piface digital

- Kunststoff-Wasserventil – 3/4″ – 12 V Nennspannung

- Flexibles Kabel für 1 A

- DC-Hohlbuchse

- 12 VDC 1000mA Geregeltes Schaltnetzteil

- 3/4"-PVC-Gewindekupplung

- Teflonband

- Schlauch

- Sprinkler

Verbindungen
Die elektrischen Anschlüsse sind recht einfach:
- Verbinden Sie zunächst Ihr Piface mit dem Raspberry Pi, ohne dabei ein Netzteil anzuschließen.
- Folgen Sie dem unten stehenden Diagramm. Der weiße Draht ist GND und ist mit dem gemeinsamen Anschluss im Relais verbunden, der rote Draht ist mit NO (normalerweise offen) verbunden.

Bei den Hydraulikanschlüssen ist darauf zu achten, dass an jeder Verschraubung Teflonband verwendet wird, um ein Austreten von Wasser zu verhindern.
Richten Sie Ihr Ubidots Konto, Ihre Variablen und Widgets ein
Ubidots noch nicht kennen , erstellen Sie hier ein Konto .
- Wechseln Sie zum Tab „Quellen“ und fügen Sie eine neue Quelle hinzu.

- Wählen Sie Raspberry Pi als Ihre neue Datenquelle aus und füllen Sie das Formular aus.

- Klicken Sie nun auf die neue Quelle „Mein Raspberry Pi“

- Fügen Sie zwei neue Variablen mit den Namen „valve“ und „relay_state“ hinzu und vergessen Sie nicht, die Feldnamen und Einheiten zu vervollständigen.

- Notieren Sie sich die ID Ihrer Variablen:

- Notieren Sie sich Ihren API-Schlüssel, den Sie unter „ Mein Profil –> API-Schlüssel “ finden.
- Jetzt erstellen wir ein neues Widget zur Fernsteuerung des Ventils:

- Wählen Sie das Widget „Schalter“ aus und binden Sie es an die Variable „Ventil“. Dieses Widget schreibt „1“ oder „0“ in die Variable „Ventil“, die wir später von unserem Raspberry Pi abfragen.

- Fügen Sie ein weiteres Widget namens „Indikator“ hinzu und wählen Sie die Variable Valve_State aus:

- So sieht Ihr dashboard jetzt aus:

Codierung
Bevor wir mit dem Programmieren beginnen, sollten Sie Ihren Raspberry Pi bereits mit dem Internet verbunden haben. Falls nicht, lesen Sie diesen Blogbeitrag zur WLAN-Einrichtung . Jetzt können wir fortfahren: Melden Sie sich über ein Terminal an Ihrem Raspberry Pi an und konfigurieren Sie das SPI-Modul für die Kommunikation mit dem PiFace Digital.
sudo nano /etc/modprobe.d/raspi-blacklist.conf
Fügen Sie vor der Zeile spi-bcm2708 ein „#“-Zeichen ein, drücken Sie dann Strg+X, geben Sie Y ein und bestätigen Sie mit Enter. Dadurch wird SPI beim Systemstart aktiviert. Installieren und konfigurieren wir nun die PiFace Digital-Bibliothek:
sudo apt-get update sudo apt-get install python3-pifacedigitalio python-pifacedigitalio
Starten Sie Ihren Raspberry Pi neu:
sudo reboot
Super! Jetzt können wir mit der Programmierung unseres Projekts beginnen. Erstellen Sie eine neue Datei namens „valve.py“ und fügen Sie den folgenden Code ein:
sudo nano Valve.py
import pifacedigitalio #Bibliothek für pifacedigitalio #Bibliothek für Verzögerungen from ubidots import ApiClient #Bibliothek für Ubidots pifacedigital = pifacedigitalio.PiFaceDigital() #PiFace-Objekt deklarieren ##Verbindung zu Ubidots herstellen try: api = ApiClient("1fc7a56bf4b539725ace7a3f4aa623e9e9620612") #Apikey nicht vergessen valve = api.get_variable('53cd4cb07625425b70f5c21e') #Ventil-IDs hier einfügen valveState = api.get_variable("53ce95547625420403d81468") #Aktuelle Status-IDs hier einfügen except: print("Verbindung fehlgeschlagen") #Apikey und Variablen-IDs überprüfen und Internetverbindung while(True): lastValue = valve.get_values(1) # Letzten Wert des Ventils von Ubidots abrufen rele = pifacedigital.relays[0].value # Relaisstatus speichern valveState.save_value({'value':rele}) # Relaisstatus an Ubidots senden for a in lastValue: print a['value'] if(a['value']): # Relais ein- oder ausschalten pifacedigital.output_pins[0].turn_on() else: pifacedigital.output_pins[0].turn_off()
Führen Sie Ihr Programm aus:
$ sudo python valve.py
Zusammenfassung
In diesem Beispiel konnten wir ein Magnetventil mit Piface Digital steuern. Wir haben einen Aktor über das Ubidots dashboardein- und ausgeschaltet. Damit lässt sich nahezu jeder physikalische Prozess steuern, sofern er über ein Relais angesteuert werden kann.
Mit Ubidots können Sie auch Zeitreihendaten wie Signalpegel messen, Warnmeldungen ausgeben und andere Geräte steuern. Weitere Beispiele finden Sie hier:
Haben Sie weitere Projektideen? Erstellen Sie ein Ubidots Konto und setzen Sie sie in die Tat um.