testing GPS
This commit is contained in:
		
							parent
							
								
									a43da889d1
								
							
						
					
					
						commit
						f5eb8cdc76
					
				| @ -51,11 +51,11 @@ typedef struct { | ||||
| 
 | ||||
| #ifdef HAS_GPS | ||||
|   typedef struct { | ||||
|     double latitude; | ||||
|     double longitude; | ||||
|     double hdop; | ||||
|     uint32_t satellites; | ||||
|     double altitude; | ||||
|     float latitude; | ||||
|     float longitude; | ||||
|     float hdop; | ||||
|     uint8_t satellites; | ||||
|     uint16_t altitude; | ||||
|     } gpsStatus_t; | ||||
|   extern gpsStatus_t gps_status;        // struct for storing gps data
 | ||||
|   extern TinyGPSPlus gps;               // Make TinyGPS++ instance globally availabe
 | ||||
|  | ||||
| @ -7,11 +7,13 @@ static const char TAG[] = "main"; | ||||
| 
 | ||||
| // GPS read data to global struct
 | ||||
| void gps_read(){ | ||||
|     gps_status.latitude = gps.location.lat(); | ||||
|     gps_status.longitude = gps.location.lng(); | ||||
|     gps_status.satellites = gps.satellites.value(); | ||||
|     gps_status.hdop = gps.hdop.value(); | ||||
|     gps_status.altitude = gps.altitude.meters();  | ||||
|     gps_status.latitude = (float) gps.location.lat(); | ||||
|     gps_status.longitude = (float) gps.location.lng(); | ||||
|     gps_status.satellites = (uint8_t) gps.satellites.value(); | ||||
|     gps_status.hdop = (float) gps.hdop.value(); | ||||
|     gps_status.altitude = (uint16_t) gps.altitude.meters();  | ||||
|     ESP_LOGI(TAG, "Lat: %f / Lon: %f", gps_status.latitude, gps_status.longitude); | ||||
|     ESP_LOGI(TAG, "Sats: %d / HDOP: %f / Alti: %d", gps_status.satellites, gps_status.hdop, gps_status.altitude); | ||||
| } | ||||
| 
 | ||||
| /// GPS serial feed FreeRTos Task
 | ||||
|  | ||||
| @ -2,18 +2,18 @@ | ||||
| 
 | ||||
| #define CFG_sx1272_radio 1 | ||||
| #define HAS_LED NOT_A_PIN // FiPy has no on board LED, so we use RGB LED
 | ||||
| #define HAS_RGB_LED   0  // WS2812B RGB LED on GPIO0
 | ||||
| #define HAS_RGB_LED   GPIO_NUM_0  // WS2812B RGB LED on GPIO0
 | ||||
| 
 | ||||
| // Hardware pin definitions for Pycom FiPy board
 | ||||
| #define PIN_SPI_SS    18 | ||||
| #define PIN_SPI_MOSI  27 | ||||
| #define PIN_SPI_MISO  19 | ||||
| #define PIN_SPI_SCK   5 | ||||
| #define PIN_SPI_SS    GPIO_NUM_18 | ||||
| #define PIN_SPI_MOSI  GPIO_NUM_27 | ||||
| #define PIN_SPI_MISO  GPIO_NUM_19 | ||||
| #define PIN_SPI_SCK   GPIO_NUM_5 | ||||
| #define RST   LMIC_UNUSED_PIN | ||||
| #define DIO0  23 // LoRa IRQ
 | ||||
| #define DIO1  23 // workaround
 | ||||
| #define DIO0  GPIO_NUM_23 // LoRa IRQ
 | ||||
| #define DIO1  GPIO_NUM_23 // workaround
 | ||||
| #define DIO2  LMIC_UNUSED_PIN | ||||
| 
 | ||||
| // select WIFI antenna (internal = onboard / external = u.fl socket)
 | ||||
| #define HAS_ANTENNA_SWITCH  21      // pin for switching wifi antenna
 | ||||
| #define WIFI_ANTENNA 0              // 0 = internal, 1 = external
 | ||||
| #define HAS_ANTENNA_SWITCH  GPIO_NUM_21 // pin for switching wifi antenna
 | ||||
| #define WIFI_ANTENNA 0  // 0 = internal, 1 = external
 | ||||
|  | ||||
| @ -8,18 +8,18 @@ | ||||
| #define HAS_BUTTON GPIO_NUM_0 // button "PROG" on board
 | ||||
| 
 | ||||
| // re-define pin definitions of pins_arduino.h
 | ||||
| #define PIN_SPI_SS    18 // ESP32 GPIO18 (Pin18) -- SX1276 NSS (Pin19) SPI Chip Select Input
 | ||||
| #define PIN_SPI_MOSI  27 // ESP32 GPIO27 (Pin27) -- SX1276 MOSI (Pin18) SPI Data Input
 | ||||
| #define PIN_SPI_MISO  19 // ESP32 GPIO19 (Pin19) -- SX1276 MISO (Pin17) SPI Data Output
 | ||||
| #define PIN_SPI_SCK   5  // ESP32 GPIO5 (Pin5)   -- SX1276 SCK (Pin16) SPI Clock Input
 | ||||
| #define PIN_SPI_SS    GPIO_NUM_18 // ESP32 GPIO18 (Pin18) -- SX1276 NSS (Pin19) SPI Chip Select Input
 | ||||
| #define PIN_SPI_MOSI  GPIO_NUM_27 // ESP32 GPIO27 (Pin27) -- SX1276 MOSI (Pin18) SPI Data Input
 | ||||
| #define PIN_SPI_MISO  GPIO_NUM_19 // ESP32 GPIO19 (Pin19) -- SX1276 MISO (Pin17) SPI Data Output
 | ||||
| #define PIN_SPI_SCK   GPIO_NUM_5  // ESP32 GPIO5 (Pin5)   -- SX1276 SCK (Pin16) SPI Clock Input
 | ||||
| 
 | ||||
| // non arduino pin definitions
 | ||||
| #define RST   14 // ESP32 GPIO14 (Pin14) -- SX1276 NRESET (Pin7) Reset Trigger Input
 | ||||
| #define DIO0  26 // ESP32 GPIO26 (Pin15) -- SX1276 DIO0 (Pin8) used by LMIC for detecting LoRa RX_Done & TX_Done
 | ||||
| #define DIO1  33 // ESP32 GPIO33 (Pin13) -- SX1276 DIO1 (Pin9) used by LMIC for detecting LoRa RX_Timeout
 | ||||
| #define RST   GPIO_NUM_14 // ESP32 GPIO14 (Pin14) -- SX1276 NRESET (Pin7) Reset Trigger Input
 | ||||
| #define DIO0  GPIO_NUM_26 // ESP32 GPIO26 (Pin15) -- SX1276 DIO0 (Pin8) used by LMIC for detecting LoRa RX_Done & TX_Done
 | ||||
| #define DIO1  GPIO_NUM_33 // ESP32 GPIO33 (Pin13) -- SX1276 DIO1 (Pin9) used by LMIC for detecting LoRa RX_Timeout
 | ||||
| #define DIO2  LMIC_UNUSED_PIN // 32 ESP32 GPIO32 (Pin12) -- SX1276 DIO2 (Pin10) not used by LMIC for LoRa (Timeout for FSK only)
 | ||||
| 
 | ||||
| // Hardware pin definitions for Heltec LoRa-32 Board with OLED SSD1306 I2C Display
 | ||||
| #define OLED_RST 16 // ESP32 GPIO16 (Pin16) -- SD1306 RST
 | ||||
| #define OLED_SDA 4  // ESP32 GPIO4 (Pin4)   -- SD1306 D1+D2
 | ||||
| #define OLED_SCL 15 // ESP32 GPIO15 (Pin15) -- SD1306 D0
 | ||||
| #define OLED_RST GPIO_NUM_16 // ESP32 GPIO16 (Pin16) -- SD1306 RST
 | ||||
| #define OLED_SDA GPIO_NUM_4  // ESP32 GPIO4 (Pin4)   -- SD1306 D1+D2
 | ||||
| #define OLED_SCL GPIO_NUM_15 // ESP32 GPIO15 (Pin15) -- SD1306 D0
 | ||||
|  | ||||
| @ -2,16 +2,16 @@ | ||||
| 
 | ||||
| #define CFG_sx1272_radio 1 | ||||
| #define HAS_LED NOT_A_PIN // LoPy4 has no on board LED, so we use RGB LED on LoPy4
 | ||||
| #define HAS_RGB_LED   0  // WS2812B RGB LED on GPIO0
 | ||||
| #define HAS_RGB_LED GPIO_NUM_0  // WS2812B RGB LED on GPIO0
 | ||||
| 
 | ||||
| // Hardware pin definitions for Pycom LoPy board
 | ||||
| #define PIN_SPI_SS    17 | ||||
| #define PIN_SPI_MOSI  27 | ||||
| #define PIN_SPI_MISO  19 | ||||
| #define PIN_SPI_SCK   5 | ||||
| #define RST   18 | ||||
| #define DIO0  23 // LoRa IRQ
 | ||||
| #define DIO1  23 // workaround
 | ||||
| #define PIN_SPI_SS    GPIO_NUM_17 | ||||
| #define PIN_SPI_MOSI  GPIO_NUM_27 | ||||
| #define PIN_SPI_MISO  GPIO_NUM_19 | ||||
| #define PIN_SPI_SCK   GPIO_NUM_5 | ||||
| #define RST   GPIO_NUM_18 | ||||
| #define DIO0  GPIO_NUM_23 // LoRa IRQ
 | ||||
| #define DIO1  GPIO_NUM_23 // workaround
 | ||||
| #define DIO2  LMIC_UNUSED_PIN | ||||
| 
 | ||||
| // select WIFI antenna (internal = onboard / external = u.fl socket)
 | ||||
|  | ||||
| @ -2,16 +2,16 @@ | ||||
| 
 | ||||
| #define CFG_sx1276_radio 1 | ||||
| #define HAS_LED NOT_A_PIN // LoPy4 has no on board LED, so we use RGB LED on LoPy4
 | ||||
| #define HAS_RGB_LED   0  // WS2812B RGB LED on GPIO0
 | ||||
| #define HAS_RGB_LED   GPIO_NUM_0  // WS2812B RGB LED on GPIO0
 | ||||
| 
 | ||||
| // Hardware pin definitions for Pycom LoPy4 board
 | ||||
| #define PIN_SPI_SS    18 | ||||
| #define PIN_SPI_MOSI  27 | ||||
| #define PIN_SPI_MISO  19 | ||||
| #define PIN_SPI_SCK   5 | ||||
| #define PIN_SPI_SS    GPIO_NUM_18 | ||||
| #define PIN_SPI_MOSI  GPIO_NUM_27 | ||||
| #define PIN_SPI_MISO  GPIO_NUM_19 | ||||
| #define PIN_SPI_SCK   GPIO_NUM_5 | ||||
| #define RST   LMIC_UNUSED_PIN | ||||
| #define DIO0  23 // LoRa IRQ
 | ||||
| #define DIO1  23 // workaround
 | ||||
| #define DIO0  GPIO_NUM_23 // LoRa IRQ
 | ||||
| #define DIO1  GPIO_NUM_23 // workaround
 | ||||
| #define DIO2  LMIC_UNUSED_PIN | ||||
| 
 | ||||
| // select WIFI antenna (internal = onboard / external = u.fl socket)
 | ||||
|  | ||||
| @ -6,7 +6,7 @@ | ||||
| //#define HAS_BUTTON GPIO_NUM_39 // on board button "BOOT" (next to reset button) !! seems not to work!!
 | ||||
| #define HAS_BATTERY_PROBE ADC1_GPIO35_CHANNEL // battery probe GPIO pin -> ADC1_CHANNEL_7
 | ||||
| #define BATT_FACTOR 2 // voltage divider 100k/100k on board
 | ||||
| #define HAS_GPS 9600, SERIAL_8N1, 12, 15 | ||||
| #define HAS_GPS 9600, SERIAL_8N1, GPIO_NUM_12, GPIO_NUM_15 // UBlox NEO 6M or 7M 
 | ||||
| 
 | ||||
| // re-define pin definitions of pins_arduino.h
 | ||||
| #define PIN_SPI_SS    GPIO_NUM_18 // ESP32 GPIO18 (Pin18) -- HPD13A NSS/SEL (Pin4) SPI Chip Select Input
 | ||||
|  | ||||
| @ -9,18 +9,18 @@ | ||||
| #define HAS_BUTTON GPIO_NUM_0 // button "PRG" on board
 | ||||
| 
 | ||||
| // re-define pin definitions of pins_arduino.h
 | ||||
| #define PIN_SPI_SS    18 // ESP32 GPIO18 (Pin18) -- SX1276 NSS (Pin19) SPI Chip Select Input
 | ||||
| #define PIN_SPI_MOSI  27 // ESP32 GPIO27 (Pin27) -- SX1276 MOSI (Pin18) SPI Data Input
 | ||||
| #define PIN_SPI_MISO  19 // ESP32 GPIO19 (Pin19) -- SX1276 MISO (Pin17) SPI Data Output
 | ||||
| #define PIN_SPI_SCK   5  // ESP32 GPIO5 (Pin5)   -- SX1276 SCK (Pin16) SPI Clock Input
 | ||||
| #define PIN_SPI_SS    GPIO_NUM_18 // ESP32 GPIO18 (Pin18) -- SX1276 NSS (Pin19) SPI Chip Select Input
 | ||||
| #define PIN_SPI_MOSI  GPIO_NUM_27 // ESP32 GPIO27 (Pin27) -- SX1276 MOSI (Pin18) SPI Data Input
 | ||||
| #define PIN_SPI_MISO  GPIO_NUM_19 // ESP32 GPIO19 (Pin19) -- SX1276 MISO (Pin17) SPI Data Output
 | ||||
| #define PIN_SPI_SCK   GPIO_NUM_5  // ESP32 GPIO5 (Pin5)   -- SX1276 SCK (Pin16) SPI Clock Input
 | ||||
| 
 | ||||
| // non arduino pin definitions
 | ||||
| #define RST   14 // ESP32 GPIO14 (Pin14) -- SX1276 NRESET (Pin7) Reset Trigger Input
 | ||||
| #define DIO0  26 // ESP32 GPIO26 (Pin15) -- SX1276 DIO0 (Pin8) used by LMIC for detecting LoRa RX_Done & TX_Done
 | ||||
| #define DIO1  33 // ESP32 GPIO33 (Pin13) -- SX1276 DIO1 (Pin9) used by LMIC for detecting LoRa RX_Timeout
 | ||||
| #define RST   GPIO_NUM_14 // ESP32 GPIO14 (Pin14) -- SX1276 NRESET (Pin7) Reset Trigger Input
 | ||||
| #define DIO0  GPIO_NUM_26 // ESP32 GPIO26 (Pin15) -- SX1276 DIO0 (Pin8) used by LMIC for detecting LoRa RX_Done & TX_Done
 | ||||
| #define DIO1  GPIO_NUM_33 // ESP32 GPIO33 (Pin13) -- SX1276 DIO1 (Pin9) used by LMIC for detecting LoRa RX_Timeout
 | ||||
| #define DIO2  LMIC_UNUSED_PIN // 32 ESP32 GPIO32 (Pin12) -- SX1276 DIO2 (Pin10) not used by LMIC for LoRa (Timeout for FSK only)
 | ||||
| 
 | ||||
| // Hardware pin definitions for TTGOv1 Board with OLED SSD1306 I2C Display
 | ||||
| #define OLED_RST 16 // ESP32 GPIO16 (Pin16) -- SD1306 Reset
 | ||||
| #define OLED_SDA 4  // ESP32 GPIO4 (Pin4)   -- SD1306 Data
 | ||||
| #define OLED_SCL 15 // ESP32 GPIO15 (Pin15) -- SD1306 Clock
 | ||||
| #define OLED_RST GPIO_NUM_16 // ESP32 GPIO16 (Pin16) -- SD1306 Reset
 | ||||
| #define OLED_SDA GPIO_NUM_4  // ESP32 GPIO4 (Pin4)   -- SD1306 Data
 | ||||
| #define OLED_SCL GPIO_NUM_15 // ESP32 GPIO15 (Pin15) -- SD1306 Clock
 | ||||
|  | ||||
| @ -10,21 +10,21 @@ | ||||
| #define DISABLE_BROWNOUT 1 // comment out if you want to keep brownout feature
 | ||||
| 
 | ||||
| // re-define pin definitions of pins_arduino.h
 | ||||
| #define PIN_SPI_SS    18 // ESP32 GPIO18 (Pin18) -- HPD13A NSS/SEL (Pin4) SPI Chip Select Input
 | ||||
| #define PIN_SPI_MOSI  27 // ESP32 GPIO27 (Pin27) -- HPD13A MOSI/DSI (Pin6) SPI Data Input
 | ||||
| #define PIN_SPI_MISO  19 // ESP32 GPIO19 (Pin19) -- HPD13A MISO/DSO (Pin7) SPI Data Output
 | ||||
| #define PIN_SPI_SCK   5  // ESP32 GPIO5 (Pin5)   -- HPD13A SCK (Pin5) SPI Clock Input
 | ||||
| #define PIN_SPI_SS    GPIO_NUM_18 // ESP32 GPIO18 (Pin18) -- HPD13A NSS/SEL (Pin4) SPI Chip Select Input
 | ||||
| #define PIN_SPI_MOSI  GPIO_NUM_27 // ESP32 GPIO27 (Pin27) -- HPD13A MOSI/DSI (Pin6) SPI Data Input
 | ||||
| #define PIN_SPI_MISO  GPIO_NUM_19 // ESP32 GPIO19 (Pin19) -- HPD13A MISO/DSO (Pin7) SPI Data Output
 | ||||
| #define PIN_SPI_SCK   GPIO_NUM_5  // ESP32 GPIO5 (Pin5)   -- HPD13A SCK (Pin5) SPI Clock Input
 | ||||
| 
 | ||||
| // non arduino pin definitions
 | ||||
| #define RST   LMIC_UNUSED_PIN // connected to ESP32 RST/EN
 | ||||
| #define DIO0  26 // ESP32 GPIO26 wired on PCB to HPD13A
 | ||||
| #define DIO1  33 // HPDIO1 on pcb, needs to be wired external to GPIO33
 | ||||
| #define DIO0  GPIO_NUM_26 // ESP32 GPIO26 wired on PCB to HPD13A
 | ||||
| #define DIO1  GPIO_NUM_33 // HPDIO1 on pcb, needs to be wired external to GPIO33
 | ||||
| #define DIO2  LMIC_UNUSED_PIN // 32 HPDIO2 on pcb, needs to be wired external to GPIO32 (not necessary for LoRa, only FSK)
 | ||||
| 
 | ||||
| // Hardware pin definitions for TTGO V2 Board with OLED SSD1306 0,96" I2C Display
 | ||||
| #define OLED_RST U8X8_PIN_NONE // connected to CPU RST/EN
 | ||||
| #define OLED_SDA 21  // ESP32 GPIO4 (Pin4)   -- SD1306 D1+D2
 | ||||
| #define OLED_SCL 22 // ESP32 GPIO15 (Pin15) -- SD1306 D0
 | ||||
| #define OLED_SDA GPIO_NUM_21  // ESP32 GPIO4 (Pin4)   -- SD1306 D1+D2
 | ||||
| #define OLED_SCL GPIO_NUM_22 // ESP32 GPIO15 (Pin15) -- SD1306 D0
 | ||||
| 
 | ||||
| 
 | ||||
| /*
 | ||||
|  | ||||
| @ -4,23 +4,23 @@ | ||||
| 
 | ||||
| #define HAS_DISPLAY U8X8_SSD1306_128X64_NONAME_HW_I2C | ||||
| #define DISPLAY_FLIP  1 // rotated display
 | ||||
| #define HAS_LED 23 // green on board LED_G3 (not in initial board version)
 | ||||
| #define HAS_LED GPIO_NUM_23 // green on board LED_G3 (not in initial board version)
 | ||||
| #define HAS_BATTERY_PROBE ADC1_GPIO35_CHANNEL // battery probe GPIO pin -> ADC1_CHANNEL_7
 | ||||
| #define BATT_FACTOR 2 // voltage divider 100k/100k on board
 | ||||
| 
 | ||||
| // re-define pin definitions of pins_arduino.h
 | ||||
| #define PIN_SPI_SS    18 // ESP32 GPIO18 (Pin18) -- HPD13A NSS/SEL (Pin4) SPI Chip Select Input
 | ||||
| #define PIN_SPI_MOSI  27 // ESP32 GPIO27 (Pin27) -- HPD13A MOSI/DSI (Pin6) SPI Data Input
 | ||||
| #define PIN_SPI_MISO  19 // ESP32 GPIO19 (Pin19) -- HPD13A MISO/DSO (Pin7) SPI Data Output
 | ||||
| #define PIN_SPI_SCK   5  // ESP32 GPIO5 (Pin5)   -- HPD13A SCK (Pin5) SPI Clock Input
 | ||||
| #define PIN_SPI_SS    GPIO_NUM_18 // ESP32 GPIO18 (Pin18) -- HPD13A NSS/SEL (Pin4) SPI Chip Select Input
 | ||||
| #define PIN_SPI_MOSI  GPIO_NUM_27 // ESP32 GPIO27 (Pin27) -- HPD13A MOSI/DSI (Pin6) SPI Data Input
 | ||||
| #define PIN_SPI_MISO  GPIO_NUM_19 // ESP32 GPIO19 (Pin19) -- HPD13A MISO/DSO (Pin7) SPI Data Output
 | ||||
| #define PIN_SPI_SCK   GPIO_NUM_5  // ESP32 GPIO5 (Pin5)   -- HPD13A SCK (Pin5) SPI Clock Input
 | ||||
| 
 | ||||
| // non arduino pin definitions
 | ||||
| #define RST   LMIC_UNUSED_PIN // connected to ESP32 RST/EN
 | ||||
| #define DIO0  26 // ESP32 GPIO26 <-> HPD13A IO0
 | ||||
| #define DIO1  33 // ESP32 GPIO33 <-> HPDIO1 <-> HPD13A IO1
 | ||||
| #define DIO2  32 // ESP32 GPIO32 <-> HPDIO2 <-> HPD13A IO2
 | ||||
| #define DIO0  GPIO_NUM_26 // ESP32 GPIO26 <-> HPD13A IO0
 | ||||
| #define DIO1  GPIO_NUM_33 // ESP32 GPIO33 <-> HPDIO1 <-> HPD13A IO1
 | ||||
| #define DIO2  GPIO_NUM_32 // ESP32 GPIO32 <-> HPDIO2 <-> HPD13A IO2
 | ||||
| 
 | ||||
| // Hardware pin definitions for TTGO V2 Board with OLED SSD1306 0,96" I2C Display
 | ||||
| #define OLED_RST U8X8_PIN_NONE // connected to CPU RST/EN
 | ||||
| #define OLED_SDA 21 // ESP32 GPIO4 (Pin4)   -- SD1306 D1+D2
 | ||||
| #define OLED_SCL 22 // ESP32 GPIO15 (Pin15) -- SD1306 D0
 | ||||
| #define OLED_SDA GPIO_NUM_21 // ESP32 GPIO4 (Pin4)   -- SD1306 D1+D2
 | ||||
| #define OLED_SCL GPIO_NUM_22 // ESP32 GPIO15 (Pin15) -- SD1306 D0
 | ||||
| @ -260,12 +260,13 @@ void get_voltage (uint8_t val) { | ||||
| void get_gps (uint8_t val) { | ||||
|     ESP_LOGI(TAG, "Remote command: get gps status"); | ||||
|     #ifdef HAS_GPS | ||||
|     if (gps.location.isValid()) { | ||||
|         gps_read(); | ||||
|         transmit((byte*)&gps_status, sizeof(gps_status)); | ||||
|         ESP_LOGI(TAG, "HDOP=%d, SATS=%d, LAT=%d, LON=%d", gps_status.hdop, gps_status.satellites, gps_status.latitude, gps_status.longitude ); | ||||
|     } | ||||
|     #else | ||||
|         ESP_LOGE(TAG, "No GPS device present"); | ||||
|     #endif | ||||
| 
 | ||||
| }; | ||||
| 
 | ||||
| 
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user