Toggle Menu

Linea de comandos para arduino SerialCommander is born


Meses atrás, mis amigos en el campo estaban teniendo inconvenientes con el suministro de agua, así que comencé a jugar con unas placas Arduino.

Como siempre, armé una prueba rápida que tiene todo pegado con pegamento y cinta.

Esto esta funcionando de modo estable, así que es momento de desarrollar algo más real, con código más limpio y con el hardware en una disposición más permanente.

Receptor y transmisor usan Ethernet shields, y están conectados por una red local que interconecta varios edificios que están distantes entre sí.

Tener las placas conectadas a la red permitió agregar algunas cosas extras, como tener notificaciones al teléfono cuando algo no esta funcionando y reporte en tiempo real.

Larga vida al puerto serial

Lo primero que necesito es brindar es una forma de configurar los dispositivos en caso de que tengan que ser remplazados o si la configuración de la red cambia.

Sería lindo brindar una página web para configurar el dispositivo, pero el costo en memoria y trabajo extra no coincide con algo que va a ser usado 1 o 2 veces en la vida de cada placa.

La persona que cambie las placas debería estar familiarizada con el puerto serial, ¿no? :)

Linea de comandos interactiva en Arduino

La solución es simple, aceptar caracteres hasta detectar linea nueva o timeout.

	...
	if (MyCommander.read() &&
		MyCommander.is("surrender") &&
		MyCommander.confirm(F("Are you sure?")) {
		// do something
	}
	...

PlatformIO

platformio lib install 288

http://platformio.org/lib/show/288/SerialCommander

Código fuente

Fuente disponible en GitHub

Ejemplo

Código fuente

SerialCommander