Automatiserad Garden (32 / 46 steg)
Steg 32: Program
Koden för en Self-Regulating trädgård använder en Intel Galileos styrelse
Mer information finns på:
Inkludera Sensirion bibliotek
http://Playground.Arduino.cc/Code/Sensirion
#include < Sensirion.h >
Sensor stift
CONST uint8_t dataPin = 6;
CONST uint8_t clockPin = 7.
Variabler för temperatur & luftfuktighet sensor
float luftfuktighet;
buffert för att läsa tid
char buf [9].
tröskeln att jämföra vatten fukt till
ändra detta nummer passar din setup
float tröskel = 50,0;
Definiera stiften för lampor och motorer
int growlights = 4;
int motor1 = 9.
int motor2 = 10;
int motor3 = 11;
void setup() {
Serial.BEGIN(115200);
anger datum och tid till 12:00 15: e Sept 2014
Ändra därför
system ("datum 091512002014");
initiera digital stiften som ett resultat.
pinMode (growlights, produktionen);
pinMode (motor1, produktionen);
pinMode (motor2, produktionen);
pinMode (motor3, produktionen);
}
loop rutinen körs för evigt om och om igen:
void loop() {
få aktuell tid i det format - timmar: minuter: sekunder
och spara i text fil time.txt ligger i /home/root
system ("datum"+ % H: % m %S"> /home/root/time.txt");
time.txt fil öppnas och buffertar senast inspelade
Fil * fp;
fp = fopen ("/home/root/time.txt", "r");
fgets (buf, 9, fp);
fclose(fp);
kontrollerar om det är 7:30 på morgonen
och om så blir ljus på
kontrollerar också markfuktighet
och vänder på sprinkler i 20 sekunder om torr
om (strcmp (buf, "7: 30:00") == 0) {
Serial.println("Hi");
LightOn();
Gör en fukt mätning varje morgon
soilSensor.measure(&humidity);
IF(humidity > Threshold) {
EngageSprinklers();
Delay(20000);
DisengageSprinklers();
}
}
Stänger av belysningen vid 7:30 på natten
om (strcmp (buf, "19: 30:00") == 0) {
Serial.println("Hi");
LightOff();
}
}
funktionen för att aktivera växa lampor
void LightOn() {
digitalWrite (growlights, hög);
}
funktionen för att stänga växa lampor av
void LightOff() {
digitalWrite (growlights, låg);
}
funktionen för att aktivera sprinkler
void EngageSprinklers() {
digitalWrite (motor1, hög); Aktivera LED (HIGH är spänningsnivån)
digitalWrite (motor2, hög); Aktivera LED (HIGH är spänningsnivån)
digitalWrite (motor3, hög); Aktivera LED (HIGH är spänningsnivån)
}
funktionen för att stänga sprinkler av
void DisengageSprinklers() {
digitalWrite (motor1, låg); Aktivera LED (HIGH är spänningsnivån)
digitalWrite (motor2, låg); Aktivera LED (HIGH är spänningsnivån)
digitalWrite (motor3, låg); Aktivera LED (HIGH är spänningsnivån)
}