Gå med IOT med din väderstation - CWOP (5 / 7 steg)
Steg 5: Skicka paketen CWOP APRS
#! / usr/bin/env python
# SwitchDoc Labs
# 24 juli 2015
# Version 1.0
"""
ursprungligen från Tom Hayward
bygger och skickar en
APRS väder paket till APRS-är/CWOP.
BSD-licensen och sånt
Copyright 2010 Tom Hayward < tom
"""
importera sys, os, tid
datetime importera datetime, timedelta
från uttaget import *
sys.Path.append('..')
# Check för användaren import
försök:
importera conflocal som conf
Förutom ImportError:
import conf
def make_aprs_wx (wind_dir = ingen, wind_speed = ingen, wind_gust = ingen, temperatur = ingen, rain_since_midnight = ingen, fuktighet = ingen, tryck = ingen):
"""
Monterar skickas i APRS väder paket.
"""
def str_or_dots (antal, längd):
"""
Om parametern ingen är, fylla utrymmet med prickar. Annat, noll-pad.
"""
Om tal ingen är:
gå tillbaka '.' * längd
annat:
format_type = {
'int': hade ",
"flyta": ".0f",
} [Ange (nummer) .__name__]
returnera '' .join (("%0',str(length),format_type)) % antal
timeStringZulu = time.strftime("%d%H%M")
Returnerar "() %
timeStringZulu,
conf. STATIONLATITUDE,
conf. STATIONLONGITUDE,
str_or_dots (wind_dir, 3),
str_or_dots (wind_speed, 3),
str_or_dots (wind_gust, 3),
str_or_dots (temperatur, 3),
str_or_dots (rain_since_midnight, 3),
str_or_dots (fuktighet, 2),
str_or_dots (tryck, 5),
conf. STATION_TYPE
)
def post_CWOP (wind_dir = ingen, wind_speed = ingen, wind_gust = ingen, temperatur = ingen, rain_since_midnight = ingen, fuktighet = ingen, tryck = ingen):
# post till aprs
wx = make_aprs_wx (wind_dir = wind_dir, wind_speed = wind_speed, wind_gust = wind_gust, temperatur = temperatur, rain_since_midnight = rain_since_midnight, fuktighet = fuktighet, tryck = tryck)
Skriv ut time.strftime ("%Y-%m-%d % H: % m %S"), wx
send_aprs (conf. APRS_HOST, conf. APRS_PORT, conf. APRS_USER, conf. APRS_PASS, conf. CALLSIGN, wx)
returnera