Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "DHT.h"
- #include <TinyGPSPlus.h>
- #include <SoftwareSerial.h>
- #define redLed 10
- #define yellowLED 9
- #define greenLED 8
- #define WaterLevelLow A0
- #define WaterLevelMed A1
- #define WaterLevelHigh A2
- #define DHTPIN 2
- #define GPSrxPin 3
- #define GPStxPin 4
- #define rxPin 5
- #define txPin 6
- #define DHTTYPE DHT11
- SoftwareSerial ss(rxPin, txPin);
- SoftwareSerial ssGPS(GPSrxPin, GPStxPin);
- TinyGPSPlus gps;
- DHT dht(DHTPIN, DHTTYPE);
- float h = 0;
- float t = 0;
- int waterlevelvalue = 170;
- float var1;
- int var2;
- int waterLevel = 0;
- int WaterLevelLowValue = 0;
- int WaterLevelMedValue = 0;
- int WaterLevelHighValue = 0;
- unsigned long currentTime;
- unsigned long lastTime;
- char google_maps_link[70];
- String google_maps_link_string = "";
- String Longitude = "1";
- String Latitude = "1";
- void setup() {
- pinMode(redLed, OUTPUT);
- pinMode(yellowLED, OUTPUT);
- pinMode(greenLED, OUTPUT);
- pinMode(WaterLevelLow, INPUT);
- pinMode(WaterLevelMed, INPUT);
- pinMode(WaterLevelHigh, INPUT);
- digitalWrite(redLed, HIGH);
- digitalWrite(yellowLED, LOW);
- digitalWrite(greenLED, LOW);
- Serial.begin(9600);
- ss.begin(9600);
- ssGPS.begin(9600);
- dht.begin();
- currentTime = millis();
- lastTime = currentTime;
- }
- void loop () {
- read_GPS_receiver();
- h = dht.readHumidity();
- t = dht.readTemperature();
- WaterLevelLowValue = analogRead(WaterLevelLow);
- WaterLevelMedValue = analogRead(WaterLevelMed);
- WaterLevelHighValue = analogRead(WaterLevelHigh);
- if (WaterLevelLowValue < waterlevelvalue && WaterLevelMedValue < waterlevelvalue && WaterLevelHighValue < waterlevelvalue) {
- waterLevel = 0;//tank is @ 0% Empty
- digitalWrite(redLed, LOW);
- digitalWrite(yellowLED, LOW);
- digitalWrite(greenLED, HIGH);
- }
- else if (WaterLevelLowValue > waterlevelvalue && WaterLevelMedValue < waterlevelvalue && WaterLevelHighValue < waterlevelvalue) {
- waterLevel = 30;//tank is @ 30%
- digitalWrite(redLed, LOW);
- digitalWrite(yellowLED, LOW);
- digitalWrite(greenLED, HIGH);
- }
- else if (WaterLevelLowValue > waterlevelvalue && WaterLevelMedValue > waterlevelvalue && WaterLevelHighValue < waterlevelvalue) {
- waterLevel = 60;//tank is @ 60%
- digitalWrite(redLed, LOW);
- digitalWrite(yellowLED, HIGH);
- digitalWrite(greenLED, LOW);
- }
- else if (WaterLevelLowValue > waterlevelvalue && WaterLevelMedValue > waterlevelvalue && WaterLevelHighValue > waterlevelvalue) {
- waterLevel = 100;//tank is @ 100% Full
- digitalWrite(redLed, HIGH);
- digitalWrite(yellowLED, LOW);
- digitalWrite(greenLED, LOW);
- }
- currentTime = millis();
- // Every second, calculate and print L/Min
- if (currentTime >= (lastTime + 1000))
- {
- lastTime = currentTime;
- Serial.println("______________________");
- Serial.print(F("Humidity: "));
- Serial.print(h);
- Serial.println(F("%"));
- Serial.print(F("Temperature: "));
- Serial.print(t);
- Serial.println(F("°C "));
- Serial.println("______________________");
- Serial.print("Water Level: ");
- Serial.println(waterLevel);
- Serial.println("______________________");
- Serial.print("LowValue: ");
- Serial.println(WaterLevelLowValue);
- Serial.print("MedValue: ");
- Serial.println(WaterLevelMedValue);
- Serial.print("HighValue: ");
- Serial.println(WaterLevelHighValue);
- var1 = t;
- var2 = waterLevel;
- ss.print(var1, 2);
- ss.print("A");
- ss.print(var2);
- ss.print("B");
- ss.print("\n");
- }
- }
- void read_GPS_receiver() {
- while (ssGPS.available() > 0) {
- if (gps.encode(ssGPS.read())) {
- if (gps.location.isValid()) {
- Latitude = String(gps.location.lat(), 6);
- Longitude = String(gps.location.lng(), 6);
- Serial.print(Latitude);
- Serial.print(",");
- Serial.print(Longitude);
- Serial.println();
- Serial.println("______________________");
- google_maps_link_string = "http://maps.google.com/maps?&z=15&mrt=yp&t=k&q=" + Latitude + "+" + Longitude;
- google_maps_link_string.toCharArray(google_maps_link, 70);
- }
- else {
- //Serial.println(F("INVALID"));
- }
- }
- }
- if (millis() > 5000 && gps.charsProcessed() < 10) {
- Serial.println(F("No GPS detected: check wiring."));
- while (true);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement