Remember to maintain security and privacy. Do not share sensitive information. Procedimento.com.br may make mistakes. Verify important information. Termo de Responsabilidade

Como Executar Comandos Shell no Ambiente Arduino

Os comandos shell são amplamente utilizados em sistemas operacionais baseados em Unix/Linux para realizar uma variedade de tarefas administrativas e de automação. No entanto, o ambiente Arduino não é um sistema operacional completo e, portanto, não possui um shell nativo para executar comandos como em um terminal Unix/Linux. Isso se deve ao fato de que o Arduino é uma plataforma de microcontroladores projetada para ser simples e eficiente em tarefas de controle e automação.

Apesar disso, existem maneiras de simular ou integrar funcionalidades semelhantes aos comandos shell no ambiente Arduino. Uma abordagem comum é utilizar a comunicação serial para enviar comandos do computador para o Arduino, onde eles podem ser interpretados e executados.

Exemplos:

  1. Comunicando com o Arduino via Serial Monitor:

    Neste exemplo, vamos criar um simples interpretador de comandos no Arduino que responde a comandos enviados pelo Serial Monitor.

    String inputString = "";         // A string to hold incoming data
    bool stringComplete = false;     // Whether the string is complete
    
    void setup() {
     Serial.begin(9600);            // Initialize serial communication at 9600 bps
     inputString.reserve(200);      // Reserve 200 bytes for the inputString
    }
    
    void loop() {
     // Print the string when a newline is received
     if (stringComplete) {
       Serial.println("Received command: " + inputString);
    
       // Process the command
       if (inputString == "LED ON") {
         digitalWrite(LED_BUILTIN, HIGH);
         Serial.println("LED is ON");
       } else if (inputString == "LED OFF") {
         digitalWrite(LED_BUILTIN, LOW);
         Serial.println("LED is OFF");
       } else {
         Serial.println("Unknown command");
       }
    
       // Clear the string
       inputString = "";
       stringComplete = false;
     }
    }
    
    void serialEvent() {
     while (Serial.available()) {
       // Get the new byte
       char inChar = (char)Serial.read();
       // Add it to the inputString
       inputString += inChar;
       // If the incoming character is a newline, set a flag
       if (inChar == '\n') {
         stringComplete = true;
       }
     }
    }

    Neste código, o Arduino espera por comandos enviados através do Serial Monitor. Quando um comando é recebido, ele é processado e o Arduino executa a ação correspondente (neste caso, ligar ou desligar o LED embutido).

  2. Usando a Biblioteca CmdMessenger:

    A biblioteca CmdMessenger facilita a comunicação serial entre o Arduino e um computador, permitindo a execução de comandos de forma estruturada.

    Primeiro, instale a biblioteca CmdMessenger através do Gerenciador de Bibliotecas do Arduino IDE.

    #include <CmdMessenger.h>
    
    CmdMessenger cmdMessenger = CmdMessenger(Serial);
    
    void setup() {
     Serial.begin(9600);
     cmdMessenger.attach(onUnknownCommand);
     cmdMessenger.attach(1, onLedOn);
     cmdMessenger.attach(2, onLedOff);
    }
    
    void loop() {
     cmdMessenger.feedinSerialData();
    }
    
    void onUnknownCommand() {
     Serial.println("Command not recognized");
    }
    
    void onLedOn() {
     digitalWrite(LED_BUILTIN, HIGH);
     Serial.println("LED is ON");
    }
    
    void onLedOff() {
     digitalWrite(LED_BUILTIN, LOW);
     Serial.println("LED is OFF");
    }

    Neste exemplo, a biblioteca CmdMessenger é usada para definir comandos específicos que podem ser enviados ao Arduino. Os comandos são identificados por números e a biblioteca cuida de interpretar e chamar as funções apropriadas.

Esses exemplos mostram como podemos simular a execução de comandos shell no ambiente Arduino usando a comunicação serial. Embora o Arduino não suporte comandos shell nativamente, essas técnicas permitem que você crie um sistema de controle remoto eficiente e flexível.

To share Download PDF

Gostou do artigo? Deixe sua avaliação!
Sua opinião é muito importante para nós. Clique em um dos botões abaixo para nos dizer o que achou deste conteúdo.