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

Комментарии
Отправить комментарий