pi_miniweather/itplus.py

65 lines
1.4 KiB
Python
Raw Permalink Normal View History

2021-03-20 16:13:07 +01:00
#!/usr/bin/env python
from raspyrfm import *
import sensors
from sensors import rawsensor
import sys
import time
import threading
#if raspyrfm_test(2, RFM69):
# print("Found RaspyRFM twin")
# rfm = RaspyRFM(2, RFM69) #when using the RaspyRFM twin
#elif raspyrfm_test(1, RFM69):
# print("Found RaspyRFM single")
# rfm = RaspyRFM(1, RFM69) #when using a single 868 MHz RaspyRFM
if raspyrfm_test(5, RFM69):
print("Found RaspyRFM mod")
rfm = RaspyRFM(5, RFM69) #when using the RaspyRFM twin
else:
print("No RFM69 module found!")
exit()
rfm.set_params(
Freq = 868.30, #MHz center frequency
# Datarate = 9.579, #kbit/s baudrate
Datarate = 17.241, #kbit/s baudrate
ModulationType = rfm69.FSK, #modulation
Deviation = 30, #kHz frequency deviation
SyncPattern = [0x2d, 0xd4], #syncword
Bandwidth = 150, #kHz bandwidth
RssiThresh = -105, #dBm RSSI threshold
)
class BaudChanger(threading.Thread):
baud = False
def __init__(self):
threading.Thread.__init__(self)
def run(self):
while True:
time.sleep(15)
if self.baud:
dr = 9.579
else:
dr = 17.241
print("Switch baudrate to " + str(dr) + " kbit/s")
rfm.set_params(Datarate = dr)
self.baud = not self.baud
#baudChanger = BaudChanger()
#baudChanger.daemon = True
#baudChanger.start()
while 1:
data = rfm.receive(12)
if data == None:
continue
obj = rawsensor.CreateSensor(data).GetData()
if not 'ID' in obj:
continue
print(obj)