ESP-NOW i MicroPython

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.

LINKI

Dodaj komentarz