Files
Arduino/Soile_Moisture_Sensor_Arduino_MEGA-16_Sensors.ino

240 lines
5.8 KiB
Arduino

// For Mega you can add al of the commands and uncomment. For nano you will need to comment
// out some of the script.
//// pump digital pins, 16 digital pins but grove only seems to have the
//// split mapped diferent on the split cables. So only using 8.
//const int pumpPin0 = 0;
//const int pumpPin1 = 1;
//const int pumpPin2 = 2;
//const int pumpPin3 = 3;
//const int pumpPin4 = 4;
//const int pumpPin5 = 5;
//const int pumpPin6 = 6;
//const int pumpPin7 = 7;
// soil moisture analog pins, 16 analog pins but grove only seems to have the
// split mapped diferent on the split cables. So only using 8.
const int soilSensorA0 = A0;
const int soilSensorA1 = A2;
const int soilSensorA2 = A4;
const int soilSensorA3 = A6;
const int soilSensorA4 = A8;
const int soilSensorA5 = A10;
const int soilSensorA6 = A12;
const int soilSensorA7 = A14;
// soil moisture reading that is dry
const int dry = 680;
// soil moisture reading that is moist
const int moist = 680;
// print delay
const int printDelay = 5000;
// per sensor script delay
//const int sensorsDelay = 5000;
// Serial write speak
const int serialWrite = 19200;
// site number if you have more than one
const int siteNumber = 1;
// Cycle Delay every 2 hours
//const int cycleDelay = 7200000;
// water delay
//const in waterDelay = 10000;
void setup() {
// pinMode(pumpPin1, OUTPUT);
// pinMode(soilSensor0, INPUT);
// Serial.begin(serialwrite);
// digitalWrite(pumpPin1, HIGH);
// delay(sensordelay);
// pinMode(pumpPin1, OUTPUT);
// pinMode(soilSensor1, INPUT);
// Serial.begin(serialwrite);
// digitalWrite(pumpPin2, HIGH);
// delay(sensordelay);
// pinMode(pumpPin2, OUTPUT);
// pinMode(soilSensor2, INPUT);
// Serial.begin(serialwrite);
// digitalWrite(pumpPin3, HIGH);
// delay(sensordelay);
// pinMode(pumpPin3, OUTPUT);
// pinMode(soilSensor3, INPUT);
// Serial.begin(serialwrite);
// digitalWrite(pumpPin4, HIGH);
// delay(sensordelay);
// pinMode(pumpPin4, OUTPUT);
// pinMode(soilSensor4, INPUT);
// Serial.begin(serialwrite);
// digitalWrite(pumpPin5, HIGH);
// delay(sensordelay);
// pinMode(pumpPin5, OUTPUT);
// pinMode(soilSensor5, INPUT);
// Serial.begin(serialwrite);
// digitalWrite(pumpPin6, HIGH);
// delay(sensordelay);
// pinMode(pumpPin6, OUTPUT);
// pinMode(soilSensor6, INPUT);
// Serial.begin(serialwrite);
// digitalWrite(pumpPin6, HIGH);
// delay(sensordelay);
// pinMode(pumpPin7, OUTPUT);
// pinMode(soilSensor7, INPUT);
// Serial.begin(serialwrite);
// digitalWrite(pumpPin7, HIGH);
// delay(sensordelay);
Serial.begin(serialWrite);
}
void loop() {
// Delay to allow any reboots to happen
delay(120000);
Serial.println("Sensing Moisture on Zone " + String(siteNumber) + "!");
delay(printDelay);
// Moisture Sensor A0
int moisture0 = analogRead(soilSensorA0);
Serial.println("Pot 1: " + String(moisture0));
delay(5000);
if (moisture0 >= dry) {
// the soil is too dry, water!
Serial.println("Pot 1 is dry");
delay(5000);
}
if (moisture0 <= moist) {
// the soil is too dry, water!
Serial.println("Pot 1 is moist");
delay(5000);
}
// Moisture Sensor A2
int moisture1 = analogRead(soilSensorA1);
Serial.println("Pot 2: " + String(moisture1));
delay(5000);
if (moisture1 >= dry) {
// the soil is too dry, water!
Serial.println("Pot 2 is dry");
delay(5000);
}
if (moisture1 <= moist) {
// the soil is too dry, water!
Serial.println("Pot 2 is moist");
delay(5000);
}
// Moisture Sensor A4
int moisture2 = analogRead(soilSensorA2);
Serial.println("Pot 3: " + String(moisture2));
delay(5000);
if (moisture2 >= dry) {
// the soil is too dry, water!
Serial.println("Pot 3 is dry");
delay(5000);
}
if (moisture2 <= moist) {
// the soil is too dry, water!
Serial.println("Pot 3 is moist");
delay(5000);
}
// Moisture Sensor A6
int moisture3 = analogRead(soilSensorA3);
Serial.println("Pot 4: " + String(moisture3));
delay(5000);
if (moisture3 >= dry) {
// the soil is too dry, water!
Serial.println("Pot 4 is dry");
delay(5000);
}
if (moisture3 <= moist) {
// the soil is too dry, water!
Serial.println("Pot 4 is moist");
delay(5000);
}
// Moisture Sensor A8
int moisture4 = analogRead(soilSensorA4);
Serial.println("Pot 5: " + String(moisture4));
delay(5000);
if (moisture4 >= dry) {
// the soil is too dry, water!
Serial.println("Pot 5 is dry");
delay(5000);
}
if (moisture4 <= moist) {
// the soil is too dry, water!
Serial.println("Pot 5 is moist");
delay(5000);
}
// Moisture Sensor A10
int moisture5 = analogRead(soilSensorA5);
Serial.println("Pot 6: " + String(moisture5));
delay(5000);
if (moisture5 >= dry) {
// the soil is too dry, water!
Serial.println("Pot 6 is dry");
delay(5000);
}
if (moisture5 <= moist) {
// the soil is too dry, water!
Serial.println("Pot 6 is moist");
delay(5000);
}
// Moisture Sensor A11
int moisture6 = analogRead(soilSensorA6);
Serial.println("Pot 7: " + String(moisture6));
delay(5000);
if (moisture6 >= dry) {
// the soil is too dry, water!
Serial.println("Pot 7 is dry");
delay(5000);
}
if (moisture6 <= moist) {
// the soil is too dry, water!
Serial.println("Pot 7 is moist");
delay(5000);
}
// Moisture Sensor A12
int moisture7 = analogRead(soilSensorA7);
Serial.println("Pot 8: " + String(moisture7));
delay(5000);
if (moisture7 >= dry) {
// the soil is too dry, water!
Serial.println("Pot 8 is dry");
delay(5000);
}
if (moisture7 <= moist) {
// the soil is too dry, water!
Serial.println("Pot 8 is moist");
delay(5000);
}
Serial.println("Done Sensing Moisture!");
delay(5000);
Serial.println("Next moisture check is in a couple hrs!");
delay(printDelay);
delay(3600000);
}