Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Automatisierter Garten

Komponenten und Verbrauchsmaterialien

Arduino UNO
× 1
Raspberry Pi 2 Model B
Alles sollte funktionieren
× 1
Raspberry Pi Kameramodul
× 1
Arduino Ethernet Shield 2
× 1
Relais (generisch)
× 1
OpenBuilds-Drahtkabel - am Fuß
× 1
Fotowiderstand
× 1
Wasserpumpe (generisch)
× 1
Fan (allgemein)
Ich habe das von einem alten Computer verwendet.
× 1
Allzwecktransistor NPN
× 1
MicroSD-Karte (generisch)
16 GB für Zeitraffer
× 1

Apps und Onlinedienste

Arduino-IDE
Raspberry Pi Raspbian
win32diskimager
Putty
myDevices Cayenne

Über dieses Projekt

Dies ist das zweite Projekt mit meinem automatisierten Garten, aber dieses Mal wird alles von Cayenne gesteuert, so dass es viel einfacher wird. Außerdem habe ich einen Raspberry Pi hinzugefügt, um ein Zeitraffer-Video zu machen.

Einrichten des Arduino

Um unseren Garten zu überwachen, habe ich einige Geräte verwendet, die hilfreich sein können. Denken Sie vor dem Start daran, das Ethernet-Shield mit dem Arduino zu verbinden.

Verbindungen

Bodenfeuchtigkeit: Um zu überprüfen, ob die Pflanzen Wasser brauchen.

  • VCC:5 V
  • GND:GND
  • A0:A1

Der Fan:Ich Wenn es zu heiß wird, wird es aktiviert oder nur um etwas frische Luft zu spenden.

  • Ein Draht geht vom Widerstand zu Pin 3-Der GND des Lüfters geht auf den mittleren Pin des Transistors.
  • Das + des Lüfters geht an das Relais (mittlerer Pin) Der letzte Pin des Transistors geht an GND.
  • Die Diode geht an den mittleren Pin des Transistors und an GND.

Die Wasserpumpe: Es wird mit der Bodenfeuchtigkeit aktiviert.

  • Das + geht auf die Mitte des Relais und GND auf GND der Stromquelle.

Fotowiderstand (optional): Mit diesem Teil können wir messen, ob genügend Licht im Raum ist.

  • Ein Teil ist mit A0 verbunden, wobei der Widerstand mit Masse verbunden ist.
  • Der andere an die 5V.
  • Die Anode (+) geht zum Relais. Das andere an GND des Netzteils.

Licht:

  • Die Anode (+) geht zum Relais. Das andere an GND des Netzteils.

Feuchte-/Temperatursensor: Für dieses Gerät ist ein gewisser Code erforderlich, damit Cayenne ordnungsgemäß funktioniert.

  • VCC:3,3 V
  • GND:GND
  • DAT:digitaler Pin 8

Wasserstandssensor:

  • VCC:5V
  • GND:GND
  • SIG:A2

Endmontage

Ich habe in der Grafik 2 Relais verwendet, da Fritzing noch kein 4-Kanal-Relais hat. Für das Relais habe ich nur ein 12-V-Netzteil verwendet. Ich habe die positiven und negativen Drähte getrennt und dann 3 Drähte vom Plus gelötet und jedes Teil am Relais angeschlossen. Einer reicht, da sich nicht alles gleichzeitig einschaltet.

Ich habe ein 5V Netzteil für das Arduino RELAY verwendet:

  • VCC:5V
  • GND:GND
  • IN1:PIN2 Aktiviere das Licht
  • IN2:PIN5 Wasserpumpe aktivieren
  • IN3:keine IN4
  • PiN4:Aktiviere den FAN

Cayenne-Setup

Hier sehen wir, wie Sie Cayenne konfigurieren, was sehr einfach ist.

  • Erstelle zuerst hier ein Konto.
  • Dann sollten Sie Ihr Ethernet-Shield mit einem RJ45-Kabel verbunden haben.
  • Hier ist der Code zum Verbinden mit Cayenne und auch zum Konfigurieren des Brumm-/Temperatursensors.

Dieser Code funktioniert für den W5100-Schild Der Code ist auf Cayenne für andere Ethernet/WiFi-Schilde verfügbar. Vergessen Sie auch nicht, Ihr Token hinzuzufügen Sie erhalten es, nachdem Sie Ihr Konto erstellt haben.

#include "DHT.h"//#define CAYENNE_DEBUG // Kommentar entfernen, um Debug-Meldungen anzuzeigen#define CAYENNE_PRINT Serial // Auskommentieren, um Ausdrucke zu deaktivieren und Platz zu sparen#include 

# definiere DHTPIN 8 // mit welchem ​​digitalen Pin wir verbunden sind#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321

#define VIRT_TEMP V1#define VIRT_HUM V2

// Cayenne-Authentifizierungstoken. Dies sollte vom Cayenne Dashboard.char Token[] ="Ihr Token" erhalten werden;

