Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <TinyGPS++.h>
- #include <SoftwareSerial.h>
- #include <ESP8266WiFi.h>
- #include <FirebaseArduino.h>
- static const int RXPin = 6, TXPin = 7;
- static const uint32_t GPSBaud = 9600;
- const char* ssid = "Banyustudio";
- const char* password = "4llahMahaKaya9900*#";
- #define FIREBASE_HOST "landslidepad-6c940.firebaseio.com"
- #define FIREBASE_AUTH "c7dsqqiinizfMQAkkqBIMfqkmQ9iskIhaDiiEC1f"
- TinyGPSPlus gps;
- WiFiClient client;
- SoftwareSerial ss(RXPin, TXPin);
- void setup()
- {
- Serial.begin(115200);
- ss.begin(GPSBaud);
- Serial.println(F(":App Started"));
- Serial.println(F("Realtime GPS data IoT"));
- Serial.print(F("GPS Started"));
- Serial.println(TinyGPSPlus::libraryVersion());
- Serial.println();
- Serial.print("Connecting to ");
- Serial.println(ssid);
- WiFi.begin(ssid, password);
- while (WiFi.status() != WL_CONNECTED) {
- delay(500);
- Serial.print(".");
- }
- Serial.println("");
- Serial.println("WiFi connected");
- Serial.println("IP address: ");
- Serial.println(WiFi.localIP());
- Serial.print("Netmask: ");
- Serial.println(WiFi.subnetMask());
- Serial.print("Gateway: ");
- Serial.println(WiFi.gatewayIP());
- Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH);
- }
- void loop()
- {
- displayInfo();
- yield();
- smartDelay(5000);
- }
- static void smartDelay(unsigned long ms) {
- unsigned long start = millis();
- do {
- while (ss.available())
- gps.encode(ss.read());
- } while (millis() - start < ms);
- }
- void displayInfo()
- {
- if (gps.location.isValid())
- {
- const double TOWER_LAT = -7.441299;
- const double TOWER_LNG = 109.211704;
- double latitude = (gps.location.lat());
- double longitude = (gps.location.lng());
- double distanceM = gps.distanceBetween(TOWER_LAT, TOWER_LNG, latitude, longitude) / 10;
- Serial.print("Jarak titik: ");
- Serial.println(distanceM);
- Serial.print(" meter");
- Serial.println("");
- String latbuf;
- latbuf += (String(latitude, 6));
- Serial.print("lat : ");
- Serial.print(latbuf);
- Serial.println();
- String lonbuf;
- lonbuf += (String(longitude, 6));
- Serial.print("lon : ");
- Serial.print(lonbuf); Serial.println();
- if (Firebase.failed()) {
- Serial.println("Firebase get failed");
- Serial.println(Firebase.error());
- return;
- } else {
- Firebase.setFloat("Lat", latitude);
- Serial.println("mengirim data latitude : ");
- Serial.println();
- Firebase.setFloat("Lon", longitude);
- Serial.println("mengirim data longitude : ");
- Firebase.setFloat("Distance", distanceM);
- Serial.println("mengirim data distance : ");
- if (distanceM >= 0.3) {
- Serial.println("status bahaya : ");
- Firebase.set("Status", "Bahaya");
- } else if (distanceM >= 0.2) {
- Serial.println("status waspada : ");
- Firebase.set("Status", "Waspada");
- }
- else if (distanceM >= 0.1) {
- Serial.println("status hati-hati : ");
- Firebase.set("Status", "Hati-hati");
- } else {
- Serial.println("status aman : ");
- Firebase.set("Status", "Aman");
- }
- }
- delay(5000);
- }
- else
- {
- Serial.print(F("INVALID"));
- }
- Serial.print(F(" Date/Time: "));
- if (gps.date.isValid())
- {
- Serial.print(gps.date.month());
- Serial.print(F("/"));
- Serial.print(gps.date.day());
- Serial.print(F("/"));
- Serial.print(gps.date.year());
- }
- else
- {
- Serial.print(F("INVALID"));
- }
- Serial.print(F(" "));
- if (gps.time.isValid())
- {
- if (gps.time.hour() < 10) Serial.print(F("0"));
- Serial.print(gps.time.hour());
- Serial.print(F(":"));
- if (gps.time.minute() < 10) Serial.print(F("0"));
- Serial.print(gps.time.minute());
- Serial.print(F(":"));
- if (gps.time.second() < 10) Serial.print(F("0"));
- Serial.print(gps.time.second());
- Serial.print(F("."));
- if (gps.time.centisecond() < 10) Serial.print(F("0"));
- Serial.print(gps.time.centisecond());
- }
- else
- {
- Serial.print(F("INVALID"));
- }
- Serial.println();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement