Hello,
I need help with my project using GPS stream.
My project is to set a relay contact during a second when i arrive near my home location to automaticaly open my gate .
i use ESP8266 with wifi connection my phone is a oneplus 6 .
It doesn’t work , the location send by my phone GPS seem no to be update .
this is my sketch code .
/*************************************************************
Download latest Blynk library here:
https://github.com/blynkkk/blynk-library/releases/latest
Blynk is a platform with iOS and Android apps to control
Arduino, Raspberry Pi and the likes over the Internet.
You can easily build graphic interfaces for all your
projects by simply dragging and dropping widgets.
Downloads, docs, tutorials: http://www.blynk.cc
Sketch generator: http://examples.blynk.cc
Blynk community: http://community.blynk.cc
Follow us: http://www.fb.com/blynkapp
http://twitter.com/blynk_app
Blynk library is licensed under MIT license
This example code is in public domain.
*************************************************************
App project setup:
GPS Stream widget on V1.
*************************************************************/
/* Comment this out to disable prints and save space */
#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = "****************";
// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "************";
char pass[] = "*************";
// definition variables
float homeLat = xxxxxxxxxxx;
float homeLon = xxxxxxxxxxxxxxxx;
float thresholdDistance =100; // meter
BLYNK_WRITE(V1)
{
GpsParam gps(param);
float distance=0;
float distance2=0;
long x=0;
long y=0;
digitalWrite(0, HIGH);
surveille:
x=0; //init x
do
{
distance = distanceCalc(homeLat, homeLon, gps.getLat(), gps.getLon());
Blynk.virtualWrite(V6,x);
Blynk.virtualWrite(V5,distance);
x=x+1;
delay(1500);
} while(distance>thresholdDistance);
digitalWrite(0, LOW); // mets à 1a sortie
delay(1000); // Attendre 1 seconde - Wait for a second
digitalWrite(0,HIGH); // Mets la sortie à 0
y=0; //init y
do
{
distance2 = distanceCalc(homeLat, homeLon, gps.getLat(), gps.getLon());
Blynk.virtualWrite(V8,distance2);
Blynk.virtualWrite(V7,y );
y=y+1;
delay(1500);
} while(distance2<thresholdDistance);
goto surveille;
}
float distanceCalc(float lat1, float long1, float lat2, float long2)
{
float distLat, distLong, distance;
distLat = (lat1 - lat2) * 111194.9;
distLong = 111194.9 * (long1 - long2) * cos(radians((lat1 + lat2) / 2));
distance = sqrt(pow(distLat, 2) + pow(distLong, 2));
return distance; // in meter
}
void setup()
{
// Debug console
Serial.begin(9600);
Blynk.begin(auth, ssid, pass);
pinMode(0, OUTPUT); // Initialise la broche 0 comme une sortie
}
void loop()
{
Blynk.run();
}