Strage delay needed after Serial.read()
Try this code: first delay produces 1ms pulse on pin D5. Without this delay the pulse could be too short for the nano to catch it (you can use delayUs and try finding the shortest interval that produces reliable result). We know that after this pulse, nano sends some data. So wait 100ms to collect it. If you call readSerial right after the pulse was sent, you won't get anything, because you need to wait at least for single byte transmission

void loop() {
    digitalWrite(D5, HIGH);
    delay(1); 
    digitalWrite(D5, LOW);

    delay(100);
    readSerial();

    delay(1000);
}