HC-SR501 на ESP8266: запись в MySQL и отправка email при движении
Датчик движения HC-SR501 с ESP8266 — эффективная охранная система. При срабатывании данные записываются в базу MySQL (дата/время/событие), звучит пищалка и отправляется email-уведомление. Проект сочетает датчик температуры DHT, локальный сервер, базу данных и SMTP. Идеально для охраны дома, дачи или офиса: мгновенные письма о движении, логи событий и мониторинг температуры.
Возможности системы
Срабатывание HC-SR501 → запись в MySQL с timestamp. Звуковой сигнал (пищалка). Автоматическая отправка email через SMTP. Вывод логов и температуры на веб-страницы. Ограничение частоты уведомлений (раз в минуту). Легко добавить Telegram или PUSH.
Компоненты
- ESP8266 NodeMCU
- HC-SR501
- DHT11/DHT22 (опционально)
- Пищалка (активная)
- Локальный сервер (OpenServer/XAMPP)
Подключение
- HC-SR501: VCC → 5V, GND → GND, OUT → D3
- DHT: VCC → 3.3V, GND → GND, Data → D4
- Пищалка: + → D1, – → GND
Настройка сервера
OpenServer: Вкладка Почта → SMTP: smtp.mail.ru, порт 587, TLS, логин/пароль реальной почты.
База данных MySQL
Таблица pir: id (AUTO), datetime (TIMESTAMP), status (TINYINT).
Скетч ESP8266
#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>
#define PIR_PIN D3
#define BUZZER_PIN D1
#define DHT_PIN D4
WiFiClient client;
HTTPClient http;
void setup() {
pinMode(PIR_PIN, INPUT);
pinMode(BUZZER_PIN, OUTPUT);
WiFi.begin("SSID", "PASS");
while (WiFi.status() != WL_CONNECTED) delay(500);
}
void loop() {
if (digitalRead(PIR_PIN) == HIGH) {
for (int i = 0; i < 3; i++) {
tone(BUZZER_PIN, 1000, 500);
delay(1000);
}
http.begin(client, "http://192.168.1.100/insert_pir.php?status=1");
http.GET();
http.end();
delay(60000); // раз в минуту
}
delay(100);
}
отправляет GET-запрос на сервер.
ждёт 60 секунд перед следующим срабатыванием.
PHP insert_pir.php
<?php
include 'connect_db.php';
if (isset($_GET['status'])) {
$status = $_GET['status'];
$sql = "INSERT INTO pir (status) VALUES ('$status')";
mysqli_query($conn, $sql);
mail("your@email.com", "Движение обнаружено!", "Сработал датчик HC-SR501 в " . date("Y-m-d H:i:s"));
}
?>
записывает его в таблицу pir.
отправляет email с уведомлением о срабатывании PIR.
Заключение
Полноценная охранная система: движение → звук → запись в БД → email. Надёжно, быстро, легко расширяемо.
FAQ — HC-SR501 с email и MySQL
Почему пищалка не звучит?
Используйте активную пищалку или модуль с транзистором — ESP не тянет пассивную напрямую.
Письма в спам?
Нормально для новых почт. Добавьте отправителя в контакты или используйте Gmail с app password.
Как ограничить уведомления?
delay(60000) после отправки — раз в минуту.
Добавить температуру в письмо?
Считайте DHT и добавьте в GET-запрос, обработайте в PHP.
Ложные срабатывания?
Настройте потенциометры HC-SR501: чувствительность ниже, время удержания короче.
Работает ли с несколькими датчиками?
Да, разные пины и уникальные GET-параметры (status1=1).
Без звука?
Уберите tone() — только email и БД.