Merge branch 'dl9rdz:devel' into devel
This commit is contained in:
commit
d6f65d7d01
|
|
@ -7,7 +7,7 @@ based on a TTGO LoRa ESP32 board.
|
||||||
It supports OLED displays (SSD1306, SH1106) and TFT displays (ILI9225, ILI9341/9342).
|
It supports OLED displays (SSD1306, SH1106) and TFT displays (ILI9225, ILI9341/9342).
|
||||||
|
|
||||||
It also supports feeding data to external applications using WiFi (NOT bluetooth):
|
It also supports feeding data to external applications using WiFi (NOT bluetooth):
|
||||||
- Arduino app by dl9rdz (see https://github.com/dl9rdz/rdzwx-go for apk download)
|
- Android app by dl9rdz (see https://github.com/dl9rdz/rdzwx-go for apk download)
|
||||||
- AXUDP (for aprsmap application by oe5dxl, among others)
|
- AXUDP (for aprsmap application by oe5dxl, among others)
|
||||||
- KISS TNC (aprs format, mainly useful for APRSdroid app)
|
- KISS TNC (aprs format, mainly useful for APRSdroid app)
|
||||||
- MQTT
|
- MQTT
|
||||||
|
|
@ -25,8 +25,8 @@ Manufacturer | Model | Position | Temperature | Humidity | Pressure
|
||||||
-------------|-------|----------|-------------|----------|----------
|
-------------|-------|----------|-------------|----------|----------
|
||||||
Vaisala | RS92-SGP/NGP | :heavy_check_mark: | :heavy_check_mark: | :x: | :x:
|
Vaisala | RS92-SGP/NGP | :heavy_check_mark: | :heavy_check_mark: | :x: | :x:
|
||||||
Vaisala | RS41-SG/SGP/SGM | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: (for -SGP)
|
Vaisala | RS41-SG/SGP/SGM | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: (for -SGP)
|
||||||
Graw | DFM06/09/17 | :heavy_check_mark: | :x: | :x: | :x:
|
Graw | DFM06/09/17 | :heavy_check_mark: | :heavy_check_mark: | :x: | :x:
|
||||||
Meteomodem | M10 | :heavy_check_mark: | :heavy_check_mark: | :x: | Not Sent
|
Meteomodem | M10 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | Not Sent
|
||||||
Meteomodem | M20 | :heavy_check_mark: | :x: | :x: | Not Sent
|
Meteomodem | M20 | :heavy_check_mark: | :x: | :x: | Not Sent
|
||||||
Meteo-Radiy | MP3-H1 (MRZ-H1) | :heavy_check_mark: | :x: | :x: | :x:
|
Meteo-Radiy | MP3-H1 (MRZ-H1) | :heavy_check_mark: | :x: | :x: | :x:
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -241,3 +241,25 @@ fonts=0,1
|
||||||
4,9=Mh%rH
|
4,9=Mh%rH
|
||||||
6,0=MphPa
|
6,0=MphPa
|
||||||
6,11=MbV
|
6,11=MbV
|
||||||
|
|
||||||
|
#############
|
||||||
|
@GPS-Data
|
||||||
|
timer=-1,-1,-1
|
||||||
|
key1action=+,0,F,W
|
||||||
|
key2action=>,#,#,#
|
||||||
|
timeaction=#,#,#
|
||||||
|
fonts=0,1
|
||||||
|
0,0=xGPS-Data
|
||||||
|
1,0=xLAT :
|
||||||
|
1,6=gA
|
||||||
|
2,0=xLONG:
|
||||||
|
2,6=gO
|
||||||
|
3,0=xALT :
|
||||||
|
3,9=gH
|
||||||
|
4,0=xSonde
|
||||||
|
5,0=xAlt :
|
||||||
|
5,6=a
|
||||||
|
6,0=xDist:
|
||||||
|
6,6=gD
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -108,110 +108,220 @@
|
||||||
# => Button press activates default receiver view, double press does nothing
|
# => Button press activates default receiver view, double press does nothing
|
||||||
# Mid press activates Spectrum display, long press activates Wifi scan
|
# Mid press activates Spectrum display, long press activates Wifi scan
|
||||||
# - key2 has no function
|
# - key2 has no function
|
||||||
@ScannerPortrait
|
###########
|
||||||
|
@ScannerTFT-D
|
||||||
timer=-1,0,0
|
timer=-1,0,0
|
||||||
key1action=D,#,F,W
|
key1action=D,#,F,W
|
||||||
key2action=>,#,#,#
|
key2action=#,#,#,#
|
||||||
timeaction=#,D,+
|
timeaction=#,D,+
|
||||||
0,0=XScan
|
scale=11,10
|
||||||
0,5=S#:
|
fonts=0,2
|
||||||
0,9,4.5=T
|
color=B0B0B0
|
||||||
6,0=XHoehe
|
0,0=Xsuche..
|
||||||
6,5=GH
|
color=6C757D
|
||||||
color=ffff00
|
3,0=xStartort
|
||||||
2,0=F MHz
|
color=B0B0B0
|
||||||
4,0=S
|
4,0=S
|
||||||
color=00ff00,444444
|
color=6C757D
|
||||||
7,5=n
|
3,15=xFreq. Platz
|
||||||
7,0=bV
|
color=B0B0B0
|
||||||
|
4,15,23=S#
|
||||||
|
color=6C757D
|
||||||
|
6,0=xTyp
|
||||||
|
color=B0B0B0
|
||||||
|
7,0,5=T
|
||||||
|
color=6C757D
|
||||||
|
6,15=xFrequenz
|
||||||
|
color=B0B0B0
|
||||||
|
7,15=F
|
||||||
|
color=6C757D
|
||||||
|
28,0=Scanner
|
||||||
|
28,9=n
|
||||||
|
28,21=bVV
|
||||||
|
|
||||||
############
|
############
|
||||||
# Default configuration for "Legacy" display:
|
@MainTFT-D
|
||||||
# - view timer=-1, rx timer=-1 (disabled); norx timer=20 (or -1 for "old" behaviour)
|
|
||||||
# => norx timer fires after not receiving a singla for 20 seconds
|
|
||||||
# - key1 actions: +,0,F,W
|
|
||||||
# => Button1 press: next sonde; double press => @Scanner display
|
|
||||||
# => Mid press activates Spectrum display, long press activates Wifi scan
|
|
||||||
# - key2 actions: 2,#,#,#
|
|
||||||
# => BUtton2 activates display 2 (@Field)
|
|
||||||
# - timer actions: #,#,0
|
|
||||||
# (norx timer: if no signal for >20 seconds: go back to scanner mode)
|
|
||||||
#
|
|
||||||
@LegacyPortrait
|
|
||||||
timer=-1,-1,N
|
|
||||||
key1action=+,0,F,W
|
|
||||||
key2action=>,#,#,#
|
|
||||||
timeaction=#,#,0
|
|
||||||
9,10=f
|
|
||||||
9,0=r
|
|
||||||
9,4=Q
|
|
||||||
5,0=g0NCS,35,ffff00,000044,6,33ff33,5,eeaa00
|
|
||||||
5,7=g0CCS,35,ffff00,000044,6,55ff55,5,eeaa00
|
|
||||||
0,0=s
|
|
||||||
0,9=is
|
|
||||||
2,0=L
|
|
||||||
3,0=O
|
|
||||||
color=FFFF00
|
|
||||||
1,6=Hk km/h
|
|
||||||
color=FF0000
|
|
||||||
1,0=GD
|
|
||||||
color=FFFFFF
|
|
||||||
4,9=GH
|
|
||||||
3,9=V
|
|
||||||
4,0=A
|
|
||||||
|
|
||||||
############
|
|
||||||
@PeilungTFTPortrait
|
|
||||||
timer=-1,-1,N
|
|
||||||
key1action=+,0,F,W
|
|
||||||
key2action=>,#,#,#
|
|
||||||
timeaction=#,#,#
|
|
||||||
color=ffff00,000033
|
|
||||||
color=bbbbbb,000000
|
|
||||||
0,2=xN Top:
|
|
||||||
0,8=xCourse Top:
|
|
||||||
color=ffff00,000033
|
|
||||||
1,0=g0NCS,35,ffff00,000044,6,33ff33,5,eeaa00
|
|
||||||
1,7=g0CCS,35,ffff00,000044,6,55ff55,5,eeaa00
|
|
||||||
color=ffffff,000000
|
|
||||||
6,0=xDirection:
|
|
||||||
6,8,4=gI
|
|
||||||
7,0=xCOG:
|
|
||||||
7,4,4=gC
|
|
||||||
7,8=xturn:
|
|
||||||
7,12,4=gB
|
|
||||||
|
|
||||||
############
|
|
||||||
@GPSdataTFTPortrait
|
|
||||||
timer=-1,-1,N
|
|
||||||
key1action=+,0,F,W
|
|
||||||
key2action=>,#,#,#
|
|
||||||
timeaction=#,#,#
|
|
||||||
0,0=xOn-board GPS:
|
|
||||||
1,0,8=gA
|
|
||||||
2,0,8=gO
|
|
||||||
3,0,8=gH
|
|
||||||
4,0,8=gC
|
|
||||||
5,0=xGPS vs Sonde:
|
|
||||||
6,0,8=gD
|
|
||||||
7,0,8=gI
|
|
||||||
7,8,8=gB
|
|
||||||
|
|
||||||
############
|
|
||||||
@BatteryTFTPortrait
|
|
||||||
timer=-1,-1,-1
|
timer=-1,-1,-1
|
||||||
key1action=+,0,F,W
|
key1action=>,0,F,W
|
||||||
key2action=>,#,#,#
|
key2action=+,#,#,#
|
||||||
timeaction=#,#,#
|
timeaction=#,#,0
|
||||||
0,0=xBattery status:
|
scale=11,10
|
||||||
0,14=bS
|
fonts=0,2
|
||||||
1,0=xBatt:
|
color=6C757D
|
||||||
1,5,5=bVV
|
0,0=xSerial
|
||||||
2,0,16=bCmA(charging)
|
0,6=t
|
||||||
3,0,16=bDmA(discharging)
|
color=B0B0B0
|
||||||
4.4,0=xUSB:
|
1,0=Is
|
||||||
4.4,5,5=bUV
|
color=6C757D
|
||||||
5.4,0,10=bImA
|
0,14=xFreq.
|
||||||
6.4,0=xTemp:
|
0,17.5=s
|
||||||
6.4,5,5=bT C
|
color=B0B0B0
|
||||||
|
1,14=F
|
||||||
|
color=6C757D
|
||||||
|
3,0=xLatitude
|
||||||
|
color=B0B0B0
|
||||||
|
4,0,10=L
|
||||||
|
color=6C757D
|
||||||
|
3,14=xLongitude
|
||||||
|
color=B0B0B0
|
||||||
|
4,14,23=O
|
||||||
|
color=6C757D
|
||||||
|
6,0=xHoriz. Geschw.
|
||||||
|
color=B0B0B0
|
||||||
|
7,0,10=Hkkm/h
|
||||||
|
color=6C757D
|
||||||
|
6,14=xVert. Geschw.
|
||||||
|
color=B0B0B0
|
||||||
|
7,13.5,23=Vm/s
|
||||||
|
color=6C757D
|
||||||
|
9.5,14=xHoehe Sonde
|
||||||
|
color=ffff00
|
||||||
|
10.5,13.5,23=A
|
||||||
|
color=ffff00,000033
|
||||||
|
9,1=g0CCS,45,ffff00,000044,4,55ff55,4,eeaa00
|
||||||
|
color=bbbbbb,000000
|
||||||
|
color=6C757D
|
||||||
|
12.5,14=xHoehe RX
|
||||||
|
color=ffff00
|
||||||
|
13.5,14=GH
|
||||||
|
color=6C757D
|
||||||
|
15.5,14=xEntfernung
|
||||||
|
color=ffff00
|
||||||
|
16.5,14,23=GD
|
||||||
|
color=6C757D
|
||||||
|
19,0=xTimer
|
||||||
|
color=B0B0B0
|
||||||
|
20,0,10=Kc4
|
||||||
|
color=6C757D
|
||||||
|
19,14=xRSSI
|
||||||
|
color=B0B0B0
|
||||||
|
20,14,23=R
|
||||||
|
color=6C757D
|
||||||
|
22,0=xLufttemperatur
|
||||||
|
color=B0B0B0
|
||||||
|
23,0,10=Mt°C
|
||||||
|
color=6C757D
|
||||||
|
22,14=xLuftfeuchtigkeit
|
||||||
|
color=B0B0B0
|
||||||
|
23,14,23=Mh%rH
|
||||||
|
color=6C757D
|
||||||
|
25,0=xLuftdruck
|
||||||
|
color=B0B0B0
|
||||||
|
26,0,10=MphPa
|
||||||
|
color=6C757D
|
||||||
|
25,14=xZellenspannung
|
||||||
|
color=B0B0B0
|
||||||
|
26,14,23=MbV
|
||||||
|
color=6C757D
|
||||||
|
28,0=Q
|
||||||
|
28,13=c
|
||||||
|
28,21=bVV
|
||||||
|
|
||||||
|
###########
|
||||||
|
@ScannerTFT-E
|
||||||
|
timer=-1,0,0
|
||||||
|
key1action=D,#,F,W
|
||||||
|
key2action=#,#,#,#
|
||||||
|
timeaction=#,D,+
|
||||||
|
scale=11,10
|
||||||
|
fonts=0,2
|
||||||
|
color=B0B0B0
|
||||||
|
0,0=XScan...
|
||||||
|
color=6C757D
|
||||||
|
3,0=xLaunchsize
|
||||||
|
color=B0B0B0
|
||||||
|
4,0=S
|
||||||
|
color=6C757D
|
||||||
|
3,15=xFreq.index
|
||||||
|
color=B0B0B0
|
||||||
|
4,15,23=S#
|
||||||
|
color=6C757D
|
||||||
|
6,0=xType
|
||||||
|
color=B0B0B0
|
||||||
|
7,0,5=T
|
||||||
|
color=6C757D
|
||||||
|
6,15=xFrequency
|
||||||
|
color=B0B0B0
|
||||||
|
7,15=F
|
||||||
|
color=6C757D
|
||||||
|
28,0=Scanner
|
||||||
|
28,9=n
|
||||||
|
28,21=bVV
|
||||||
|
|
||||||
|
############
|
||||||
|
@MainTFT
|
||||||
|
timer=-1,-1,-1
|
||||||
|
key1action=>,0,F,W
|
||||||
|
key2action=+,#,#,#
|
||||||
|
timeaction=#,#,0
|
||||||
|
scale=11,10
|
||||||
|
fonts=0,2
|
||||||
|
color=6C757D
|
||||||
|
0,0=xSerial
|
||||||
|
0,6=t
|
||||||
|
color=B0B0B0
|
||||||
|
1,0=Is
|
||||||
|
color=6C757D
|
||||||
|
0,14=xFreq.
|
||||||
|
0,17.5=s
|
||||||
|
color=B0B0B0
|
||||||
|
1,14=F
|
||||||
|
color=6C757D
|
||||||
|
3,0=xLatitude
|
||||||
|
color=B0B0B0
|
||||||
|
4,0,10=L
|
||||||
|
color=6C757D
|
||||||
|
3,14=xLongitude
|
||||||
|
color=B0B0B0
|
||||||
|
4,14,23=O
|
||||||
|
color=6C757D
|
||||||
|
6,0=xHor.Velocity
|
||||||
|
color=B0B0B0
|
||||||
|
7,0,10=Hkkm/h
|
||||||
|
color=6C757D
|
||||||
|
6,14=xVert.Velocity
|
||||||
|
color=B0B0B0
|
||||||
|
7,13.5,23=Vm/s
|
||||||
|
color=6C757D
|
||||||
|
9.5,14=xAltitude
|
||||||
|
color=ffff00
|
||||||
|
10.5,13.5,23=A
|
||||||
|
color=ffff00,000033
|
||||||
|
9,1=g0CCS,45,ffff00,000044,4,55ff55,4,eeaa00
|
||||||
|
color=bbbbbb,000000
|
||||||
|
color=6C757D
|
||||||
|
12.5,14=xRX Altitude
|
||||||
|
color=ffff00
|
||||||
|
13.5,14=GH
|
||||||
|
color=6C757D
|
||||||
|
15.5,14=xDistance
|
||||||
|
color=ffff00
|
||||||
|
16.5,14,23=GD
|
||||||
|
color=6C757D
|
||||||
|
19,0=xTimer
|
||||||
|
color=B0B0B0
|
||||||
|
20,0,10=Kc4
|
||||||
|
color=6C757D
|
||||||
|
19,14=xRSSI
|
||||||
|
color=B0B0B0
|
||||||
|
20,14,23=R
|
||||||
|
color=6C757D
|
||||||
|
22,0=xTemperature
|
||||||
|
color=B0B0B0
|
||||||
|
23,0,10=Mt°C
|
||||||
|
color=6C757D
|
||||||
|
22,14=xHumidity
|
||||||
|
color=B0B0B0
|
||||||
|
23,14,23=Mh%rH
|
||||||
|
color=6C757D
|
||||||
|
25,0=xPressure
|
||||||
|
color=B0B0B0
|
||||||
|
26,0,10=MphPa
|
||||||
|
color=6C757D
|
||||||
|
25,14=xSonde Battery
|
||||||
|
color=B0B0B0
|
||||||
|
26,14,23=MbV
|
||||||
|
color=6C757D
|
||||||
|
28,0=Q
|
||||||
|
28,13=c
|
||||||
|
28,21=bVV
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@
|
||||||
#include <WiFi.h>
|
#include <WiFi.h>
|
||||||
#include <AsyncMqttClient.h>
|
#include <AsyncMqttClient.h>
|
||||||
#include <ESPmDNS.h>
|
#include <ESPmDNS.h>
|
||||||
|
#include "RS41.h"
|
||||||
|
|
||||||
TimerHandle_t mqttReconnectTimer;
|
TimerHandle_t mqttReconnectTimer;
|
||||||
|
|
||||||
|
|
@ -86,8 +87,7 @@ void MQTT::publishPacket(SondeInfo *si)
|
||||||
"\"launchKT\": %d,"
|
"\"launchKT\": %d,"
|
||||||
"\"burstKT\": %d,"
|
"\"burstKT\": %d,"
|
||||||
"\"countKT\": %d,"
|
"\"countKT\": %d,"
|
||||||
"\"crefKT\": %d"
|
"\"crefKT\": %d",
|
||||||
"}",
|
|
||||||
(int)si->active,
|
(int)si->active,
|
||||||
si->freq,
|
si->freq,
|
||||||
s->id,
|
s->id,
|
||||||
|
|
@ -117,6 +117,23 @@ void MQTT::publishPacket(SondeInfo *si)
|
||||||
s->countKT,
|
s->countKT,
|
||||||
s->crefKT
|
s->crefKT
|
||||||
);
|
);
|
||||||
|
if ( !isnan( s->temperature ) ) {
|
||||||
|
snprintf(payload, 1024, "%s%s%.1f", payload, ",\"temp\": ", s->temperature );
|
||||||
|
}
|
||||||
|
if ( !isnan( s->relativeHumidity ) ) {
|
||||||
|
snprintf(payload, 1024, "%s%s%.1f", payload, ",\"humidity\": ", s->relativeHumidity );
|
||||||
|
}
|
||||||
|
if ( !isnan( s->pressure ) ) {
|
||||||
|
snprintf(payload, 1024, "%s%s%.1f", payload, ",\"pressure\": ", s->pressure );
|
||||||
|
}
|
||||||
|
if ( !isnan( s->batteryVoltage && s->batteryVoltage > 0 ) ) {
|
||||||
|
snprintf(payload, 1024, "%s%s%.1f", payload, ",\"batt\": ", s->batteryVoltage );
|
||||||
|
}
|
||||||
|
char subtype[11];
|
||||||
|
if ( RS41::getSubtype( subtype, 11, si) == 0 ) {
|
||||||
|
snprintf(payload, 1024, "%s%s%s%s", payload, ",\"subtype\": \"", subtype, "\"" );
|
||||||
|
}
|
||||||
|
snprintf(payload, 1024, "%s%s", payload, "}" ); // terminate payload string
|
||||||
|
|
||||||
char topic[128];
|
char topic[128];
|
||||||
snprintf(topic, 128, "%s%s", this->prefix, "packet");
|
snprintf(topic, 128, "%s%s", this->prefix, "packet");
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@
|
||||||
#include <WiFi.h>
|
#include <WiFi.h>
|
||||||
#include <AsyncMqttClient.h>
|
#include <AsyncMqttClient.h>
|
||||||
#include "Sonde.h"
|
#include "Sonde.h"
|
||||||
|
#include "RS41.h"
|
||||||
|
|
||||||
class MQTT
|
class MQTT
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
const char *version_name = "rdzTTGOsonde";
|
const char *version_name = "rdzTTGOsonde";
|
||||||
const char *version_id = "devel20211003";
|
const char *version_id = "devel20211005";
|
||||||
const int SPIFFS_MAJOR=2;
|
const int SPIFFS_MAJOR=2;
|
||||||
const int SPIFFS_MINOR=16;
|
const int SPIFFS_MINOR=16;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue