Plant monitor
Posted: Tue Jan 05, 2016 5:41 pm
Hey, New project which I've been working on over the holidays. It's a box that tells me how my pet plant chilli is going by lighting up different led's it also works as a bluetooth weather device which I can connect my phone to to check humidity and temperature. I have done some code that I think should work and is running on it right now. I was wondering if there is a way to make it simpler?
#include "DHT.h"
#define DHTPIN 6
#define DHTTYPE DHT22
int lightLevel;
DHT dht(DHTPIN, DHTTYPE);
int WaterMoi;
void setup() {
Serial.begin(9600);
dht.begin();
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
}
void loop() {
String command = "";
float h = dht.readHumidity();
float t = dht.readTemperature();
lightLevel = analogRead(A0);
WaterMoi = analogRead(2);
command = Serial.readString();
if (command == "Light?"){
Serial.print("Light Level ");
Serial.println(lightLevel, DEC);
}
if (isnan(t) || isnan(h)) {
Serial.println("FAIL");
} else if (command == "Humidity?"){
Serial.print("Humidity: ");
Serial.print(h);
Serial.println(" %\t");
}
if (command == "Temperature?"){
Serial.print("Temperature: ");
Serial.print(t);
Serial.println(" *C");
}
if (command == "Moisture?"){
Serial.print("Moisture: ");
Serial.println(WaterMoi);
}
if (WaterMoi <= 500){
digitalWrite(10, HIGH);
delay(1000);
digitalWrite(10, LOW);
delay(1000);
}
if (WaterMoi >= 500, WaterMoi <= 1000){
digitalWrite(9, HIGH);
}
if (lightLevel <= 20){
digitalWrite(9, HIGH);
digitalWrite(8, HIGH);
delay(1000);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
delay(1000);
}
if (t >= 40){
digitalWrite(8, HIGH);
delay(1000);
digitalWrite(8, LOW);
delay(1000);
}
}
Thanks Dylan
#include "DHT.h"
#define DHTPIN 6
#define DHTTYPE DHT22
int lightLevel;
DHT dht(DHTPIN, DHTTYPE);
int WaterMoi;
void setup() {
Serial.begin(9600);
dht.begin();
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
}
void loop() {
String command = "";
float h = dht.readHumidity();
float t = dht.readTemperature();
lightLevel = analogRead(A0);
WaterMoi = analogRead(2);
command = Serial.readString();
if (command == "Light?"){
Serial.print("Light Level ");
Serial.println(lightLevel, DEC);
}
if (isnan(t) || isnan(h)) {
Serial.println("FAIL");
} else if (command == "Humidity?"){
Serial.print("Humidity: ");
Serial.print(h);
Serial.println(" %\t");
}
if (command == "Temperature?"){
Serial.print("Temperature: ");
Serial.print(t);
Serial.println(" *C");
}
if (command == "Moisture?"){
Serial.print("Moisture: ");
Serial.println(WaterMoi);
}
if (WaterMoi <= 500){
digitalWrite(10, HIGH);
delay(1000);
digitalWrite(10, LOW);
delay(1000);
}
if (WaterMoi >= 500, WaterMoi <= 1000){
digitalWrite(9, HIGH);
}
if (lightLevel <= 20){
digitalWrite(9, HIGH);
digitalWrite(8, HIGH);
delay(1000);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
delay(1000);
}
if (t >= 40){
digitalWrite(8, HIGH);
delay(1000);
digitalWrite(8, LOW);
delay(1000);
}
}
Thanks Dylan