Earthquake Indicator Using Arduino

Here a simple earthquake indicator for home and industry using an Arduino and a highly-sensitive ADXL335 accelerometer is presented that can indicate vibrations. -- RONIE ADHIRAAJ GHOSH

Fig. 1: ADXL335

An earthquake is an unavoidable and unpredictable natural phenomenon that often causes damage to lives and property. We cannot fight it but we can stay alert and aware using technology that can protect us and the industry. Here a simple earthquake indicator for home and industry using an Arduino and a highly-sensitive ADXL335 (Fig. 1) accelerometer is presented that can indicate vibrations.

This project can be modified and used as a knock-and-shake detector for ATMs, vehicles or door-break alarms. But its main aim is to detect earthquakes and other seismic activities.
We know that accelerometers like ADXL335 are highly sensitive to knocks and vibrations in any of the three physical axes. ADXL335 gives analogue voltage equivalent to imposed acceleration. It has three outputs, one each for of X-, Y- and Z-axes. The three analogue outputs are wired to Arduino Uno ADC pins. Any acceleration caused due to movement in any of the axes is detected by the accelerometer and hence by Arduino ADC.

If motion is violent enough during an earthquake and crosses a certain threshold, a local alarm light (LED) glows, a buzzer sounds as well as a relay energises. While the buzzer and light is for home purpose, relay output is for industrial purpose; it can be wired to a PLC for safety interlocking of any moving machine part and furnace control for shutting these down in case of an earthquake. The threshold adjustment buttons are there for carrying out this task. An LCD has been provided for viewing threshold adjustments and for making the system user-friendly.

Circuit and working
The circuit (Fig. 2) uses Arduino Uno board wired to ADXL335 accelerometer module (connected across CON2) with its ADC inputs, namely, X-axis to A0, Y-axis to A1 and Z-axis to A2. Two pushbuttons through supply of 5V are wired to Arduino Uno interrupt pins 2 and 3 that are pulled down to ground via resistors R2 and R1. These buttons are used for incrementing and decrementing the threshold of vibration detection. A 16×2 LCD (LCD1) is wired in 4-wire mode with Arduino pins contrast control and backlight enabled.

circuit diagram of the earthquake indicator
Fig. 2: Circuit diagram of the earthquake indicator
Fig. 3: Initialising mode


  1. on compilation it shows that “EEPROMAnything.h” directory doesnt exist. Even in the updated library file can you solve this????

    • You need to manually add the EEPROMAnything.h file into the library and compile it again. You will not get this error message if you include the file properly.

  2. hi built this as per the schematic
    and entered proper codes with the library u sent
    but when i start it
    it starts with alarm mode
    it has never shown me monitoring mode
    and how to decrease the sensitivity of the accelorometer adxl335 ?

  3. after compiling it shows that

    earthQuake.ino:2:28: fatal error: EEPROMAnything.h: No such file or directory
    compilation terminated.
    Error compiling.

    The library file also have been added but still there is error when the program is compiled.

    • Here’s the reply from author Adhiraaj Ronie Ghosh:
      EEPROMAnything.h is a separate library provided with the source code. Before building circuit you shall go through the write up properly. Copy the header file in arduino library and then compile.

  4. Hi,

    I built it and it’s working nice. If I set the threshold to 15 with the buttons it’s working nice but
    the setting return to 25 at each reboot. Is it possible to store the adjust settings in the EEPROM ?



Please enter your comment!
Please enter your name here