console-bridge.ino

Arduino Yún · Archivo : console-bridge.ino · Lenguaje : Arduino · Uso : Dialoguer avec le croquis depuis la console Linux (telnet/ssh)

La librería Console sustituye a Serial por el lado de la red: desde una sesión ssh de la placa, el comando console muestra lo que imprime el sketch y devuelve las pulsaciones. Depuración sin cable USB, a distancia.

Hardware

Un Arduino Yun (ATmega32U4 + Linux Linino sobre un Atheros AR9331, Wi-Fi y Ethernet, ranura microSD). Ninguno; acceso ssh a la placa (contraseña root de la distribución).

Cableado

Nada que cablear. La placa debe estar en la red para ser alcanzable por ssh.

Funcionamiento

Console.begin() abre un canal al demonio bridge; Console.available/read reciben los caracteres tecleados por el lado Linux y println les vuelve. El enlace físico es el puerto serie interno MCU↔SoC.

Ejecución

Arduino IDE: selecciona el puerto serie para grabar y luego la placa Arduino Yun para el monitor. Por el lado Linux: ssh root@arduino.local (contraseña de la distribución). La app Yunwizard configura la red.

Variantes

Exponer las mismas órdenes por REST (YunServer) para doble acceso consola + HTTP, o registrar en /tmp vía Process.

console-bridge.ino

// Console sur le pont : taper des commandes depuis ssh/telnet.
#include <Bridge.h>
#include <Console.h>

int compteur = 0;

void setup() {
  Bridge.begin();
  Console.begin();            // console = port serie "reseau"
  while (!Console);           // attend qu'un client se branche
  Console.println("Console pont prete : 'c' compte, 'x' reinitialise");
}

void loop() {
  if (Console.available() > 0) {
    char c = Console.read();
    switch (c) {
      case 'c':
        compteur++;
        Console.print("compteur = ");
        Console.println(compteur);
        break;
      case 'x':
        compteur = 0;
        Console.println("reinitialise");
        break;
      default:
        Console.print("inconnu: ");
        Console.println(c);
    }
  }
  // Cote Linux : la commande "console" (Yun) ou telnet localhost 5555 pour
  // voir cette sortie sans ouvrir l'IDE.
  delay(50);
}

← Volver a la ficha