Advertisement
safwan092

Project_10866_Arduino_Code

Feb 21st, 2023
29
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.34 KB | None | 0 0
  1. #include "DHT.h"
  2. #include <TinyGPSPlus.h>
  3. #include <SoftwareSerial.h>
  4.  
  5. #define redLed 10
  6. #define yellowLED 9
  7. #define greenLED 8
  8. #define WaterLevelLow A0
  9. #define WaterLevelMed A1
  10. #define WaterLevelHigh A2
  11. #define DHTPIN 2
  12. #define GPSrxPin 3
  13. #define GPStxPin 4
  14. #define rxPin 5
  15. #define txPin 6
  16.  
  17. #define DHTTYPE DHT11
  18.  
  19. SoftwareSerial ss(rxPin, txPin);
  20. SoftwareSerial ssGPS(GPSrxPin, GPStxPin);
  21. TinyGPSPlus gps;
  22. DHT dht(DHTPIN, DHTTYPE);
  23.  
  24. float h = 0;
  25. float t = 0;
  26. int waterlevelvalue = 170;
  27. float var1;
  28. int var2;
  29. int waterLevel = 0;
  30. int WaterLevelLowValue = 0;
  31. int WaterLevelMedValue = 0;
  32. int WaterLevelHighValue = 0;
  33. unsigned long currentTime;
  34. unsigned long lastTime;
  35. char google_maps_link[70];
  36. String google_maps_link_string = "";
  37. String Longitude = "1";
  38. String Latitude = "1";
  39.  
  40.  
  41. void setup() {
  42.  
  43. pinMode(redLed, OUTPUT);
  44. pinMode(yellowLED, OUTPUT);
  45. pinMode(greenLED, OUTPUT);
  46. pinMode(WaterLevelLow, INPUT);
  47. pinMode(WaterLevelMed, INPUT);
  48. pinMode(WaterLevelHigh, INPUT);
  49. digitalWrite(redLed, HIGH);
  50. digitalWrite(yellowLED, LOW);
  51. digitalWrite(greenLED, LOW);
  52. Serial.begin(9600);
  53. ss.begin(9600);
  54. ssGPS.begin(9600);
  55. dht.begin();
  56. currentTime = millis();
  57. lastTime = currentTime;
  58. }
  59.  
  60. void loop () {
  61. read_GPS_receiver();
  62. h = dht.readHumidity();
  63. t = dht.readTemperature();
  64. WaterLevelLowValue = analogRead(WaterLevelLow);
  65. WaterLevelMedValue = analogRead(WaterLevelMed);
  66. WaterLevelHighValue = analogRead(WaterLevelHigh);
  67. if (WaterLevelLowValue < waterlevelvalue && WaterLevelMedValue < waterlevelvalue && WaterLevelHighValue < waterlevelvalue) {
  68. waterLevel = 0;//tank is @ 0% Empty
  69. digitalWrite(redLed, LOW);
  70. digitalWrite(yellowLED, LOW);
  71. digitalWrite(greenLED, HIGH);
  72. }
  73. else if (WaterLevelLowValue > waterlevelvalue && WaterLevelMedValue < waterlevelvalue && WaterLevelHighValue < waterlevelvalue) {
  74. waterLevel = 30;//tank is @ 30%
  75. digitalWrite(redLed, LOW);
  76. digitalWrite(yellowLED, LOW);
  77. digitalWrite(greenLED, HIGH);
  78. }
  79. else if (WaterLevelLowValue > waterlevelvalue && WaterLevelMedValue > waterlevelvalue && WaterLevelHighValue < waterlevelvalue) {
  80. waterLevel = 60;//tank is @ 60%
  81. digitalWrite(redLed, LOW);
  82. digitalWrite(yellowLED, HIGH);
  83. digitalWrite(greenLED, LOW);
  84. }
  85. else if (WaterLevelLowValue > waterlevelvalue && WaterLevelMedValue > waterlevelvalue && WaterLevelHighValue > waterlevelvalue) {
  86. waterLevel = 100;//tank is @ 100% Full
  87. digitalWrite(redLed, HIGH);
  88. digitalWrite(yellowLED, LOW);
  89. digitalWrite(greenLED, LOW);
  90. }
  91. currentTime = millis();
  92. // Every second, calculate and print L/Min
  93. if (currentTime >= (lastTime + 1000))
  94. {
  95. lastTime = currentTime;
  96. Serial.println("______________________");
  97. Serial.print(F("Humidity: "));
  98. Serial.print(h);
  99. Serial.println(F("%"));
  100. Serial.print(F("Temperature: "));
  101. Serial.print(t);
  102. Serial.println(F("°C "));
  103. Serial.println("______________________");
  104. Serial.print("Water Level: ");
  105. Serial.println(waterLevel);
  106. Serial.println("______________________");
  107. Serial.print("LowValue: ");
  108. Serial.println(WaterLevelLowValue);
  109. Serial.print("MedValue: ");
  110. Serial.println(WaterLevelMedValue);
  111. Serial.print("HighValue: ");
  112. Serial.println(WaterLevelHighValue);
  113. var1 = t;
  114. var2 = waterLevel;
  115. ss.print(var1, 2);
  116. ss.print("A");
  117. ss.print(var2);
  118. ss.print("B");
  119. ss.print("\n");
  120. }
  121. }
  122.  
  123. void read_GPS_receiver() {
  124. while (ssGPS.available() > 0) {
  125. if (gps.encode(ssGPS.read())) {
  126. if (gps.location.isValid()) {
  127. Latitude = String(gps.location.lat(), 6);
  128. Longitude = String(gps.location.lng(), 6);
  129. Serial.print(Latitude);
  130. Serial.print(",");
  131. Serial.print(Longitude);
  132. Serial.println();
  133. Serial.println("______________________");
  134. google_maps_link_string = "http://maps.google.com/maps?&z=15&mrt=yp&t=k&q=" + Latitude + "+" + Longitude;
  135. google_maps_link_string.toCharArray(google_maps_link, 70);
  136. }
  137. else {
  138. //Serial.println(F("INVALID"));
  139. }
  140. }
  141. }
  142. if (millis() > 5000 && gps.charsProcessed() < 10) {
  143. Serial.println(F("No GPS detected: check wiring."));
  144. while (true);
  145. }
  146. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement