def __init__(self, address=0x70, i2c=None): super().__init__() if i2c is None: i2c = board.I2C() self._segments = segments.Seg14x4(i2c, address) self._segments.auto_write = False
import microcontroller # for checking CPU temperature import gc # for checking memory capacity from simpleio import map_range trellis = adafruit_trellism4.TrellisM4Express() # Initialize external and internal I2C bus, sensor, and display acc_i2c = busio.I2C(board.ACCELEROMETER_SCL, board.ACCELEROMETER_SDA) # for accelerometer ext_i2c = busio.I2C(board.SCL, board.SDA) # for DACs # Initialize accelerometer and DACs accelerometer = adafruit_adxl34x.ADXL345(acc_i2c) pitch_dac = adafruit_mcp4725.MCP4725(ext_i2c, address=0x62) gate_dac = adafruit_mcp4725.MCP4725(ext_i2c, address=0x63) vl53 = adafruit_vl53l0x.VL53L0X(ext_i2c) display = segments.Seg14x4(ext_i2c) gate_dac.value = 0 pitch_dac.value = 0 #vl53.measurement_timing_budget = 33000 # default: compromise #vl53.measurement_timing_budget = 20000 # fast and inaccurate #vl53.measurement_timing_budget = 200000 # slow and accurate # ### Setup ### # ### Dictionaries and Lists ### # ### Helpers ### def plot(plot_val):
import re from subprocess import Popen, PIPE import board import busio from adafruit_ht16k33 import segments i2c = busio.I2C(board.SCL, board.SDA) seg = segments.Seg14x4(i2c) output_pattern = re.compile(r"millis: (?P<millis>\d+) " r"temp: (?P<temp>[\d\.]+) " r"humidity: (?P<humidity>[\d\.]+) " r"battery: (?P<battery>[\d\.])") proc = Popen(['/home/gummi/git/hygrometer/scanner/scanner'], stderr=PIPE) with proc: while True: line = proc.stderr.readline() m = output_pattern.match(line) millis, temp, humidity, battery = m.groups() millis = int(millis) temp = float(temp) humidity = float(humidity) battery = float(battery) print(millis, temp, humidity, battery, sep="\n") seg.print("{0:0.0f}{1:0.0f}".format(humidity, battery))
alarm_flag = False # is audible alarm playing? wake = False # Is any alarm active? ip_mode = False # Whether IP address is displayed # User set variables t_begin = (7,0) # Time that gentle alarm triggers t_end = (7,1) # Time that hard alarm triggers delay = 1 # Delay in minutes between hard and soft alarm use_lamp = True # Whether to use lamp instead of blinds t_tilt = 35 # time to tilt up fully, tenths of a second alarm_enable = True # Initialize global objects radio = NRF24(GPIO, spidev.SpiDev()) i2c = busio.I2C(board.SCL, board.SDA) display = segments.Seg14x4(i2c) app = Flask(__name__) ### Request-triggerable functions ### @app.route("/tilt/up") def tilt_up(): global tiltStatus tiltStatus = 'f' @app.route("/tilt/down") def tilt_down(): global tiltStatus tiltStatus = 'r' @app.route("/tilt/stop") def tilt_stop():