Oto prosty tutorial, który ilustruje, jak wysłać i odebrać dane za pomocą wbudowanej biblioteki espnow
na mikroprocesorze ESP32 C3 Super Mini (ale też każdym innym esp) w języku MicroPython:
Wysyłanie danych (Sender):
import network
import espnow
import time
# Inicjalizacja interfejsu Wi-Fi
sta = network.WLAN(network.STA_IF)
sta.active(True)
sta.disconnect()
# Inicjalizacja ESPNow
esp_now = espnow.ESPNow()
esp_now.active(True)
# Adres MAC odbiornika
receiver_mac = b'\xbb\xbb\xbb\xbb\xbb\xbb'
# Dodanie odbiornika
esp_now.add_peer(receiver_mac)
# Wysyłanie danych
esp_now.send(receiver_mac, "Starting...")
for i in range(100):
esp_now.send(receiver_mac, str(i) * 20, True)
time.sleep(0.1)
esp_now.send(receiver_mac, b'end')
Odbieranie danych (Receiver):
import network
import espnow
# Inicjalizacja interfejsu Wi-Fi
sta = network.WLAN(network.STA_IF)
sta.active(True)
sta.disconnect()
# Inicjalizacja ESPNow
esp_now = espnow.ESPNow()
esp_now.active(True)
while True:
host, msg = esp_now.recv()
if msg: # msg == None w przypadku timeout w recv()
print("Received from {}: {}".format(host, msg.decode()))
if msg == b'end':
break
W powyższym kodzie, sender
inicjalizuje interfejs Wi-Fi, następnie inicjalizuje ESPNow, dodaje odbiornika i wysyła dane. receiver
również inicjalizuje interfejs Wi-Fi, inicjalizuje ESPNow, a następnie w nieskończonej pętli odbiera dane i wypisuje je na konsolę. Pętla jest przerywana, gdy odebrane dane to b'end'
.
Pamiętaj, że adres MAC odbiornika (receiver_mac
) w obu przypadkach musi być dostosowany do rzeczywistego adresu MAC odbiornika ESP32.