Arduino Alvik: explorar y reportar a pantalla remota
Va el segundo programa con el robot Arduino Alvik. Ahora la idea es explorar el terreno y comunicar los datos de exploración a una base remota.
Partes requeridas
Comunicación con la base
El Alvik tiene tanto Bluetooth como WiFi. Entre las opciones que ofrece el WiFi en ESP32 está la posibilidad de usar ESPNow.
Para usar ESPNow con Alvik es necesario consignar este import
import espnow
y luego definir el MAC address de la parte receptora. Para obtener el MAC en la parte receptora incluyo un código .ino que lo imprime por Serial.
peer = b’\x00\x00\x00\x00\x00\x00'
e = espnow.ESPNow()
e.active(True)
e.add_peer(peer)
Cada una cantidad de segundos configurable, el Alvik envía por ESPNow un CSV al MAC address
e.send(peer, str(alvik.get_battery_charge()) +”,”+ str( alvik.get_color_label()) +”,”+ str(time.time() — start) +”,”+ str(turns)+” “ )
- Carga de la batería por medio de alvik.get_battery_charge()
- Color del suelo por medio de alvik.get_color_label()
- Tiempo insumido
- Cantidad de giros efectuados
Para la parte receptora conecté un Firebeetle 2 ESP32E a una pantalla TFT 320x240 y procedí a monitorear la recepción de estos mensajes por medio de un callback esp_now_register_recv_cb(esp_now_recv_cb_t(OnDataRecv))
En la llamada a esa función parsea los datos del mensaje CSV y los imprime en la pantalla.
Demo
Código fuente