Advertisement
banyucenter

Untitled

Jan 3rd, 2019
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.03 KB | None | 0 0
  1. #include <TinyGPS++.h>
  2. #include <SoftwareSerial.h>
  3. #include <ESP8266WiFi.h>
  4. #include <FirebaseArduino.h>
  5. static const int RXPin = 6, TXPin = 7;
  6. static const uint32_t GPSBaud = 9600;
  7. const char* ssid     = "Banyustudio";
  8. const char* password = "4llahMahaKaya9900*#";
  9. #define FIREBASE_HOST "landslidepad-6c940.firebaseio.com"
  10. #define FIREBASE_AUTH "c7dsqqiinizfMQAkkqBIMfqkmQ9iskIhaDiiEC1f"
  11. TinyGPSPlus gps;
  12. WiFiClient  client;
  13. SoftwareSerial ss(RXPin, TXPin);
  14. void setup()
  15. {
  16.   Serial.begin(115200);
  17.   ss.begin(GPSBaud);
  18.   Serial.println(F(":App Started"));
  19.   Serial.println(F("Realtime GPS data IoT"));
  20.   Serial.print(F("GPS Started"));
  21.   Serial.println(TinyGPSPlus::libraryVersion());
  22.   Serial.println();
  23.   Serial.print("Connecting to ");
  24.   Serial.println(ssid);
  25.   WiFi.begin(ssid, password);
  26.   while (WiFi.status() != WL_CONNECTED) {
  27.     delay(500);
  28.     Serial.print(".");
  29.   }
  30.   Serial.println("");
  31.   Serial.println("WiFi connected");
  32.   Serial.println("IP address: ");
  33.   Serial.println(WiFi.localIP());
  34.   Serial.print("Netmask: ");
  35.   Serial.println(WiFi.subnetMask());
  36.   Serial.print("Gateway: ");
  37.   Serial.println(WiFi.gatewayIP());
  38.   Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH);
  39. }
  40. void loop()
  41. {
  42.   displayInfo();
  43.   yield();
  44.   smartDelay(5000);
  45. }
  46. static void smartDelay(unsigned long ms) {  
  47.   unsigned long start = millis();
  48.   do {
  49.     while (ss.available())
  50.       gps.encode(ss.read());
  51.   } while (millis() - start < ms);
  52. }
  53. void displayInfo()
  54. {
  55.   if (gps.location.isValid())
  56.   {
  57.     const double TOWER_LAT = -7.441299;
  58.     const double TOWER_LNG = 109.211704;
  59.     double latitude = (gps.location.lat());
  60.     double longitude = (gps.location.lng());
  61.     double distanceM = gps.distanceBetween(TOWER_LAT, TOWER_LNG, latitude, longitude) / 10;
  62.     Serial.print("Jarak titik: ");
  63.     Serial.println(distanceM);
  64.     Serial.print(" meter");
  65.     Serial.println("");
  66.     String latbuf;
  67.     latbuf += (String(latitude, 6));
  68.     Serial.print("lat : ");
  69.     Serial.print(latbuf);
  70.     Serial.println();
  71.     String lonbuf;
  72.     lonbuf += (String(longitude, 6));
  73.     Serial.print("lon : ");
  74.     Serial.print(lonbuf); Serial.println();
  75.     if (Firebase.failed()) {
  76.       Serial.println("Firebase get failed");
  77.       Serial.println(Firebase.error());
  78.       return;
  79.     } else {
  80.       Firebase.setFloat("Lat", latitude);
  81.       Serial.println("mengirim data latitude : ");
  82.       Serial.println();
  83.       Firebase.setFloat("Lon", longitude);
  84.       Serial.println("mengirim data longitude : ");
  85.       Firebase.setFloat("Distance", distanceM);
  86.       Serial.println("mengirim data distance : ");
  87.       if (distanceM >= 0.3) {
  88.         Serial.println("status bahaya : ");
  89.         Firebase.set("Status", "Bahaya");
  90.       } else if (distanceM >= 0.2) {
  91.         Serial.println("status waspada : ");
  92.         Firebase.set("Status", "Waspada");
  93.       }
  94.       else if (distanceM >= 0.1) {
  95.         Serial.println("status hati-hati : ");
  96.         Firebase.set("Status", "Hati-hati");
  97.       } else {
  98.         Serial.println("status aman : ");
  99.         Firebase.set("Status", "Aman");
  100.       }
  101.     }
  102.     delay(5000);
  103.   }
  104.   else
  105.   {
  106.     Serial.print(F("INVALID"));
  107.   }
  108.   Serial.print(F("  Date/Time: "));
  109.   if (gps.date.isValid())
  110.   {
  111.     Serial.print(gps.date.month());
  112.     Serial.print(F("/"));
  113.     Serial.print(gps.date.day());
  114.     Serial.print(F("/"));
  115.     Serial.print(gps.date.year());
  116.   }
  117.   else
  118.   {
  119.     Serial.print(F("INVALID"));
  120.   }
  121.   Serial.print(F(" "));
  122.   if (gps.time.isValid())
  123.   {
  124.     if (gps.time.hour() < 10) Serial.print(F("0"));
  125.     Serial.print(gps.time.hour());
  126.     Serial.print(F(":"));
  127.     if (gps.time.minute() < 10) Serial.print(F("0"));
  128.     Serial.print(gps.time.minute());
  129.     Serial.print(F(":"));
  130.     if (gps.time.second() < 10) Serial.print(F("0"));
  131.     Serial.print(gps.time.second());
  132.     Serial.print(F("."));
  133.     if (gps.time.centisecond() < 10) Serial.print(F("0"));
  134.     Serial.print(gps.time.centisecond());
  135.   }
  136.   else
  137.   {
  138.     Serial.print(F("INVALID"));
  139.   }
  140.   Serial.println();
  141. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement