|
| 1 | +#include <SoftwareSerial.h> // Haberleşme için gerekli olan kütüphane. |
| 2 | +#include <DHT.h>; // DHT11 sensörü için gerekli olan kütüphane. |
| 3 | + |
| 4 | +String flag; // Bluetooth modülünden gelecek sinyalin dinlenmesi için değişken. |
| 5 | + |
| 6 | +int relay1 = 4; // 1 numaralı röleye ait pin. |
| 7 | +int relay2 = 5; // 2 numaralı röleye ait pin. |
| 8 | +int relay3 = 6; // 3 numaralı röleye ait pin. |
| 9 | +float hum; // Nem değişkeni. |
| 10 | +float temp; // Sıcaklık değişkeni. |
| 11 | + |
| 12 | + |
| 13 | +SoftwareSerial blue(10,11); // Bluetooth modülünün TX / RX pinleri. |
| 14 | +#define LDR 3 // LDR'nin kullanacağı pin. |
| 15 | +#define DHTPIN 7 // DHT11'in kullanacağı pin. |
| 16 | +#define DHTTYPE DHT11 // DHT sensörünün tanımlanması. |
| 17 | +DHT dht(DHTPIN, DHTTYPE); // DHT sensörünün nesne olarak oluşturulması. |
| 18 | + |
| 19 | +void setup() { // Kurulum fonksiyonu. |
| 20 | + Serial.begin(9600); // Seri monitör baud rate tanımlaması. |
| 21 | + blue.begin(9600); // Bluetooth modülü baud rate tanımlaması. |
| 22 | + dht.begin(); // DHT11 sensörü çalışma emri. |
| 23 | + pinMode(relay1, OUTPUT); // 1 numaralı röle çalışma şekli tanımı. |
| 24 | + pinMode(relay2, OUTPUT); // 2 numaralı röle çalışma şekli tanımı. |
| 25 | + pinMode(relay3, OUTPUT); // 3 numaralı röle çalışma şekli tanımı. |
| 26 | +} |
| 27 | + |
| 28 | +void loop() { // Döngü ve çalışma fonksiyonu. |
| 29 | + int ldr = analogRead(A0); // LDR sensörü pin tanımlaması. |
| 30 | + while (Serial.available()) { // Bluetooth sensörü dinlenmesi. |
| 31 | + delay(3); |
| 32 | + char c = Serial.read(); |
| 33 | + flag += c; |
| 34 | + } |
| 35 | + |
| 36 | + if (flag == "1 ON") // 1 numaralı rölenin çalışma koşulu. |
| 37 | + { |
| 38 | + digitalWrite(relay1, HIGH); // 1 numaralı rölenin çalışma emri. |
| 39 | + Serial.println("\nRELAY 1 ON"); // Seri monitöre 1 numaralı rölenin açık olduğu bilgisinin yazılması. |
| 40 | + delay(2000); |
| 41 | + hum = dht.readHumidity(); // Nem değerinin okunması. |
| 42 | + temp = dht.readTemperature(); // Sıcaklık değerinin okunması. |
| 43 | + Serial.print("Nem: "); // Nem değerinin yazdırılması. |
| 44 | + Serial.print(hum); // Nem değeri. |
| 45 | + Serial.print(" %, Sıcaklık: "); // Sıcaklık değerinin yazdırılması. |
| 46 | + Serial.print(temp); // Sıcaklık değeri. |
| 47 | + Serial.print(" Celsius"); // Sıcaklık birimi. |
| 48 | + blue.print("RELAY 1 ON "); // Bluetooth adaptörüyle bağlanılan cihaza bilginin yazdırılması. |
| 49 | + blue.print("Nem: "); // Nem değerinin yazdırılması. |
| 50 | + blue.print(hum); // Nem değeri. |
| 51 | + blue.print(" %, Sıcaklık: "); // Sıcaklık değerinin yazdırılması. |
| 52 | + blue.print(temp); // Sıcaklık değeri. |
| 53 | + blue.println(" Celsius \n"); // Sıcaklık birimi. |
| 54 | + } |
| 55 | + |
| 56 | + if (ldr < 850) // LDR'den gelen veriye göre 1 numaralı rölenin çalışma koşulu. |
| 57 | + { |
| 58 | + digitalWrite(relay1, HIGH); |
| 59 | + Serial.println("\nRELAY 1 ON"); |
| 60 | + delay(10000); |
| 61 | + hum = dht.readHumidity(); |
| 62 | + temp = dht.readTemperature(); |
| 63 | + Serial.print("Nem: "); |
| 64 | + Serial.print(hum); |
| 65 | + Serial.print(" %, Sıcaklık: "); |
| 66 | + Serial.print(temp); |
| 67 | + Serial.print(" Celsius"); |
| 68 | + Serial.print("Ortam Aydınlatması Yetersiz."); |
| 69 | + blue.print("RELAY 1 ON "); |
| 70 | + blue.print("Nem: "); |
| 71 | + blue.print(hum); |
| 72 | + blue.print(" %, Sıcaklık: "); |
| 73 | + blue.print(temp); |
| 74 | + blue.println(" Celsius \n"); |
| 75 | + blue.print("Ortam Aydınlatması Yetersiz."); |
| 76 | + } |
| 77 | + |
| 78 | + if (flag == "1 OFF") // 1 numaralı rölenin kapanma koşulu. |
| 79 | + { |
| 80 | + digitalWrite(relay1, LOW); // 1 numaralı rölenin kapanma emri. |
| 81 | + Serial.println("\nRELAY 1 OFF"); // Seri monitöre 1 numaralı rölenin açık olduğu bilgisinin yazılması. |
| 82 | + delay(2000); |
| 83 | + hum = dht.readHumidity(); // Nem değerinin okunması. |
| 84 | + temp = dht.readTemperature(); // Sıcaklık değerinin okunması. |
| 85 | + Serial.print("Nem: "); // Nem değerinin yazdırılması. |
| 86 | + Serial.print(hum); // Nem değeri. |
| 87 | + Serial.print(" %, Sıcaklık: "); // Sıcaklık değerinin yazdırılması. |
| 88 | + Serial.print(temp); // Sıcaklık değeri. |
| 89 | + Serial.print(" Celsius"); // Sıcaklık birimi. |
| 90 | + blue.print("RELAY 1 OFF "); // Bluetooth adaptörüyle bağlanılan cihaza bilginin yazdırılması. |
| 91 | + blue.print("Nem: "); // Nem değerinin yazdırılması. |
| 92 | + blue.print(hum); // Nem değeri. |
| 93 | + blue.print(" %, Sıcaklık: "); // Sıcaklık değerinin yazdırılması. |
| 94 | + blue.print(temp); // Sıcaklık değeri. |
| 95 | + blue.println(" Celsius \n"); // Sıcaklık birimi. |
| 96 | + } |
| 97 | + |
| 98 | + if (ldr > 900) // LDR'den gelen veriye göre 1 numaralı rölenin kapanma koşulu. |
| 99 | + { |
| 100 | + digitalWrite(relay1, LOW); |
| 101 | + Serial.println("\nRELAY 1 OFF"); |
| 102 | + delay(10000); |
| 103 | + hum = dht.readHumidity(); // Nem değerinin okunması. |
| 104 | + temp = dht.readTemperature(); // Sıcaklık değerinin okunması. |
| 105 | + Serial.print("Nem: "); // Nem değerinin yazdırılması. |
| 106 | + Serial.print(hum); // Nem değeri. |
| 107 | + Serial.print(" %, Sıcaklık: "); // Sıcaklık değerinin yazdırılması. |
| 108 | + Serial.print(temp); // Sıcaklık değeri. |
| 109 | + Serial.print(" Celsius"); // Sıcaklık birimi. |
| 110 | + Serial.print("Ortam Aydınlatması Güzel."); // Seri monitöre ortam aydınlatmasının yazılması. |
| 111 | + blue.print("RELAY 1 OFF "); // Bluetooth adaptörüyle bağlanılan cihaza bilginin yazdırılması. |
| 112 | + blue.print("Nem: "); // Nem değerinin yazdırılması. |
| 113 | + blue.print(hum); // Nem değeri. |
| 114 | + blue.print(" %, Sıcaklık: "); // Sıcaklık değerinin yazdırılması. |
| 115 | + blue.print(temp); // Sıcaklık değeri. |
| 116 | + blue.println(" Celsius \n"); // Sıcaklık birimi. |
| 117 | + blue.print("Ortam Aydınlatması Güzel."); // Bluetooth adaptörüyle bağlanılan cihaza ortam aydınlatmasının yazdırılması. |
| 118 | + } |
| 119 | + |
| 120 | + if (flag == "2 ON") // 2 numaralı rölenin çalışma koşulu. |
| 121 | + { |
| 122 | + digitalWrite(relay2, HIGH); |
| 123 | + Serial.println("\nRELAY 2 ON"); |
| 124 | + delay(2000); |
| 125 | + hum = dht.readHumidity(); // Nem değerinin okunması. |
| 126 | + temp = dht.readTemperature(); // Sıcaklık değerinin okunması. |
| 127 | + Serial.print("Nem: "); // Nem değerinin yazdırılması. |
| 128 | + Serial.print(hum); // Nem değeri. |
| 129 | + Serial.print(" %, Sıcaklık: "); // Sıcaklık değerinin yazdırılması. |
| 130 | + Serial.print(temp); // Sıcaklık değeri. |
| 131 | + Serial.print(" Celsius"); // Sıcaklık birimi. |
| 132 | + blue.print("RELAY 2 ON "); // Bluetooth adaptörüyle bağlanılan cihaza bilginin yazdırılması. |
| 133 | + blue.print("Nem: "); // Nem değerinin yazdırılması. |
| 134 | + blue.print(hum); // Nem değeri. |
| 135 | + blue.print(" %, Sıcaklık: "); // Sıcaklık değerinin yazdırılması. |
| 136 | + blue.print(temp); // Sıcaklık değeri. |
| 137 | + blue.println(" Celsius \n"); // Sıcaklık birimi. |
| 138 | + } |
| 139 | + |
| 140 | + if (flag == "2 OFF") // 2 numaralı rölenin kapanma koşulu. |
| 141 | + { |
| 142 | + digitalWrite(relay2, LOW); |
| 143 | + Serial.println("\nRELAY 2 OFF"); |
| 144 | + delay(2000); |
| 145 | + hum = dht.readHumidity(); // Nem değerinin okunması. |
| 146 | + temp = dht.readTemperature(); // Sıcaklık değerinin okunması. |
| 147 | + Serial.print("Nem: "); // Nem değerinin yazdırılması. |
| 148 | + Serial.print(hum); // Nem değeri. |
| 149 | + Serial.print(" %, Sıcaklık: "); // Sıcaklık değerinin yazdırılması. |
| 150 | + Serial.print(temp); // Sıcaklık değeri. |
| 151 | + Serial.print(" Celsius"); // Sıcaklık birimi. |
| 152 | + blue.print("RELAY 2 OFF "); // Bluetooth adaptörüyle bağlanılan cihaza bilginin yazdırılması. |
| 153 | + blue.print("Nem: "); // Nem değerinin yazdırılması. |
| 154 | + blue.print(hum); // Nem değeri. |
| 155 | + blue.print(" %, Sıcaklık: "); // Sıcaklık değerinin yazdırılması. |
| 156 | + blue.print(temp); // Sıcaklık değeri. |
| 157 | + blue.println(" Celsius \n"); // Sıcaklık birimi. |
| 158 | + } |
| 159 | + |
| 160 | + if (flag == "3 ON") // 3 numaralı rölenin çalışma koşulu. |
| 161 | + { |
| 162 | + digitalWrite(relay3, HIGH); |
| 163 | + Serial.println("\nRELAY 3 ON"); |
| 164 | + delay(2000); |
| 165 | + hum = dht.readHumidity(); // Nem değerinin okunması. |
| 166 | + temp = dht.readTemperature(); // Sıcaklık değerinin okunması. |
| 167 | + Serial.print("Nem: "); // Nem değerinin yazdırılması. |
| 168 | + Serial.print(hum); // Nem değeri. |
| 169 | + Serial.print(" %, Sıcaklık: "); // Sıcaklık değerinin yazdırılması. |
| 170 | + Serial.print(temp); // Sıcaklık değeri. |
| 171 | + Serial.print(" Celsius"); // Sıcaklık birimi. |
| 172 | + blue.print("RELAY 3 ON "); // Bluetooth adaptörüyle bağlanılan cihaza bilginin yazdırılması. |
| 173 | + blue.print("Nem: "); // Nem değerinin yazdırılması. |
| 174 | + blue.print(hum); // Nem değeri. |
| 175 | + blue.print(" %, Sıcaklık: "); // Sıcaklık değerinin yazdırılması. |
| 176 | + blue.print(temp); // Sıcaklık değeri. |
| 177 | + blue.println(" Celsius \n"); // Sıcaklık birimi. |
| 178 | + } |
| 179 | + |
| 180 | + if (flag == "3 OFF") // 3 numaralı rölenin kapanma koşulu. |
| 181 | + { |
| 182 | + digitalWrite(relay3, LOW); |
| 183 | + Serial.println("\nRELAY 3 OFF"); |
| 184 | + delay(2000); |
| 185 | + hum = dht.readHumidity(); // Nem değerinin okunması. |
| 186 | + temp = dht.readTemperature(); // Sıcaklık değerinin okunması. |
| 187 | + Serial.print("Nem: "); // Nem değerinin yazdırılması. |
| 188 | + Serial.print(hum); // Nem değeri. |
| 189 | + Serial.print(" %, Sıcaklık: "); // Sıcaklık değerinin yazdırılması. |
| 190 | + Serial.print(temp); // Sıcaklık değeri. |
| 191 | + Serial.print(" Celsius"); // Sıcaklık birimi. |
| 192 | + blue.print("RELAY 3 OFF "); // Bluetooth adaptörüyle bağlanılan cihaza bilginin yazdırılması. |
| 193 | + blue.print("Nem: "); // Nem değerinin yazdırılması. |
| 194 | + blue.print(hum); // Nem değeri. |
| 195 | + blue.print(" %, Sıcaklık: "); // Sıcaklık değerinin yazdırılması. |
| 196 | + blue.print(temp); // Sıcaklık değeri. |
| 197 | + blue.println(" Celsius \n"); // Sıcaklık birimi. |
| 198 | + } |
| 199 | + |
| 200 | + flag = ""; |
| 201 | +} |
0 commit comments