from machine import UART
import time
# ==============================
# Initialisation de UART2
# ==============================
# UART(2) : UART2 matériel
# baudrate : vitesse de communication
# tx / rx : broches par défaut UART2 sur ESP32-WROOM
uart2 = UART(2, baudrate=9600, bits=8, parity=None, stop=1, tx=17, rx=16)
# ==============================
# Boucle principale
# ==============================
while True:
# -------- ÉMISSION --------
# En MicroPython, UART transmet des BYTES (octets)
# Une chaîne de caractères (str) :
message = "Hello depuis UART2"
#On encode une chaîne en UTF-8 pour la convertir en octets compatibles avec la transmission UART.
message_b = message.encode('utf-8') # octets encodés UTF-8
uart2.write(message_b) # envoyer mes données via UART
# Alternative possible (ASCII par défaut)
# uart2.write(message.encode('ascii'))
# ⚠️ ASCII ne supporte pas les accents
uart2.write(b"\r\n") # retour à la ligne
# -------- ALTERNATIVE AVEC input() --------
# Pour envoyer un texte saisi par l'utilisateur via le terminal USB :
#
# texte = input("Entrer un message à envoyer via UART2 : ")
# uart2.write(texte.encode('utf-8'))
# Encodage UTF-8 (recommandé)
# UTF-8 supporte les caractères spéciaux (é, °, etc.)
# -------- RÉCEPTION via UART --------
if uart2.any(): # Vérifie s'il y a des données reçues
data = uart2.read() # Lecture des données reçues -> retourne des bytes (données binaires)
texte = data.decode('utf-8') # decodage des bytes en chaine de carractère UTF8
#data.decode('ascii')
print("Texte reçu :", texte)
time.sleep(2)