DHT dht(DHTPIN, DHTTYPE);unsigned long prev_DHT_refresh, interval_DHT_refresh =1000;

void setup () {Serial.begin (9600); Cayenne.begin(token);

dht.begin();}void loop(){ Cayenne.run();

getDhtValues();

}

void getDhtValues() { unsigned long now =millis(); if (now - prev_DHT_refresh> interval_DHT_refresh) { // Das Auslesen von Temperatur oder Luftfeuchtigkeit dauert ca. 250 Millisekunden! // Sensormesswerte können auch bis zu 2 Sekunden alt sein (es ist ein sehr langsamer Sensor) float h =dht.readHumidity (); // Temperatur als Celsius lesen (Standard) float t =dht.readTemperature (); // Prüfen, ob Lesevorgänge fehlgeschlagen sind if (!isnan(h) &&!isnan(t)) { Cayenne.virtualWrite(VIRT_HUM, h); Cayenne.celsiusWrite(VIRT_TEMP, t); } prev_DHT_refresh =jetzt; }}

Geräte in Cayenne

Wir sind fast fertig mit dem Arduino. Jetzt ist es der einfache Teil. Wir werden alle Geräte auf Cayenne hinzufügen.

Gerät hinzufügen -> Benutzerdefiniertes Widget

Wählen Sie die Art von Widget aus, die Ihnen gefällt. Ich habe ein Diagramm für Luftfeuchtigkeit und Wasserstand verwendet, ansonsten habe ich den Wert verwendet. Für den Feuchtigkeits- und Temperatursensor verwenden wir einen virtuellen Pin:

  • Temp:Vpin1
  • Luftfeuchtigkeit:VPin2

Für das andere Gerät, anstatt den virtuellen Pin zu wählen, nehmen Sie Analog mit dem Pin-Link dazu. Gleiches Verfahren, aber dieses Mal in Aktoren wählen Sie dann den Pin des Arduino, der mit dem Relais für die Licht- / Lüfter- / Wasserpumpe verbunden ist.

Ereignis und Auslöser

Nachdem wir nun das Dashboard haben, werden wir die Trigger einrichten:

  • Wasserpumpe: Dadurch wird die Pumpe eingeschaltet, wenn die erkannte Bodenfeuchtigkeit zu trocken ist. Beachten Sie, dass ich 2 Auslöser verwendet habe:einen zum Starten der Wasserpumpe und einen zum Stoppen.
  • Wasserstand: Ein hoher Wert bedeutet, dass Wasser fehlt. Hier erhalten wir eine E-Mail, um uns zu benachrichtigen.
  • Veranstaltungen: Ich habe 4 Ereignisse eingerichtet, eines zum Starten des Lichts am Morgen und eines zum Stoppen am Abend und 2 zum Ein- und Ausschalten des Lüfters.

Einrichten des Raspberry Pi

Lassen Sie uns eine Zeitrafferaufnahme des Pflanzenwachstums machen.

3 Software:

  • Raspbian
  • Win32diskimager zum Brennen des Images auf die SD-Karte
  • Putty zum Herstellen einer Remote-Verbindung zum Raspberry WIN32 Disk Imager:

Installieren Sie es nach dem Herunterladen. Öffne es:

1. Sie sehen "Gerät". Im Allgemeinen ist die Standardeinstellung gut (wenn Sie nur die SD-Karte angeschlossen haben)

2. Klicken Sie auf den Ordner mit dem blauen Symbol und wählen Sie das heruntergeladene Raspbian-Jessie-Image aus

3. Klicken Sie auf Schreiben und fertig. Sie können nun die Karte in den Raspberry einstecken.

Spachtelmasse: Es ermöglicht uns, eine Verbindung über SSH herzustellen, Putty zu öffnen (keine Installation erforderlich).

  • Internetkabel mit dem Raspberry verbinden
  • Sie müssen die IP des Raspberry 2 ganz einfach finden:
  • Verbinden Sie sich mit Ihrer Box-Schnittstelle, um das Gerät mit der IP zu sehen
  • Verbinde den Touchscreen und die Tastatur, gehe zum Terminal und dann ifconfig. Geben Sie nun in Putty die IP-Adresse ein. Es wird etwa 192.168.0.3 sein und dann eingeben.
  • Es wird Sie um Vertrauen bitten, klicken Sie auf Ja (Bild).
  • Login:pi , Passwort:Himbeere . Lassen Sie die Fenster auf der Seite, wir kommen später hierher zurück.

Jetzt, da wir den Raspberry laufen haben, sind ein paar Updates erforderlich, also füge in Putty den Befehl ein:

sudo apt-get updatesudo apt-get upgrade 

VNC:

Wenn Sie keinen Bildschirm haben, um Ihren Raspberry mit der Fernbedienung zu verbinden, installieren Sie VNC.

sudo apt-get install tightvncserver 

Wenn Sie mit dem Starten des Servers fertig sind:

vncserver:1 

Und laden Sie vncviewer auf Ihren Computer herunter, um eine Verbindung herzustellen, geben Sie die IP und die Nummer des Servers ein. Es wird so aussehen 192.168.0.3:1

Cayennepfeffer: Sie können Ihren Raspberry mit Cayenne fernsteuern, müssen ihn nur installieren:

wget https://cayenne.mydevices.com/dl/rpi_03wl1tt4nt.shsudo bash rpi_03wl1tt4nt.sh -v 

Zeitraffer

Letzter Schritt! Wir können die Kamera jetzt in Putty oder in einer Terminalpaste aktivieren:

sudo raspi-config 

Gehen Sie dann zu Kamera aktivieren. Wir müssen einen Ordner erstellen, um die Bilder zu speichern:

cd /home/pi/Desktopmkdir Zeitraffer 

Nachdem wir die Webcam angeschlossen haben, erstellen wir ein Skript, um jede Stunde ein Bild aufzunehmen:

cd /home/pi/Desktop nano timelapse.sh 

Fügen Sie dies ein:

SAVEDIR=/home/pi/Desktop/timelapse/while [ true ]; do filename=-$(date -u +"%d%m%Y_%H%M-%S").jpg/opt/vc/bin/raspistill -o $SAVEDIR/$filenamesleep 3600;done; 

Und um sicherzustellen, dass das Skript ausführbar ist:

chmod +x timelapse.sh 

Fazit

Das Tutorial war lang, aber sehr einfach, es gibt nur wenige Geräte, um die Plattform anzuschließen und zu konfigurieren. Auf dem Bild ist ein großes Durcheinander. Ich habe einen zu langen Draht verwendet. Ich werde das Ergebnis meines Zeitraffers posten, wenn die Pflanzen mit dem Wachsen fertig sind.

Rat:

Das Ethernet-Shield kann den Fehler DHCP-Fehler erhalten. Beim Versuch, eine Verbindung herzustellen, habe ich im Arduino-Forum die Lösung gefunden:Sie müssen zwei 100-Ohm-Widerstände an zufälligen Stellen löten, um Ihre Leser zu ärgern.

Code

  • Code-Snippet Nr. 1
  • Code-Snippet Nr. 9
Code-Snippet Nr. 1Arduino

#include "DHT.h"
//#define CAYENNE_DEBUG // Kommentar entfernen, um Debug-Meldungen anzuzeigen
#define CAYENNE_PRINT Serial // Auskommentieren, um Ausdrucke zu deaktivieren und Platz zu sparen#include

#define DHTPIN 8 // mit welchem ​​digitalen Pin wir verbunden sind#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321

#define VIRT_TEMP V1#define VIRT_HUM V2

// Cayenne-Authentifizierungstoken. Dies sollte vom Cayenne Dashboard.char Token[] ="Ihr Token" erhalten werden;

DHT dht(DHTPIN, DHTTYPE);unsigned long prev_DHT_refresh, interval_DHT_refresh =1000;

void setup () {Serial.begin (9600); Cayenne.begin(token);

dht.begin();}

void loop(){ Cayenne.run();

getDhtValues();

}

void getDhtValues() { unsigned long now =millis(); if (now - prev_DHT_refresh> interval_DHT_refresh) { // Das Auslesen von Temperatur oder Luftfeuchtigkeit dauert ca. 250 Millisekunden! // Sensormesswerte können auch bis zu 2 Sekunden alt sein (es ist ein sehr langsamer Sensor) float h =dht.readHumidity (); // Temperatur als Celsius lesen (Standard) float t =dht.readTemperature();

// Prüfen, ob Lesefehler fehlgeschlagen sind if (!isnan(h) &&!isnan(t)) { Cayenne. virtualWrite(VIRT_HUM, h); Cayenne.celsiusWrite(VIRT_TEMP, t); } prev_DHT_refresh =jetzt; }}

Code-Snippet #9SH
SAVEDIR=/home/pi/Desktop/timelapse/while [ true ]; do filename=-$(date -u +"%d%m%Y_%H%M-%S").jpg/opt/vc/bin/raspistill -o $SAVEDIR/$filenamesleep 3600;done;

Herstellungsprozess

  1. Raspberry Pi Universal-Fernbedienung
  2. Ein Stück Himbeer-Pi
  3. Cycle Chaser
  4. Himbeer-Pi-Dieb-Detektor
  5. Raspberry Pi-Temperatursensor
  6. RASPBERRY PI HOME AUTOMATION
  7. Raspberry Pi Automatisierte Pflanzenbewässerung mit Website
  8. MrRobot – Ubuntu Mobile App aktivierte Robotik (Raspberry Pi und Arduino beteiligt)
  9. Raspberry Pi CD-Box-Roboter
  10. Raspberry Pi Roboter über Bluetooth gesteuert