Components and supplies
Power Supply 6VDC 2.0A - US
IRLZ44N
12V/29A Power Supply
Arduino MKR Fox 1200
PIR Motion Sensor (generic)
Apps and platforms
Arduino IDE
Project description
Code
Untitled file
arduino
1#include <stdio.h> 2 3#include <DS1302.h> 4 5int time_vrish_mpalkoni = 10; 6 7int time_vrish_kupos = 20; 8 9#define hour_to_start 22 10 11#define minute_to_start 22 12 13int input_sensor_Pin = 8; 14 15int alarm_pin = 12; 16 17const int kupos_vrish = 7; 18 19int mpalkoni_vrish = 5; 20 21const int button_auto_gardening = 6; 22 23uint8_t RST_PIN = 11; 24 25uint8_t SDA_PIN = 10; 26 27uint8_t SCL_PIN = 9; 28 29DS1302 rtc(RST_PIN, SDA_PIN, SCL_PIN); 30 31int button_diagnostics = 0; 32 33int lastbutton_diagnostics = 1; 34 35unsigned long start_time_pressed = 0; 36 37unsigned long end_time_pressed = 0; 38 39unsigned long time_hold = 0; 40 41unsigned long time_to_release = 0; 42 43unsigned long prev_millis = 0; 44 45const int button_diagnostics_pin = 4; 46 47const int ledPin = 3; 48 49 50 51void watering(){ 52 53 Serial.println("Start watering"); 54 55 digitalWrite(kupos_vrish, HIGH); 56 57 delay(time_vrish_kupos*60000); 58 59 digitalWrite(kupos_vrish, LOW); 60 61 delay(100); 62 63 64 65 Serial.println("Start watering vrish mpalkoni"); 66 67 digitalWrite(mpalkoni_vrish, HIGH); 68 69 delay(time_vrish_mpalkoni*60000); 70 71 Serial.println("end delay: "); 72 73 digitalWrite(mpalkoni_vrish, LOW); 74 75 delay(1000); 76 77 Serial.println("Finish watering"); 78 79} 80 81void watering_check_diagnostics(){ 82 83 Serial.println("Start watering check diagnostics"); 84 85 digitalWrite(kupos_vrish, HIGH); 86 87 delay(60000); 88 89 digitalWrite(kupos_vrish, LOW); 90 91 delay(100); 92 93 Serial.println("end delay vrish kupos "); 94 95 96 97 Serial.println("Start watering vrish mpalkoni"); 98 99 digitalWrite(mpalkoni_vrish, HIGH); 100 101 delay(60000); 102 103 Serial.println("end delay vrish mpalkoni "); 104 105 digitalWrite(mpalkoni_vrish, LOW); 106 107 delay(100); 108 109 Serial.println("Finish watering check"); 110 111} 112 113void setup(){ 114 115 Serial.begin(9600); 116 117 pinMode(alarm_pin, OUTPUT); 118 119 pinMode(input_sensor_Pin, INPUT); 120 121 pinMode(button_diagnostics_pin, INPUT); 122 123 pinMode(ledPin, OUTPUT); 124 125 pinMode(button_auto_gardening, INPUT); 126 127 pinMode(kupos_vrish, OUTPUT); 128 129 pinMode(mpalkoni_vrish, OUTPUT); 130 131 rtc.halt(false); 132 133} 134 135unsigned long CurrentTime = 5000000; 136 137int button_auto_gardening_state = 0; 138 139int sensor = 0; 140 141void loop(){ 142 143 unsigned long currentMillis = millis(); 144 145 if(currentMillis - prev_millis >= 1000) { 146 147 button_auto_gardening_state = digitalRead(button_auto_gardening); 148 149 Time t = rtc.time(); 150 151 if (button_auto_gardening_state == HIGH) { 152 153 if( t.min==minute_to_start&&t.hr==hour_to_start){ 154 155 watering(); 156 157 } 158 159 }else{ 160 161 Serial.println("Switch off "); 162 163 } 164 165 166 167 Serial.print("Hour: "); 168 169 Serial.print(t.hr); 170 171 Serial.print(" Minute: "); 172 173 Serial.println(t.min); 174 175 prev_millis = currentMillis; 176 177 } 178 179 button_diagnostics = digitalRead(button_diagnostics_pin); 180 181 if (button_diagnostics != lastbutton_diagnostics) { 182 183 if (button_diagnostics == HIGH) { 184 185 start_time_pressed = millis(); 186 187 time_to_release = start_time_pressed - end_time_pressed; 188 189 } else { 190 191 end_time_pressed = millis(); 192 193 time_hold = end_time_pressed - start_time_pressed; 194 195 if (time_hold >= 0 && time_hold < 1000) { 196 197 Serial.println("Button pressed"); 198 199 digitalWrite(ledPin, HIGH); 200 201 delay(1000); 202 203 digitalWrite(ledPin, LOW); 204 205 } 206 207 if (time_hold >= 1000) { 208 209 watering_check_diagnostics(); 210 211 } 212 213 } 214 215 } 216 217 lastbutton_diagnostics = button_diagnostics; 218 219 sensor = digitalRead(input_sensor_Pin); 220 221 if (sensor == HIGH) { 222 223 digitalWrite(alarm_pin, HIGH); 224 225 delay(100000) 226 227 digitalWrite(alarm_pin, LOW); 228 229 } 230 231} 232 233
Downloadable files
Scheme
Scheme
Extended
Extended
Extended
Extended
Scheme
Scheme
Comments
Only logged in users can leave comments