35 lines
1.2 KiB
Python
35 lines
1.2 KiB
Python
import schedule
|
|
import threading
|
|
import time
|
|
from env import *
|
|
from database import add_sensor_data
|
|
from bluepy.btle import Scanner
|
|
|
|
def BltDataScrap():
|
|
scanner = Scanner()
|
|
#print("Begin device scan")
|
|
devices = scanner.scan(timeout=3.0)
|
|
for device in devices:
|
|
if device.addr in SENSORS :
|
|
#print(
|
|
#f"Device found {device.addr} ({device.addrType}), "
|
|
#f"RSSI={device.rssi} dB"
|
|
#)
|
|
for adtype, description, value in device.getScanData():
|
|
if adtype == 22:
|
|
temp = int(value[24:28], 16) / 100
|
|
HR = int(value[28:32], 16) / 100
|
|
Bat = int(value[20:22], 16)
|
|
#print(f"Temp : {temp} °c \n HR : {HR} % , \n Batterie : {Bat} %")
|
|
add_sensor_data(DBFILE, SENSORS[device.addr], time.strftime("%Y-%m-%d %H:%M:%S"), temp, HR, Bat)
|
|
return 0
|
|
def RunInThread_DataScrap():
|
|
print("######################################################################\nOpen Thread datascrap")
|
|
threading.Thread(target=BltDataScrap, daemon=True).start()
|
|
|
|
def ScheduleDataScrap():
|
|
RunInThread_DataScrap()
|
|
schedule.every(10).seconds.do(RunInThread_DataScrap) #run every 10 seconds
|
|
|
|
|