Today I’ve been messing around with an APRS weather beacon. Now Direwolf and Linbpq and Jnos can send an aprs weather beacon. It turns out that this is quite precise, with the format of the beacon.
#!/bin/bash # The weather beacon have to look like this.... # @220424z5057.81N/00729.37E_094/002g005t043r000p006P006h89b09783 # !5133.52N/00348.15E_073/013g...t048h85b10040wWXD # # Jun 01 2003 08:07 # 272/000g006t069r010p030P020h61b10150 # *********************************************************** # 272 - wind direction - 272 degrees # 010 - wind speed - 10 mph # g015 - wind gust - 15 mph # t069 - temperature - 69 degrees F # r010 - rain in last hour in hundredths of an inch - 0.1 inches # p030 - rain in last 24 hours in hundredths of an inch - 0.3 inches # P020 - rain since midnight in hundredths of an inch - 0.2 inches # h61 - humidity 61% (00 = 100%) # b10153 - barometric pressure in tenths of a MILLIBAR - 1015.3 MILLIBARS
My weather station uploads its data to wunderground.com. Now wunderground has the option to read this again with an api key.
https://api.weather.com/v2/pws/observations/current?stationId=IKORTG9&format=json&units=m&apiKey=yourApiKey
You can read here how and what.
After a lot of messing around with a bash script, I am able to create the correct format.
TEMP=-4.9°C Temperature degrees Celsius WPK=29.4km/h Wind speed in Kilometers per hour WGK=39km/h Wind guts in Kilometers per hour GRD=58° Wind direction in degrees RAIN=0mm Rain in the last hour in mm RAIN24=0.42065mm Rain in the last 24 hour in mm RAIN12=0.214mm Rain in the last 12 hour in mm HUM=74% Humidity in procent Bar=1004mb Barometric pressure in millibars FAH=023F Temperature degrees Fahrenheit WPM=018mph Wind speed in miles per hour WGM=024mph Wind guts in miles per hour RNI=000inch Rain in the last hour in inches RNI=001inch Rain in the last 24 hour in inches RNI=000inch Rain in the last 12 hour in inches
The file I need to broadcast an APRS Weahter Beacon looks like this.
pd9q@pancake:~/linbpq/wx-project $ cat ~/linbpq/current.txt Feb 09 2021 13:00 086/004g008t028r000p000P000h75b10007
The config file for Linbpq looks like this, this is in the aprs section of bpq32.cfg
WXCall=PD9Q-7 WXFileName=/home/pd9q/linbpq/current.txt WXComment=/Weather Station JO11VN WXPortList=1,5,IS ; comma separated list WXInterval=10 ; mins
For Jnos in the autoexec.nos in the aprs section
aprs wx call PD9Q-7 aprs wx stat "Weather Station JO11VN" aprs wx pos "5133.52N/00348.15E_METEO aprs wx data "/home/pd9q/jnos/wx/current.txt" aprs bc rftimer 10
For direwolf in the file direwolf.conf
PBEACON LAT=51^33.52N LONG=03^48.15E SYMBOL=”weather station” COMMENTCMD=”tail -1 /home/pd9q/linbpq/current.txt”
Direwolf Aprs packet look like this.
PD9Q-7>APDW15:!5133.52N/00348.15E_069/005g006t028r000p000P000h75b10007
BPQ32 Aprs packet look like this.
PD9Q-7>APBPQ1,WIDE1-1:@091338z5133.52N/00348.15E_069/005g006t028r000p000P00 0h75b10007/Weather Station JO11VN
Learned a lot.
Hi,
I’m currently also trying to figure out how to use Python to create my APRS packets. One question here regarding the position:
# @220424z5057.81N/00729.37E_094/002g005t043r000p006P006h89b09783
# !5133.52N/00348.15E_073/013g…t048h85b10040wWXD
I thought , position is “‘DDMM.SSN/DDDMM.SSE_'”, and you have
5057.81N/00729.37E_094 are 50 deg 57 min 81 sec N ? What is the “_094” ?
Likewise for “00348.15E_073”, which should be 3 deg 48 min 15 sec East ? And what is “_073” ?
I’ve got mine as “position = ‘1942.24N/15558.41W_’ “. Does this look right ?
Thanks!
I figured things out. BTW, I’m using APRSLIB for Python; pretty easy to send a packet, once the format is correct.