EMF_Camp_Badge/sysinfo/main.py

71 lines
2.4 KiB
Python

"""This app tests all the onboard sensors and system info"""
___title___ = "System Info"
___license___ = "MIT"
___dependencies___ = ["sleep", "app", "sim800"]
___categories___ = ["EMF", "System"]
___bootstrapped___ = True
#import ugfx, os, time, sleep, app, sim800
import ugfx, app, sim800
import os
from tilda import Buttons
from tilda import Sensors
from machine import ADC
from time import sleep
mag = ADC(ADC.ADC_HALLEFFECT)
status_height = 20
ugfx.init()
ugfx.clear()
ugfx.set_default_font(ugfx.FONT_FIXED)
simversion = sim800.getfirmwarever()[9:]
simphonenumber = sim800.getmynumber()
simoperator = sim800.currentoperator()
if simphonenumber == None or len(simphonenumber) == 0 :
ugfx.Label(5, 155, 240, 15, "No Number Yet")
else:
ugfx.Label(5, 155, 240, 15, simphonenumber)
if simoperator == None or len(simoperator) == 0 :
ugfx.Label(5, 170, 240, 15, "No Operator Yet")
else:
ugfx.Label(5, 170, 240, 15, "Your network is " + simoperator)
ugfx.Label(5, 185, 240, 15, simversion)
ugfx.Label(5, 215, 240, 30, "Badge firmware version:\n{}".format(os.uname().version))
ugfx.Label(5, 300, 240, 15, "** Hold A or B or MENU to exit **")
while (not Buttons.is_pressed(Buttons.BTN_A)) and (not Buttons.is_pressed(Buttons.BTN_B)) and (not Buttons.is_pressed(Buttons.BTN_Menu)):
ugfx.Label(5, 5, 240, 15, "Temperature (tmp) : {:.2f} C".format(Sensors.get_tmp_temperature()))
ugfx.Label(5, 20, 240, 15, "Temperature (hdc) : {:.2f} C".format(Sensors.get_hdc_temperature()))
ugfx.Label(5, 35, 240, 15, "Humidity (hdc) : {:.2f} %".format(Sensors.get_hdc_humidity()))
ugfx.Label(5, 50, 240, 15, "Light (opt) : {:.2f} Lux".format(Sensors.get_lux()))
ugfx.Label(5, 65, 240, 15, "Mag Field: (drv) : {:.2f} ".format(mag.convert()))
ugfx.Label(5, 80, 240, 15, "Sensor samplerate : {} ms".format(Sensors.sample_rate()))
charging = Sensors.get_charge_status()
if charging == Sensors.BAT_PRE_CHARGING or charging == Sensors.BAT_FAST_CHARGING:
ugfx.Label(5, 110, 240, 15, "Battery is : charging")
elif charging == Sensors.BAT_DONE_CHARGING:
ugfx.Label(5, 110, 240, 15, "Battery is : full")
elif charging == Sensors.BAT_NOT_CHARGING:
ugfx.Label(5, 110, 240, 15, "Battery is : discharging")
ugfx.Label(5, 125, 240, 15, "Battery is : {:.2f} %".format(sim800.batterycharge()))
sleep(2)
ugfx.clear()
app.restart_to_default()