def main(): bme680.init() disp = display.open() disp.clear().update() while True: sensor_data = bme680.get_data() disp.clear() disp.print("BME680 Sensor") disp.print("{} C".format(str(sensor_data[0])), posy=20) disp.print("{} rh".format(str(sensor_data[1])), posy=40) disp.print("{} hPa".format(str(sensor_data[2])), posy=60) disp.update() utime.sleep(10)
def update_clock(self, display): fgcol = (55 * BRIGHTNESS, 55 * BRIGHTNESS, 55 * BRIGHTNESS) display.clear() (year, month, day, hour, minute, seconds, weekday, _yday) = utime.localtime() self.renderNum(display, hour, 1, fgcol) self.renderNum(display, minute, 13, fgcol) self.renderColon(display, fgcol) self.render_battery(display, os.read_battery()) temperature, humidity, pressure, resistance = bme680.get_data() self.render_temperature(display, temperature) ccc_day = get_ccc_day() if ccc_day: date = 'Day {}'.format(ccc_day[0]) date_color = ccc_day[1] else: date = '{}.{}'.format(day, MONTH_STRING[month - 1]) date_color = (255, 255, 255) self.render_date(display, date, date_color) display.update()
def read_values(self, **kwargs): bme680.init() data = bme680.get_data() bme680.deinit() return list(data)
QualityColor = htmlcolor.CRIMSON else: QualityColor = htmlcolor.PURPLE LEDcount = round(gas_quality / 200 * numLEDs) leds.clear() for i in range(0, 10 - LEDcount): leds.set(i, QualityColor) leds.update() bme680.init() cont = True numLEDs = 10 while cont: temperature, humidity, pressure, resistance = bme680.get_data() gas_quality = math.log(resistance) + 0.04 * math.log( resistance ) / humidity #https://forums.pimoroni.com/t/bme680-observed-gas-ohms-readings/6608/17 disp = display.open() disp.clear() disp.print("{:2.2f} °C".format(temperature), fg=[0, 255, 255], bg=[0, 0, 0], posx=0, posy=1) disp.print("{:2.2f} %r.h.".format(humidity), fg=[0, 255, 255], bg=[0, 0, 0], posx=0, posy=20)
# Vergleichswerte zum Kontrollieren der Messdaten soil_moisture_check = 45 # Vergleichswert Bodenfeuchtigkeit in % temperature_check = 26 # Vergleichswert Temperatur in °C humidity_check = 80 # Vergleichswert Luftfeuchtigkeit in % irrigation_time = 10 # Bewaesserungs Zeit in sek ventilation_check = 0 # wird benoetigt, um den Luefter manuell zu steuern """------------------------------WEBSITE & THREADS-----------------------------------""" # Befehle fuer Flask Webserver app = Flask(__name__) app.debug = False app.use_reloader = False # Erstmaliges auslesen der Sensordaten zum fuellen der Website humidity, pressure, temperature = bme680.get_data() # Festlegen der Website URL und der Funktion zum uebergeben der Daten an die Webseite @app.route("/") def hallo(): return render_template("start.html", soil_moisture=soil_moisture, pressure=pressure, temperature=temperature, humidity=humidity) # Funktion zum auslagern des Webservern auf einen eigenen Thread def flaskThread(): app.run(host="192.168.178.63")
def run_loop(): bat = [1, [0, 230, 00], [255, 215, 0], [255, 0, 0]] anim = 0 write_timer = 0 with display.open() as disp: disp.clear() disp.backlight(5) disp.print("@derfnull", posy=0) disp.update() disp.close() while True: pressed = buttons.read(buttons.BOTTOM_LEFT | buttons.BOTTOM_RIGHT) if pressed & buttons.BOTTOM_LEFT: anim += 1 if pressed & buttons.BOTTOM_RIGHT: anim += 2 if pressed: if anim > 4: anim = 0 if anim == 0: leds.clear() leds.set_rocket(0, 0) leds.set_rocket(1, 0) leds.set_rocket(2, 0) if anim == 1: leds.set_rocket(0, 0) leds.set_rocket(1, 0) leds.set_rocket(2, 0) leds.gay(0.2) if anim == 2: leds.clear() leds.set_rocket(0, 2) leds.set_rocket(1, 15) leds.set_rocket(2, 15) if anim == 3: leds.clear() leds.set_rocket(0, 15) leds.set_rocket(1, 15) leds.set_rocket(2, 15) if anim == 4: leds.clear() leds.set_rocket(0, 0) leds.set_rocket(1, 0) leds.set_rocket(2, 0) leds.set(11, [127, 127, 127]) leds.set(12, [127, 127, 127]) leds.set(13, [127, 127, 127]) leds.set(14, [127, 127, 127]) sensor_data = bme680.get_data() ambient_light = light_sensor.get_reading() battery_voltage = os.read_battery() with display.open() as disp: disp.clear() render_battery(disp, bat, battery_voltage) disp.print("@derfnull", posy=0) disp.print("{:2.1f} C {:2.0f} %".format(sensor_data[0], sensor_data[1]), posy=20) disp.print("{:5.1f} hPa ".format(sensor_data[2]), posy=40) disp.print("{:4.1f} kOhm ".format(sensor_data[3] / 1000), posy=60) disp.update() disp.close() write_timer += 1 if write_timer == 5: with open('sensorlog.txt', 'a') as f: f.write('{} {} {} {} {} {} {}\n'.format( utime.time_ms(), sensor_data[0], sensor_data[1], sensor_data[2], sensor_data[3], ambient_light, battery_voltage)) write_timer = 0 utime.sleep(2)