Fixes to basic functionality, debug added
This commit contains a lot of basic fixes (basic string stuff, that couldn't be tested without a working server before) and adds debug messages.
This commit is contained in:
parent
20159cb27c
commit
ef0845096e
|
|
@ -4,7 +4,7 @@
|
||||||
#include <QMC5883LCompass.h>
|
#include <QMC5883LCompass.h>
|
||||||
#include "wifi_save.h"
|
#include "wifi_save.h"
|
||||||
#include <HTTPClient.h>
|
#include <HTTPClient.h>
|
||||||
#include <Arduino_JSON.h>
|
#include <ArduinoJson.h>
|
||||||
|
|
||||||
|
|
||||||
U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, /* reset=*/U8X8_PIN_NONE); // if you use Hardware I2C port, full framebuffer, size = 1024 bytes
|
U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, /* reset=*/U8X8_PIN_NONE); // if you use Hardware I2C port, full framebuffer, size = 1024 bytes
|
||||||
|
|
@ -19,7 +19,7 @@ QMC5883LCompass compass;
|
||||||
|
|
||||||
#define GPS_BAUD 9600
|
#define GPS_BAUD 9600
|
||||||
|
|
||||||
String webserviceAddress = "http://192.168.179.2:65133/updateGPS";
|
String webserviceAddress = "https://festival-finder.noe-danke.de/updateGPS";
|
||||||
bool connected = false;
|
bool connected = false;
|
||||||
|
|
||||||
HardwareSerial gpsSerial(2);
|
HardwareSerial gpsSerial(2);
|
||||||
|
|
@ -49,13 +49,10 @@ void setup(void) {
|
||||||
|
|
||||||
Serial.begin(115200);
|
Serial.begin(115200);
|
||||||
|
|
||||||
if (wifi_set_main())
|
if (wifi_set_main()) {
|
||||||
{
|
|
||||||
Serial.println("Connect WIFI SUCCESS");
|
Serial.println("Connect WIFI SUCCESS");
|
||||||
connected = true;
|
connected = true;
|
||||||
}
|
} else {
|
||||||
else
|
|
||||||
{
|
|
||||||
Serial.println("Connect WIFI FAULT");
|
Serial.println("Connect WIFI FAULT");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -64,7 +61,6 @@ void setup(void) {
|
||||||
u8g2.begin(); // start a display.
|
u8g2.begin(); // start a display.
|
||||||
gpsSerial.begin(GPS_BAUD, SERIAL_8N1, RXD2, TXD2);
|
gpsSerial.begin(GPS_BAUD, SERIAL_8N1, RXD2, TXD2);
|
||||||
Serial.println("Serial 2 started at 9600 baud rate");
|
Serial.println("Serial 2 started at 9600 baud rate");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void drawTriangles(byte i, char *time, char *distanceString) {
|
void drawTriangles(byte i, char *time, char *distanceString) {
|
||||||
|
|
@ -77,15 +73,14 @@ void drawTriangles(byte i, char* time, char* distanceString) {
|
||||||
u8g2.drawButtonUTF8(48, 64 - 16, U8G2_BTN_BW0, 0, 0, 0, distanceString);
|
u8g2.drawButtonUTF8(48, 64 - 16, U8G2_BTN_BW0, 0, 0, 0, distanceString);
|
||||||
u8g2.sendBuffer();
|
u8g2.sendBuffer();
|
||||||
delay(2000);
|
delay(2000);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool doHttpRequest(const char* payload, char* latitude, char* longitude, char* gpsTime) {
|
bool doHttpRequest(char *payload, char *latitude, char *longitude, char *gpsTime) {
|
||||||
HTTPClient http;
|
HTTPClient http;
|
||||||
// Change space to 0
|
// Change space to 0
|
||||||
*(latitude + 6) = 0;
|
*(latitude + 6) = '0';
|
||||||
|
|
||||||
String serverPath = webserviceAddress + "?long=" + *longitude + "&lat=" + *latitude + "&id=" + OWN_ID + "&req_id=" + REQ_ID + "&gpsDateTime=" + *gpsTime;
|
String serverPath = webserviceAddress + "?long=" + longitude + "&lat=" + latitude + "&id=" + OWN_ID + "&req_id=" + REQ_ID + "&gpsDateTime=" + gpsTime;
|
||||||
|
|
||||||
Serial.println(serverPath);
|
Serial.println(serverPath);
|
||||||
|
|
||||||
|
|
@ -98,14 +93,15 @@ bool doHttpRequest(const char* payload, char* latitude, char* longitude, char* g
|
||||||
// Send HTTP GET request
|
// Send HTTP GET request
|
||||||
int httpResponseCode = http.GET();
|
int httpResponseCode = http.GET();
|
||||||
|
|
||||||
if (httpResponseCode>0) {
|
|
||||||
Serial.print("HTTP Response code: ");
|
Serial.print("HTTP Response code: ");
|
||||||
Serial.println(httpResponseCode);
|
Serial.println(httpResponseCode);
|
||||||
payload = http.getString().c_str();
|
|
||||||
|
if (httpResponseCode == 200 ) {
|
||||||
|
const char* cpayload = http.getString().c_str();
|
||||||
|
strcpy(payload, cpayload);
|
||||||
Serial.println(payload);
|
Serial.println(payload);
|
||||||
return true;
|
return true;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
Serial.print("Error code: ");
|
Serial.print("Error code: ");
|
||||||
Serial.println(httpResponseCode);
|
Serial.println(httpResponseCode);
|
||||||
return false;
|
return false;
|
||||||
|
|
@ -117,12 +113,25 @@ byte calculateBearing(float bearing) {
|
||||||
relativeAngle += 360;
|
relativeAngle += 360;
|
||||||
relativeAngle %= 360;
|
relativeAngle %= 360;
|
||||||
return compass.getBearing(relativeAngle);
|
return compass.getBearing(relativeAngle);
|
||||||
|
|
||||||
}
|
}
|
||||||
void setDistanceBearingString(char *distance, byte *bearing, const char *payload) {
|
void setDistanceBearingString(char *distance, byte *bearing, const char *payload) {
|
||||||
JSONVar jsonPayload = JSON.parse(payload);
|
StaticJsonDocument<200> doc;
|
||||||
*distance = jsonPayload["dist"];
|
|
||||||
*bearing = calculateBearing(String(jsonPayload["bearing"]).toFloat());
|
DeserializationError error = deserializeJson(doc, payload);
|
||||||
|
|
||||||
|
if (error) {
|
||||||
|
Serial.print(F("deserializeJson() failed: "));
|
||||||
|
Serial.println(error.f_str());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const char* dist2 = doc["distance"];
|
||||||
|
//Serial.println(dist2);
|
||||||
|
Serial.println("JSON stuff:");
|
||||||
|
Serial.println(dist2);
|
||||||
|
|
||||||
|
strcpy(distance, dist2);
|
||||||
|
*bearing = calculateBearing(String(doc["bearing"]).toFloat());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -131,13 +140,13 @@ void loop(void) {
|
||||||
while (gpsSerial.available() > 0) {
|
while (gpsSerial.available() > 0) {
|
||||||
// get the byte data from the GPS
|
// get the byte data from the GPS
|
||||||
char gpsData = gpsSerial.read();
|
char gpsData = gpsSerial.read();
|
||||||
|
|
||||||
if (gps.encode(gpsData)) {
|
|
||||||
Serial.print(gpsData);
|
Serial.print(gpsData);
|
||||||
|
if (gps.encode(gpsData)) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Serial.println();
|
||||||
long unsigned date, time, age;
|
long unsigned date, time, age;
|
||||||
char *longitude, *latitude, *dateTime;
|
char *longitude, *latitude, *dateTime;
|
||||||
longitude = gps.get_longitude();
|
longitude = gps.get_longitude();
|
||||||
|
|
@ -147,30 +156,44 @@ void loop(void) {
|
||||||
Serial.println(latitude);
|
Serial.println(latitude);
|
||||||
Serial.println(longitude);
|
Serial.println(longitude);
|
||||||
|
|
||||||
const char *myPayloadResponse;
|
char myPayloadResponse[80];
|
||||||
|
|
||||||
char timeString[10], dateString[8], dateTimeString[18];
|
char timeString[10], dateString[10], dateTimeString[24];
|
||||||
ltoa(time, timeString, 10);
|
ltoa(time, timeString, 10);
|
||||||
ltoa(date, dateString, 8);
|
ltoa(date, dateString, 10);
|
||||||
for (int i = 0; i < 18 ;i++){
|
// for (int i = 0; i < 18; i++) {
|
||||||
if(i < 8)
|
// if (i < 7) {
|
||||||
dateTimeString[i] = dateString[i];
|
// dateTimeString[i] = dateString[i];
|
||||||
else
|
// } else {
|
||||||
dateTimeString[i] = timeString[i-8];
|
// dateTimeString[i] = timeString[i - 8];
|
||||||
}
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
strcpy(dateTimeString, dateString);
|
||||||
|
strcat(dateTimeString, timeString);
|
||||||
|
|
||||||
byte triangleIndex = 0;
|
byte triangleIndex = 0;
|
||||||
char distanceArray[] = { 'N', 'o', ' ', 'S', 'e', 'r', 'v', 'e', 'r', '\0' };
|
char distanceArray[] = { 'N', 'o', ' ', 'S', 'e', 'r', 'v', 'e', 'r', '\0' };
|
||||||
char *distanceString = &(distanceArray[0]);
|
char distanceString[16];
|
||||||
|
strcpy(distanceString, distanceArray);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (doHttpRequest(myPayloadResponse, latitude, longitude, dateTimeString))
|
if (doHttpRequest(myPayloadResponse, latitude, longitude, dateTimeString))
|
||||||
setDistanceBearingString(distanceString, &triangleIndex, myPayloadResponse);
|
setDistanceBearingString(distanceString, &triangleIndex, myPayloadResponse);
|
||||||
|
|
||||||
Serial.println();
|
Serial.println();
|
||||||
Serial.println("Time: ");
|
Serial.println("TimeString: ");
|
||||||
Serial.println(time);
|
Serial.println(timeString);
|
||||||
|
Serial.println("DateString: ");
|
||||||
|
Serial.println(dateString);
|
||||||
Serial.println("Date: ");
|
Serial.println("Date: ");
|
||||||
Serial.println(date);
|
Serial.println(dateString);
|
||||||
|
Serial.println("DateTime: ");
|
||||||
|
Serial.println(dateTimeString);
|
||||||
|
Serial.println("DistanceString: ");
|
||||||
|
Serial.println(distanceString);
|
||||||
|
|
||||||
|
|
||||||
drawTriangles(triangleIndex, timeString, distanceString);
|
drawTriangles(triangleIndex, timeString, distanceString);
|
||||||
|
|
||||||
|
|
@ -193,5 +216,5 @@ void loop(void) {
|
||||||
Serial.println();
|
Serial.println();
|
||||||
Serial.println("-------------------------------");
|
Serial.println("-------------------------------");
|
||||||
|
|
||||||
delay(1000);
|
delay(5000);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user