ISR-based Fire and Smoke Alarm with configurable Test Values for Arduino Mega/UNO/Nano, etc

This project is not very simple, just to demonstrate the use of ISR-based Timers of TimerInterrupt library v1.0.2 on Arduino Mega/UNO/Nano, etc.

The design principles are as follows:

  1. Fire or Smoke measurement and alarm activation are considered mission-critical, and must not be interfered or blocked by any other bad tasks, intentionally or unintentionally. This principle can be applied to any of your project. Please check the way ISR-based are designed ( very lean and mean ), no delay() and no unnecessary baggage.
  2. The sound alarm is also considered critical. Alarm without sound has no meaning in real-life dangerous situation.
  3. Blynk is considered just a Graphical-User-Interface (GUI). Being connected or not must not interfere with the alarm detection / warning.

Certainly, with Blynk GUI, we can achieve many more great features, such as remote check and control, configurable test case and value , etc. when possible.

This can be applied in many projects requiring reliable system control, where good, bad, or no connection has no effect on the operation of the system.

Please go to GitHub for Arduino code. Will port it to other platform such as ESP32.

This code is based on that of the previous project

If you’re interested in how to use ISR-based timers in Arduino, please get both codes and compare what steps were done to make it ISR-based way.

Have fun Blynking .