Sallad för livet - Arduino 101 baserad automatiserad Controller för Hydroponics, Aeroponics, kretsloppsodling, Etc. Intellekten Curie (7 / 17 steg)
Steg 7: Ljussensor
VARFÖR LJUS SENSOR?
- Denna sensor kan användas för att kontrollera om växt blir det ljust som det är tänkt att få
- Utföra logik åtgärder som tur light ON/OFF efter luminans värde
- Om du lämnar ditt ljus på 24/7, har din anläggning små blad som inte saknar de ljus. De behöver inte växa sina blad att ha ett större område för att få mer solljus.
ANTECKNINGAR
- Dina resultat påverkas mycket av ljuset. Se bilder resultat av låg intensitet experimentera jag performed0
- Anläggningen har en "inre klocka". Det räknas beloppet i ljusa och mörka period behövs för att uppfylla Calvin cykeln
- Behåll Solid State-relä ansluten till Arduino.
- Detta steg är byggd från reläet steg
- Se bild för ledningsdragning
- VCC till 5V
- GND till GND
- Ut till Analog pin A0
- Använda en fullt spektrum ljus (blandning av Violet-Blues och Orange-röda)
- Reds behövs för klorofyll A, används vid fotosyntesen
- Blues behövs för klorofyll B
- Gröna reflekteras av anläggningen
SENSORN SOM ANVÄNDS
Phantom YoYo Arduino kompatibel ljussensor - Amazon-länken
- Sensor funktioner
- Kan upptäcka den omgivande luminansen eller ljus sedan produktionen analoga värde
- Analoga gränssnitt.
- Justerbar känslighet.
- Stabil prestanda.
- Storlek: 23 mm * 21 mm.
- Arbetar spänning: 5V
- Anta fotokonduktiva motstånd,
- Lämplig för att upptäcka en mängd luminans eller ljus.
- Gäller för en mängd plattformar inklusive Arduino / AVR / armbåge.
KODEN (relä + ljus kod)
#define RELAY1_PIN 3 / / Digital pin för Relay kanal som styr CH1
#define RELAY2_PIN 4 / / Digital pin för Relay kanal som styr CH2
#define LIGHTSENSOR_PIN 0 //Analog PIN-kod för ljus
void setup() {
Initiera följetong för senare utskrift av LightSensor värde på Serial Monitor
Serial.BEGIN(9600);
Initiera relä stift.
pinMode (RELAY1_PIN, OUTPUT); För närvarande är ansluten för ljus
pinMode (RELAY2_PIN, OUTPUT); För närvarande är ansluten för vattenpump
}
void loop() {
Läs Analog grisen ansluten till LightSensor och spara värdet i luminans variabel
uint16_t cur_luminance = analogRead(LIGHTSENSOR_PIN);
Skriva ut luminans värde till Serial Monitor
Serial.Print ("luminans värde:");
Serial.Print(cur_luminance,dec);
Serial.Print("|");
Logik som använder luminansen värdet till Styrrelä
om (cur_luminance < = 350) {
Slå alla relä kanaler till hög
digitalWrite (RELAY1_PIN, hög);
digitalWrite (RELAY2_PIN, hög);
}
annat {
Slå alla relä kanaler till låg
digitalWrite (RELAY1_PIN, låg);
digitalWrite (RELAY2_PIN, låg);
}
Läs relä stift staten och skriva ut på Serial Monitor
Serial.Print ("relä 1 Status:");
Serial.Print(On_or_off(digitalRead(RELAY1_PIN)));
Serial.Print("| Relay 2 Status: ");
int relay2 = Serial.print(On_or_off(digitalRead(RELAY2_PIN)));
Sovplats för 2 andra
Delay(2*1000);
Serial.println("\n*******************************************************************************************************");
}
Funktionen används för att skriva ut på eller i stället för 0 eller 1
CONST char * On_or_off (int pin_value) {
om (pin_value == 0) {
returnera "OFF";
}
annat if (pin_value == 1) {
returnera "På";
}
annat {
returnera "Dålig";
}
}