Earthquake detection (EEPROM WriteAnything)

  sensorValue acceleration = { analogRead(A0) , analogRead(A1) , analogRead(A2) };
  EEPROM_writeAnything(0, acceleration);
  EEPROM_readAnything(0, acceleration);

You create a local variable with the same name as the global variable. Not a good idea. You populate the instance, write that to EEPROM, and then read the same stuff you just wrote, storing it in the variable that immediately goes out of scope.

In other words, the read was useless.

  if ((long)(micros() - last_micros) >= debouncing_time * 1000) {

Casting an unsigned long to a signed long is useless.