ESP NOW Micropython ESP32

 ESP NOW  позволяет связать модули ESP  между собой , обещают дальность до 200 метров между устройствами , так же можно строить разные сети .

 Что бы отправить сообщение нужно узнать МАК адрес приемника.

Запускаем код на приемнике , где то записываем МАК адрес и потом вставляем в код передатчика. 


main.py    Определение МАК адреса


import network
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
mac = wlan.config('mac')
print('MAC Address:', ':'.join(['%02x' % b for b in mac]))
print(mac)




main.py    Передатчик


# Sender Code
import network
import espnow
import time

# Initialize Wi-Fi in Station mode and disconnect
sta = network.WLAN(network.STA_IF)
sta.active(True)
sta.disconnect()  # Crucial for ESP8266, good practice for ESP32

# Initialize ESP-NOW
e = espnow.ESPNow()
e.active(True)

# Define peer's MAC address (replace with your receiver's address)
peer = b'\\\x01;f\xff\xf0'
e.add_peer(peer)  # Register the peer before sending

# Send messages
e.send(peer, "Starting...")
for i in range(100000000):
    e.send(peer, f"Message {i}", True)  # True waits for send acknowledgment
    print(i)
    time.sleep(2)
e.send(peer, b'end')




main.py    Приемник


# Receiver Code
import network
import espnow
from led_driver import print_like_console , print_multiline_console


# Initialize Wi-Fi and disconnect
sta = network.WLAN(network.STA_IF)
sta.active(True)
sta.disconnect()

# Initialize ESP-NOW
e = espnow.ESPNow()
e.active(True)

print("Waiting for messages...")
while True:
    host, msg = e.recv()  # Wait for a message
    if msg:
        print(f"From {host}: {msg}")
        print_like_console(f"{msg}", x=0, y=0, delay=0.05)
        if msg == b'end':
            print("End of transmission.")
            break




Комментарии

Популярные сообщения из этого блога

Meshtastic ESP32 E22

LORA Upgrade E32 400M30S

Установка micropython на ESP32