''' ESP32 sender for BME280 with sleep Measured values on a ESP32 WROOM development board 5V power supply at Vin, red power on board led on 11 mA ESP Sleep (red power LED on) 40 mA ESP ON, Wifi Off 112 mA ESP ON Wifi ON Communication Method: ESPNOW external library ttps://github.com/robert-hh/BME280 2026-01-27 mchris ''' import network, espnow, machine from machine import Pin, I2C import time, struct from bme280_float import * import re peer = b'\xcc\x7b\x5c\x1e\xac\x5c' SLEEP_TIME_MS = 6000 #300000 # 5 minutes (300 seconds * 1000) NUM_READINGS = 5 i2c = I2C(1, scl=Pin(22), sda=Pin(21), freq=100000) bme280 = BME280(i2c=i2c) led = Pin(2, Pin.OUT) sta = network.WLAN(network.WLAN.IF_STA) sta.active(True) sta.disconnect() e = espnow.ESPNow() e.active(True) e.add_peer(peer) led.on() #e.send(peer, b"Starting burst...") def parse_value(s): num = re.match(r'([\d.]+)', s).group(1) return float(num) values = bme280.values parsed = [parse_value(v) for v in values] data = struct.pack('<5f', *parsed) e.send(peer, data, True) print('Sent:', parsed) #time.sleep_ms(200) led.toggle() #led.off() time.sleep(3) e.active(False) sta.active(False) machine.deepsleep(SLEEP_TIME_MS)