Fire Detector Based on Temperature

Nume si Prenume: Pacuraru Macedoniu-Nicolae
Grupa: 335CA

Introduction

This project is a fire detection system that continuously monitors ambient temperature using a DHT11 sensor connected to an ESP8266 microcontroller. When the sensor reading exceeds a set temperature (50 °C for example), a buzzer is activated and an SMS alert is sent via a SIM800L GSM module to a predefined phone number. This device provides immediate local warning and remote notification, helping to prevent fire-related incidents in homes or workspaces.

General Description

The system consists of both hardware and software modules working together:

  • ESP8266 Microcontroller: Reads temperature data, processes the threshold logic, controls the buzzer, and interfaces with the GSM module.
  • DHT11 Temperature Sensor: Provides real-time temperature readings to the microcontroller over a digital signal.
  • Buzzer: Emits an audible alarm when the temperature crosses a set value.
  • SIM800L GSM Module: Sends SMS alerts over UART to notify remote users.
  • Push button: Stops the buzzer alarm.

Hardware Design

Component Description Link
ESP8266EX + CH340 Microcontroller board (Plusivo) Link
DHT11 Temperature Sensor Digital temperature and humidity sensor Link
SIM800L GSM Module GSM communication module Link
1571563-8 Push Button Link
Passive Buzzer Passive Buzzer Link
LM2596 Converter Adjustable voltage regulator module Link

Schematic made in Fusion 360. The ESP8266 was made manually because there seems to be no schematic for it on the internet.

Connections Between Components

- Temperature Sensor DHT11

  • Data (OUT) → pin D2 (GPIO4) of the ESP8266 board
  • VCC → 3.3V
  • GND → GND

- Button (Reset Alarm)

  • First pin → pin D1 (GPIO5) of the ESP8266
  • Second pin → 3.3V
  • Third pin → GND
  • Software configuration: internal pull-up resistor is enabled with pinMode(D1, INPUT_PULLUP);

- Passive Buzzer

  • Signal pin → pin D0 (GPIO16)
  • GND → GND

- SIM800L GSM Module

  • TX (SIM800L output) → pin D7 (ESP8266 RX)
  • RX (SIM800L input) → pin D8 (ESP8266 TX)
  • VCC → separate 3.7V power source (Li-ion battery) or stabilized step-down converter
  • GND → Common GND with ESP8266

  • Note: A voltage divider is recommended on ESP8266 TX → SIM800L RX, as the ESP outputs 3.3V and the SIM800L is sensitive.

- ESP8266 (NodeMCU)

  • USB → PC (for power and serial communication)

Software Design

The firmware is developed in the Arduino IDE targeting the ESP8266 platform.

Purpose of the Code

- DHT11 Temperature Sensor

  • Reads the ambient temperature through digital pin D2 (GPIO4).
  • If the temperature exceeds 26.1°C, an alarm state is triggered.
  • The reading is done using the `Adafruit_Sensor`, `DHT`, and `DHT_U` libraries.
  • Temperature is read periodically (every ~0.5 seconds) and logged to the serial monitor.

- Alarm System (Passive Buzzer and Button)

  • The buzzer is connected to pin D0 (GPIO16) and activated using the `tone()` function when an alarm is triggered.
  • A push button connected to D1 (GPIO5) is configured with an internal pull-up resistor (`INPUT_PULLUP`).
  • When the button is pressed, the alarm is silenced, and the system enters a cooldown period of 1 minute to prevent retriggering.
  • `alarmActive` and `smsSent` boolean flags are used to manage system state.

- SIM800L GSM Module

  • Communicates with the ESP8266 via `SoftwareSerial` on pins D7 (RX) and D8 (TX).
  • During setup, AT commands are used to initialize the module and verify signal/SIM status.
  • Sends an SMS alert once per alarm event using the `sendSMS()` function.
  • The SMS content is: *”ALERTA: Temperatura depaseste 26.1C!”*

Flow Overview

  • Upon startup:
    1. Serial communication is initialized.
    2. The DHT11 and SIM800L modules are set up.
    3. AT commands check SIM status, signal quality, and configure SMS mode.
  • In the main loop:
    1. The system reads temperature from the DHT11 sensor.
    2. If temperature > 26.1°C and no alarm is active:
      1. The buzzer is activated.
      2. An SMS is sent (only once per event).
    3. If the user presses the button:
      1. The alarm stops.
      2. A 60-second cooldown prevents immediate retriggering.
  • Messages and debug information are printed to the serial monitor for monitoring and troubleshooting.

Libraries Used

- `Adafruit_Sensor.h`, `DHT.h`, `DHT_U.h`: For interfacing with the DHT11 temperature sensor. - `SoftwareSerial.h`: Enables serial communication between the ESP8266 and the SIM800L GSM module.

Results

Conclusions

Working on this project was both challenging and fun. At first, I wasn’t sure if everything would work together, especially the SIM800L module, which needed a lot of trial and error to set up properly. I also had to be careful with wiring and power, since I didn’t want to damage any components.

I learned a lot about how to use interrupts, how UART communication works, and how to read data from the DHT11 sensor. I also got some practice debugging both hardware and software issues, which sometimes took a while but felt great once they were solved.

In the end, I managed to build a system that detects high temperatures, triggers an alarm, and sends an SMS alert. It even has a button to silence the alarm, which works using interrupts.

Even though it’s a simple version, I think it’s a good starting point, and I’m happy with how it turned out. With more time, I’d like to improve the design and maybe add more features. Overall, it was a great learning experience.

Bibliography/Resources

ESP8266 with DHT11 – Newbiely guide – A detailed tutorial on how to connect and read temperature from a DHT11 sensor using the ESP8266.

SIM800L GSM Module with Arduino – Last Minute Engineers – A complete guide for using the SIM800L module to send SMS messages via AT commands.

ESP8266 Interrupts – Official Documentation – Official Arduino documentation on using interrupts.

LM2596 datasheet and guide – Technical overview of the LM2596 buck converter module

pm/prj2025/abirlica/macedoniu.pacuraru.txt · Last modified: 2025/05/29 22:20 by macedoniu.pacuraru
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0