Hi,
first, I must say big thanks to glenn20...
And second... I have a problem with ESPNow and WiFi working together. I need receive messages, handle them and send via wifi, but I am not able to get working code with wifi and espnow together. I have esp32-wroom-32e as a receiver, your latest code (with wifi powersave).
Sender code is here:
Code: Select all
channel=11
receiver=b'\xff\xff\xff\xff\xff\xff' # or b'\x08:\xf2;\x1f\xa1'
e = espnow.ESPNow()
e.init()
w0 = network.WLAN(network.STA_IF)
w0.active(True)
e.set_pmk(b'TheKey')
e.add_peer(reciever, None, channel, network.STA_IF)
e.send(reciever, message.encode())
...and this works. I am able to receive this messages.
Receiver code is here:
Code: Select all
e = espnow.ESPNow()
e.init()
w0 = network.WLAN(network.STA_IF)
w0.active(True)
w0.connect('ssid', 'S3cr3tP455wd') #this wifi is on channel 4
while not w0.isconnected():
pass
print('network config:', w0.ifconfig())
# MAC: b'\x08:\xf2;\x1f\xa1' (08:3A:F2:3B:1F:A1)
w1 = network.WLAN(network.AP_IF)
w1.active(True)
w1.config(channel=11, hidden=True)
e.set_pmk(b'TheKey') #same like before
peers = [ b"sender'sMAC", b"..."]
for peer in peers:
e.add_peer(peer, None, 11, network.AP_IF)
print('Receiving...')
while True:
msg = e.irecv()
if msg:
print(msg)
And here is working code:
Code: Select all
e = espnow.ESPNow()
e.init()
w1 = network.WLAN(network.STA_IF)
w1.active(True)
e.set_pmk(b'TheKey')
peers = [ b"sender'sMAC", b"..."]
for peer in peers:
e.add_peer(peer, None, 11, network.STA_IF)
print('Receiving...')
while True:
msg = e.irecv()
if msg:
print(msg)
Chip is ESP32-D0WD-V3 (revision 3) or ESP32-D0WDQ6 (revision 1)
Update: Tried with power=network.WIFI_PS_NONE, no success. Working example tried on AP_IF - still working.