#include<ST7032_asukiaaa.h>

ST7032_asukiaaa lcd;
bool flag_S1 = 0; 

void IRAM_ATTR BUTTON_1() //функция-обработчик прерывания для кнопки S1
{
  flag_S1 = 1; //устанавливаем признак нажатия на кнопку S1 
}

void setup() {
  lcd.begin(16,2);
  lcd.setContrast(60); 
  Serial0.begin(9600);    //подключили второй интерфейс UART для связи с ESP8266
  pinMode(5,INPUT_PULLUP); 
  attachInterrupt(5,BUTTON_1,FALLING); //добавили прерывания для пина 5 по спадающему фронту
}

void loop() { 
  char message[16];  
  if (Serial0.available() > 0)   //если что-то приходит от ESP8266, то считываем побайтово в массив message
  {
    for (int i = 0; i<16; i++)
    {
      message[i]=Serial0.read();   //считали байт по второму интерфесу
    }
  }
  lcd.setCursor(0,0);
  for (int i = 0; i<16; i++)  // выводим текущее значение массива на дисплей 
   {
     lcd.print(message[i]);   
   }
  if (flag_S1 == 1)      // если была нажата кнопка S1, то
   {
     Serial0.write('a');  //отправляем символ "а" на ESP8266
     lcd.setCursor(0,1);  //выводим симвл на вторую строчку дисплея 
     lcd.print('a');
     flag_S1 = 0;         //сбрасываем признка нажатия на кнопку S1 
   }
   else
   {
    lcd.setCursor(0,1);
    lcd.print(' ');       //если не было нажатия, то стираем символ во второй строке дисплея (пишем пробел)
   }
 delay(20); 
  
}
