128x64 LCD per Smartphone steuern

Hallo an alle,

ich mache gerade ein Projekt für die Uni und bin noch blutiger Anfänger auf dem Gebiet. Das Projekt soll diese Ziele haben:

  • Text per Smartphone an ein LCD Display senden und ausgeben.
  • Bildschirm blinken lassen
  • Bildschirm an/aus
  • Grafik darstellen

Ich benutze folgende Bauteile: HC-05 Bluetooth Modul, 128x64 LCD (ST7920), Arduino UNO.

Zur Zeit kann ich Text per App auf dem Bildschirm anzeigen lassen und in mehreren Zeilen schreiben.
Jetzt zu meiner Frage: Wie kann ich z.B. ein Dollar Zeichen senden und das damit verknüpfen, dass mein Bildschirm aus/an geht ?
Wenn ich ein bestimmtes Zeichen sende, wie kann ich dann auf den picture loop verweisen und ihm sagen, dasser eine Grafik ausgeben soll?

#include "U8glib.h"
// setup u8g object, please remove comment from one of the following constructor calls

U8GLIB_ST7920_128X64 u8g(13, 11, 10, U8G_PIN_NONE); // SPI Com: SCK = en = 13, MOSI= rw = 11, CS = di = 0

 int i=0;
  char commandbuffer[20];
  
  char commandbuffer1[20];
  
  char commandbuffer2[20];
  int cache;

  
void draw(void) {
// graphic commands to redraw the complete screen should be placed here

u8g.setFont(u8g_font_unifont);
u8g.drawStr( 4, 15, (char*)commandbuffer );
u8g.drawStr( 4, 35, (char*)commandbuffer1 );
u8g.drawStr( 4, 55, (char*)commandbuffer2 );
}

void setup(void) {
  Serial.begin(9600);   
 

  // assign default color value
  if ( u8g.getMode() == U8G_MODE_R3G3B2 ) {
    u8g.setColorIndex(255);     // white
  }
  else if ( u8g.getMode() == U8G_MODE_GRAY2BIT ) {
    u8g.setColorIndex(3);         // max intensity
  }
  else if ( u8g.getMode() == U8G_MODE_BW ) {
    u8g.setColorIndex(1);         // pixel on
  }
  else if ( u8g.getMode() == U8G_MODE_HICOLOR ) {
    u8g.setHiColorByRGB(255,255,255);
  }
  
  pinMode(8, OUTPUT);
}

void loop(void) {

 int i=0;
  if(Serial.available()){
     delay(200);
     memset(commandbuffer, 0, 15);
     memset(commandbuffer1, 0, 15);
     memset(commandbuffer2, 0, 15);
     while( Serial.available() && i< 99) {
        cache = 0;
        cache = Serial.read();
        if(cache == 10 || cache == 13){
          cache = 0;
        }
        if(cache == 36){
          cache = 0;
        }
        if(i < 15){
        commandbuffer[i] = cache;
        }
        if(15 < i < 29){
        commandbuffer1[i-15] = cache;
        }
        if(i > 29){
        commandbuffer2[i-30] = cache;
        }
        i++;
        
     }
  }

  // picture loop
  u8g.firstPage();  
  do {
    
    u8g.setFont(u8g_font_unifont);

    u8g.drawStr( 4, 15, commandbuffer );
    u8g.drawStr( 4, 35, commandbuffer1 );
    u8g.drawStr( 4, 55, commandbuffer2 );

  } while( u8g.nextPage() );
 
 
  delay(50);
}

Würde mich über kleine Tipps sehr freuen!