Professional Documents
Culture Documents
#include <SoftwareSerial.h>
#include <FirebaseESP8266.h>
#include <TinyGPS++.h>
#include <ESP8266WiFi.h>
#define FIREBASE_HOST "fina-dd95d.firebaseio.com"
#define FIREBASE_AUTH "zgUEQCFSDszkWPhciY8OmhjxaanuQbeXThQYehYC"
#define WIFI_SSID "Cahyaningati"
#define WIFI_PASSWORD "123123123"
TinyGPSPlus gps;
SoftwareSerial ss(4, 5); // for connect GPS
FirebaseData firebaseData;
void setup()
{
pinMode(D3, OUTPUT); //led
pinMode(D4, OUTPUT); //buzzer
Serial.begin(9600);
ss.begin(9600);
Serial.println();
Serial.print("Connecting to ");
Serial.println(WIFI_SSID);
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
while (WiFi.status() != WL_CONNECTED)
{
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi Connected");
Serial.println(WiFi.localIP());
Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH);
Serial.println("Firebase Connected");
}
void loop() {
if (Firebase.getInt(firebaseData, "ADA_PANGGILAN")){
if(firebaseData.dataType() == "int"){
int val = firebaseData.intData();
if(val != 0){
Serial.println("Ada panggilan darurat");
Darurat();
}
if(val != 1){
Serial.println("FINA standby");
ScanLokasi();
}
}
}
}
void ScanLokasi() {
while (ss.available() > 0)
if (gps.encode(ss.read()))
{
if (gps.location.isValid())
{
latitude = gps.location.lat();
double lat_str = latitude;
Serial.print("Latitude : ");
if (Firebase.setDouble(firebaseData, "LATITUDE", lat_str)) {
printResult(firebaseData);
}
else {
Serial.print("FAILED ");
Serial.println("REASON: " + firebaseData.errorReason());
}
longitude = gps.location.lng();
double lng_str = longitude;
Serial.print("Longitude : ");
if (Firebase.setDouble(firebaseData, "LONGITUDE", lng_str)) {
printResult(firebaseData);
}
else {
Serial.print("FAILED ");
Serial.println("REASON: " + firebaseData.errorReason());
}
}
}
}
void Darurat() {
digitalWrite(D3, HIGH);
digitalWrite(D4, HIGH);
delay(500);
digitalWrite(D3, LOW);
digitalWrite(D4, LOW);
delay(500);
}
Referensi :
https://www.javacodegeeks.com/2019/07/esp8266-esp32-firebase-realtime-database-iot.html