Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Geautomatiseerde tuin

Componenten en benodigdheden

Arduino UNO
× 1
Raspberry Pi 2 Model B
Alles zou moeten werken
× 1
Raspberry Pi-cameramodule
× 1
Arduino Ethernet Shield 2
× 1
Relais (algemeen)
× 1
OpenBuilds draadkabel - bij de voet
× 1
Fotoweerstand
× 1
Waterpomp (algemeen)
× 1
fan (generiek)
Ik heb die van een oude computer gebruikt.
× 1
Transistor-NPN voor algemeen gebruik
× 1
MicroSD-kaart (algemeen)
16 Gb voor time-lapse
× 1

Apps en online services

Arduino IDE
Raspberry Pi Raspbian
win32diskimager
plamuur
myDevices Cayenne

Over dit project

Dit is het tweede project dat gebruik maakt van mijn geautomatiseerde tuin, maar deze keer wordt alles door Cayenne beheerd, dus het zal een stuk eenvoudiger zijn. Ook heb ik een Raspberry Pi toegevoegd om een ​​time-lapse video te maken.

De Arduino instellen

Om onze tuin in de gaten te houden, heb ik een paar apparaten gebruikt die nuttig kunnen zijn. Vergeet niet om het Ethernet-schild op de Arduino aan te sluiten voordat u begint.

Verbindingen

Bodemvochtigheid: Om te controleren of de planten water nodig hebben.

  • VCC:5v
  • GND:GND
  • A0:A1

De fan:ik Als het te heet wordt, wordt het geactiveerd of gewoon om wat frisse lucht te geven.

  • Eén draad gaat van de weerstand naar pin 3-De GND van de ventilator gaat op de middelste pin van de transistor.
  • De + van de ventilator gaat naar het relais (middelste pin) De laatste pin van de transistor gaat naar GND.
  • De diode gaat naar de middelste pin van de transistor en naar de GND.

De waterpomp: Het wordt geactiveerd met het bodemvocht.

  • De + gaat naar het midden op het relais en GND naar GND van de stroombron.

Fotoresistor (optioneel): Met dit onderdeel kunnen we meten of er voldoende licht in de kamer is.

  • Eén deel is verbonden met A0 met de weerstand verbonden met aarde.
  • De andere naar de 5V.
  • De anode (+) gaat naar het relais. De andere naar de GND van de voeding.

Licht:

  • De anode (+) gaat naar het relais. De andere naar de GND van de voeding.

Vochtigheids-/temperatuursensor: Er is enige code vereist voor dit apparaat om correct te werken met Cayenne.

  • VCC:3,3V
  • GND:GND
  • DAT:digitale pin 8

Waterniveausensor:

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

Eindmontage

Ik heb 2 relais gebruikt in de afbeelding omdat Fritzing nog geen 4-kanaals relais heeft. Voor het relais heb ik maar één 12v voeding gebruikt. Ik heb de positieve en negatieve draden gescheiden en vervolgens 3 draden van de positieve gesoldeerd en elk onderdeel op het relais aangesloten. Eén is genoeg, want niet alles wordt tegelijkertijd ingeschakeld.

Ik gebruikte een 5V voeding voor de Arduino RELAY:

  • VCC:5V
  • GND:GND
  • IN1:PIN2 Activeer het licht
  • IN2:PIN5 Activeer de waterpomp
  • IN3:geen IN4
  • PiN4:activeer de VENTILATOR

Cayenne-instelling

Hier gaan we zien hoe je Cayenne kunt configureren, wat heel eenvoudig is.

  • Maak hier eerst een account aan.
  • Dan zou je je Ethernet-shield met Rj45-kabel moeten hebben aangesloten.
  • Hier is de code om verbinding te maken met Cayenne en ook om de brom/temp-sensor te configureren.

Deze code werkt voor het w5100-schild de code is beschikbaar op cayennepeper voor andere Ethernet/WiFi-shield. Vergeet ook niet uw token . toe te voegen je krijgt het nadat je je account hebt aangemaakt.

#include "DHT.h"//#define CAYENNE_DEBUG // Verwijder commentaar om foutopsporingsberichten te tonen#define CAYENNE_PRINT Serial // Reageer hierop om afdrukken uit te schakelen en ruimte te besparen#include 

# definieer DHTPIN 8 // met welke digitale pin we zijn verbonden#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321

#define VIRT_TEMP V1#define VIRT_HUM V2

// Cayenne-verificatietoken. Dit moet worden verkregen van de Cayenne Dashboard.char-token[] ="uw toker";

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

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

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

getDhtValues();

}

void getDhtValues() { unsigned long now =millis(); if (nu - prev_DHT_refresh> interval_DHT_refresh) { // Het lezen van de temperatuur of vochtigheid duurt ongeveer 250 milliseconden! // Sensormetingen kunnen ook tot 2 seconden 'oud' zijn (het is een zeer trage sensor) float h =dht.readHumidity(); // Lees temperatuur als Celsius (de standaard) float t =dht.readTemperature (); // Controleer of het lezen is mislukt als (!isnan(h) &&!isnan(t)) { Cayenne.virtualWrite(VIRT_HUM, h); Cayenne.celsiusWrite(VIRT_TEMP, t); } prev_DHT_refresh =nu; }}

Apparaten in Cayenne

We zijn bijna klaar met de Arduino. Nu is het het makkelijke gedeelte. We gaan alle apparaten op Cayenne toevoegen.

Apparaat toevoegen -> Aangepaste widget

Selecteer het soort widget dat je leuk vindt. Ik gebruikte een grafiek voor vochtigheid en waterpeil, anders gebruikte ik waarde. Voor de vochtigheids- en temperatuursensor gebruiken we een virtuele pin:

  • Temp:Vpin1
  • Vochtigheid:VPin2

Neem voor het andere apparaat in plaats van virtuele pin te kiezen Analoog met de pin-link ernaartoe. Dezelfde procedure, maar deze keer in actuatoren, selecteer vervolgens de pin van de Arduino die is aangesloten op het relais voor de licht-/ventilator-/waterpomp.

Gebeurtenis en trigger

Nu we het dashboard hebben, gaan we de triggers instellen:

  • Waterpomp: Hierdoor wordt de pomp ingeschakeld wanneer het gedetecteerde bodemvocht te droog is. Merk op dat ik 2 triggers heb gebruikt:een om de waterpomp te starten en een om hem te stoppen.
  • Waterpeil: Als de waarde hoog is, betekent dit dat er water ontbreekt. Hier zullen we een e-mail ontvangen om ons te waarschuwen.
  • Evenementen: Ik heb 4 evenementen opgezet, een om het licht 's ochtends te starten en een om het' s avonds te stoppen, en 2 voor de ventilator aan/uit.

De Raspberry Pi instellen

Laten we een time-lapse maken van de groei van de plant.

3-software:

  • Raspbian
  • Win32diskimager om de afbeelding op de SD-kaart te branden
  • Putty om op afstand verbinding te maken met de Raspberry WIN32 disk imager:

Installeer het na het downloaden. Open het:

1. U ziet "apparaat". Over het algemeen is de standaard goed (als je alleen de SD-kaart hebt aangesloten)

2. Klik op de blauwe pictogrammap en selecteer de Raspbian Jessie-afbeelding die je hebt gedownload

3. Klik op schrijven en het is klaar. U kunt nu de kaart in de Raspberry plaatsen.

Putty: Hiermee kunnen we verbinding maken via SSH, Putty openen (niet nodig om te installeren).

  • Sluit internetkabel aan op de Raspberry
  • Je moet het IP-adres van de Raspberry 2 op de gemakkelijke manier vinden:
  • Verbind met uw box-interface, u zult het apparaat met het IP-adres kunnen zien
  • Sluit het touchscreen en toetsenbord aan, ga naar terminal en vervolgens ifconfig. Voer nu in Putty het IP-adres in. Het zal zoiets zijn als 192.168.0.3 en voer dan in.
  • Het zal vragen om te vertrouwen, klik op ja (afbeelding).
  • inloggen:pi , wachtwoord:framboos . Laat de ramen aan de zijkant, we komen hier later terug.

Nu we de Raspberry hebben draaien, zijn er een paar updates nodig, dus kopieer in Putty het commando:

sudo apt-get updatesudo apt-get upgrade 

VNC:

Als je geen scherm hebt om je Raspberry te verbinden, installeer dan VNC met afstandsbediening.

sudo apt-get install tightvncserver 

Wanneer klaar om de server te starten:

vncserver :1 

En als u vncviewer op uw computer downloadt, voert u het IP-adres en het nummer van de server in om verbinding te maken. Het ziet er zo uit 192.168.0.3:1

Cayenne: U kunt uw Raspberry op afstand bedienen met Cayenne, u hoeft hem alleen te installeren:

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

Time-lapse

Laatste stap! We kunnen de camera nu inschakelen om dit te doen in Putty of in een terminalpasta:

sudo raspi-config 

Ga vervolgens naar camera inschakelen. We moeten een map maken om de foto's op te slaan:

cd /home/pi/Desktopmkdir timelapse 

Na het aansluiten van de webcam gaan we een script maken om elk uur een foto te maken:

cd /home/pi/Desktop nano timelapse.sh 

Plak dit:

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; 

En om er zeker van te zijn dat het script uitvoerbaar is:

chmod +x timelapse.sh 

Conclusie

De tutorial was lang maar erg gemakkelijk, er zijn maar een paar apparaten om verbinding te maken en het platform te configureren. Op de foto is het een grote puinhoop. Ik heb een te lange draad gebruikt. Ik zal het resultaat van mijn time-lapse posten als de planten klaar zijn met groeien.

Advies:

Het Ethernet-schild kan de fout DHCP mislukt krijgen. Toen ik probeerde verbinding te maken, vond ik de oplossing op het Arduino-forum:je moet twee 100ohm-weerstanden op willekeurige plaatsen solderen om je lezers te irriteren.

Code

  • Codefragment #1
  • Codefragment #9
Codefragment #1Arduino

#include "DHT.h"
//#define CAYENNE_DEBUG // Verwijder commentaar om foutopsporingsberichten te tonen
#define CAYENNE_PRINT Serial // Reageer hierop om afdrukken uit te schakelen en ruimte te besparen#include

#define DHTPIN 8 // met welke digitale pin we zijn verbonden#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321

#define VIRT_TEMP V1#define VIRT_HUM V2

// Cayenne-verificatietoken. Dit moet worden verkregen van de Cayenne Dashboard.char-token[] ="uw toker";

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

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

dht.begin();}

void loop(){ Cayenne.run();

getDhtValues();

}

void getDhtValues() { unsigned long now =millis(); if (nu - prev_DHT_refresh> interval_DHT_refresh) { // Het lezen van de temperatuur of vochtigheid duurt ongeveer 250 milliseconden! // Sensormetingen kunnen ook tot 2 seconden 'oud' zijn (het is een zeer trage sensor) float h =dht.readHumidity(); // Lees de temperatuur af als Celsius (de standaardinstelling) float t =dht.readTemperature();

// Controleer of het lezen is mislukt if (!isnan(h) &&!isnan(t)) { Cayenne. virtualWrite(VIRT_HUM, h); Cayenne.celsiusWrite(VIRT_TEMP, t); } prev_DHT_refresh =nu; }}

Codefragment #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;

Productieproces

  1. Raspberry Pi universele afstandsbediening
  2. Een stukje Raspberry Pi
  3. Cycle Chaser
  4. Raspberry Pi diefdetector
  5. Raspberry Pi-temperatuursensor
  6. RASPBERRY PI HOME AUTOMATION
  7. Raspberry Pi geautomatiseerde bewatering van planten met website
  8. MrRobot – Ubuntu Mobile-app ingeschakeld Robotics (betrokken bij Raspberry Pi en arduino)
  9. Raspberry Pi CD Box Robot
  10. Raspberry Pi-robot bestuurd via Bluetooth
  11. Bouw uw internetgestuurde videostreamingrobot met Arduino en Raspberry Pi