''' ESP32 sender for BME280 Communication Method: ESPNOW external library ttps://github.com/robert-hh/BME280 2026-01-26 mchris ''' peer = b'\xcc\x7b\x5c\x1e\xac\x5c' # MAC address of receiver ESP32 import network import espnow from machine import Pin, I2C import time import struct from bme280_float import * import re i2c = I2C(1, scl=Pin(22), sda=Pin(21), freq=100000) bme280 = BME280(i2c=i2c) led = Pin(2, Pin.OUT) # ESP32WROOM Pin2 led.on() # A WLAN interface must be active to send()/recv() sta = network.WLAN(network.WLAN.IF_STA) # Or network.WLAN.IF_AP sta.active(True) sta.disconnect() # Reset any prior connections e = espnow.ESPNow() e.active(True) e.add_peer(peer) # Must add_peer() before send() e.send(peer, "Starting...") led.on() def parse_value(s): # Extract number before °C/%/hPa etc. num = re.match(r'([\d.]+)', s).group(1) return float(num) while True: for i in range(100): values=bme280.values parsed = [parse_value(v) for v in values] # [100.0, 10.0, 1013.0, 23.4, 45.0] data = struct.pack('<5f', *parsed) e.send(peer, data,True) print('Sent:', parsed) time.sleep_ms(200) led.toggle() e.send(peer, b'end') led.off()