serialReadCmd.ino
#include <Esplora.h>
#include <TFT.h>
#include <SPI.h>
int MAX_CMD_LENGTH = 10;
char cmd[10];
int cmdIndex;
char incomingByte;
void setup() {
EsploraTFT.begin();
EsploraTFT.background(0,0,0);
EsploraTFT.stroke(255,255,255); //preset stroke color
//Setup Serial Port with baud rate of 9600
Serial.begin(9600);
//indicate start
Esplora.writeRGB(255, 255, 255);
delay(250);
Esplora.writeRGB(0, 0, 0);
cmdIndex = 0;
}
void loop() {
if (incomingByte=Serial.available()>0) {
char byteIn = Serial.read();
cmd[cmdIndex] = byteIn;
if(byteIn=='\n'){
//command finished
cmd[cmdIndex] = '\0';
Serial.println(cmd);
cmdIndex = 0;
if(strcmp(cmd, "LEDON") == 0){
Serial.println("Command received: LEDON");
Esplora.writeRGB(255, 255, 255);
}else if (strcmp(cmd, "LEDOFF") == 0) {
Serial.println("Command received: LEDOFF");
Esplora.writeRGB(0, 0, 0);
}else{
Serial.println("Command received: unknown!");
}
}else{
if(cmdIndex++ >= MAX_CMD_LENGTH){
cmdIndex = 0;
}
}
}
}
Thank you very much for this coding
ReplyDeleteGreat example! I was trying to *way* over complicate something that was really quite simple. Thanks!
ReplyDeleteTHANKS BRO
ReplyDeleteIt went from complicated to simple once I landed here.
ReplyDeleteThank you.
Sir, I can't make it work
ReplyDeleteint MAX_CMD_LENGTH = 10;
char cmd[10];
int cmdIndex;
char incomingByte;
int relay1 = 13;
void setup() {
//Setup Serial Port with baud rate of 9600
Serial.begin(9600);
pinMode(relay1, OUTPUT);
digitalWrite(relay1, LOW);
Serial1.begin(9600);
delay(20000); // give time to log on to network.
Serial1.print("AT+CMGF=1\r"); // set SMS mode to text
delay(100);
Serial1.print("AT+CNMI=2,2,0,0,0\r");
// blurt out contents of new SMS upon receipt to the GSM shield's serial out
delay(100);
Serial.println("Ready...");
cmdIndex = 0;
}
void loop() {
if (incomingByte=Serial.available()>0) {
char byteIn = Serial.read();
cmd[cmdIndex] = byteIn;
if(byteIn=='\n'){
//command finished
cmd[cmdIndex] = '\0';
Serial.println(cmd);
cmdIndex = 0;
if(strcmp(cmd, "LEDON") == 0){
Serial.println("Command received: LEDON");
digitalWrite(relay1,HIGH);
}if (strcmp(cmd, "LEDOFF") == 0) {
Serial.println("Command received: LEDOFF");
}
}else{
if(cmdIndex++ >= MAX_CMD_LENGTH){
cmdIndex = 0;
}
}
}
}