HAM, APRS a další

Asus WL500 s Oleg FW a APRS
Modem APRS 51 TNC


Asus WL500 s Oleg FW a APRS

Doma už několik let
měřím akumulační kotelnu na pevná paliva pomocí routeru Asus WL500dx s alternativním FM Oleg, zatím 10-ti čidly Dallas DS18S20. Jelikož 10 čidel značne zatěžuje pasivní převodník RS232/1wire a po přidání 7. čidla se začaly na lince množit poruchy přenosu dat, zabudoval jsem do routeru na seriový port (lišta na plošném spoji) aktivní převodník sběrnice s IO Dallas DS2480B (bylo nutno přispůsobit vstup +-12V Tx/Rx DS2480B 5V Tx/RX portu v routeru).

Nedávno jsem si začal hrát s APRS (licenci mám teprve od jara 2015) a tak jsem dumal, že bych WL500 měřící kotelnu využil i k APRS funkci.
Vyřešil jsem to celkem snadno, naistaloval jsem do routeru balíček python 2.6 a pomocí shell skriptu volám meřící rutinu, parametr pak předám pythonovskému scriptu, který hodnoty odešle internetem do APRS přes ADSL konektivitu mého domácího QTH.

Jelikož mám pocit, že JO80QD a okolí není moc kvalitně APRS pokryto, ač mám za kopcem OK0X, který se chlubí že je iGate a asi 10km daleko je další iGate SR6NKB s 9W a dosahem 105km (zřejmě směrováno na Polsko), zvažuji že bych zde něco malého pro lokální pokrytí doplnil.
No snad na to přijdu jak to provést s pomocí WL500dx, ale pro jistotu jsem 5.11. v Číně na aliexpressu objednal APRS 51 TNC s BTmodulem (desku bez krabičky za 16USD, modem v krabičce, se sítovým napájecím adaptérem CAT a USB kabely vyjde zhruba na 90 USD).

aktualizace 22.1.2016: Tak vše je jinak, blbě jsem inzerát vyhodnotil, neprodávali desku modemu, jak ukazovali na fotu, ale jen BT modul k modemu, takže jsem štastným majitelem BT modulu za 16USD, a to se vyplatí. >:-( , holt si modem budu muset splácat z Arduina za 1,77USD Arduino nano 3.0

Ale teď zpět k původnímu tématu:

Do adresáře /opt (kde je přimountovaná USB flashka se SW z IPKG repozitářů OLeg a s mým SW) jsem přidal shellový script spouštěný cronem 28. a 58. minutu (v tu dobu je WL500 málo vytížen):

#!/opt/bin/bash

# změřím teplotu ve xx. st.F a pošlu jako WX stanici OK3JS-6
Toutempf=`/opt/bin/digitemp_DS9097U -q -r 800 -t 8 -c /opt/APRSconf.digi.cnf -s /dev/tts/1 -o "%.0F"`
python2.6 /opt/APRS_WX_2.py $Toutempf

# změřím telotu ve xx.x st.C a pošlu jako home QTH test OK3JS-15
Toutemp=`/opt/bin/digitemp_DS9097U -q -r 800 -t 8 -c /opt/APRSconf.digi.cnf -s /dev/tts/1 -o "%.1C"`
python2.6 /opt/APRS_WX.py $Toutemp



jeden z pythonových scriptů (inspiraci jsem převzal od OK5TVR):


# OK3JS merici server kotelna Zelezna + APRS WX
import serial
import time
import socket
import sys
from decimal import *
import datetime

# TCP/IP connect to APRS server
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_address = ('czech.aprs2.net',14587)

mes = ""
sock.sendall(mes)

mes = "user OK3JS-15 pass xxxxxx" + chr(10) #xxxxx - heslo do APRS *)
sock.sendall(mes) *)

Tout = sys.argv[1] *)
#VHF ant
mes = "OK3JS-15>APRS,TCPIP*:" + "!5007.72N/01721.82E-WX Vrbno.p.P.-Zelezna Tout= " + Tout + " st.C, Asus Wl500dx....QRV OK0X & 145.500 test routeru" + chr(10) *)
sock.sendall(mes) *)


*) varianta pythonovského scriptu pro WX objekt (SSID 6) odesílá data o teplotě v celých st.Fahrenheita, ty se až na APRS sreveru převedou na st. Celsia s desetinnou částí pro zobrazení v mapět APRS. Jelikož jde o textový řetezec, kde teplota má tři znaky a digitemp_DS9097U vrací číslo, musí se naměřená teplota upravit z 2 místného čísla na 3mistný text případně doplněný o znak mínus (-30C=-22F, 0C=32F, 37C=98, 40C=104F), teploty přes 37 st.C nepředpokládám, proto není ošetřeno případné 3 místné číslo teploty ve Fahrenheitech. Při nesprávném formátu odesílaného řetězce nedojde k aktualizaci dat na serveru APRS, proto jsou neměřené povinné údaje o rychlosti a směru větru odsílany jako náhradní hodnota "tečky" a za znak t je vložen 3 místný řetezec s hodnotou teploty ve Fahrenheitech. Jen pro zajímavost, při odesílání pozice se uvádí hodnota směru pohybu (azimutu) ve stupních/rychlost v knotech (uzlech) a nadmořský výška A= ve stopách.

# ----- Začátek varianty pro WX objekt
mes = "user OK3JS-6 pass xxxxxx" + chr(10) #xxxxx - heslo do APRS
sock.sendall(mes)

Toutf = sys.argv[1]
Toutf=int(Toutf)

# minus -10 a vetsi kosa

if Toutf < -9:
Toutf = abs(Toutf)
t_out = str(Toutf)
Toutf = "{0:>2}".format(t_out)
Toutf = "-" + Toutf

# minus 0 az -9

elif Toutf < 0:
Toutf = abs(Toutf)
t_out = str(Toutf)
Toutf = "{0:>1}".format(t_out)
Toutf = "-0" + Toutf

# mensi nez 10

elif Toutf < 10:
t_out = str(Toutf)
Toutf = "{0:>1}".format(t_out)
Toutf = "00" + Toutf

# 10 a vetsi

else:
t_out = str(Toutf)
Toutf = "{0:>2}".format(t_out)
Toutf = "0" + Toutf

mes = "OK3JS-6>APRS,TCPIP*:" + "!5007.73N/01721.84E_.../...g...t" + Toutf + "xARM router Asus " + chr(10)
sock.sendall(mes)
# ----- Konec varianty pro WX objekt

mes=" "
sock.sendall(mes)

time.sleep (1)

mes = "OK3JS-15>APRS,TCPIP*:" + chr(10)
sock.sendall(mes)

sock.close()


a výsledek vidíme zde: OK3JS na APRS.FI

čerpáno z :
http://www.ok5tvr.cz/?p=894
APRS protokol od str.62
http://www.lumidan.eu/article/30-instalace-oleg-firmware-na-asus-wl500g-premium/
http://cooper.regionaliste.cz/category/firmware
http://koppel.cz/cdmawifi/
a z dnes již nefunkčního webu http://kratochvilovi.net

zpět na menu


Modem APRS 51 TNC

bude doplněno až po jeho otestování, zatím je modem na cestě z Číny

zpět na menu




zpět na menu