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:
- 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.
- The sound alarm is also considered critical. Alarm without sound has no meaning in real-life dangerous situation.
- 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