<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Sanjay Poptani</title>
    <description>The latest articles on Forem by Sanjay Poptani (@sanjay_poptani_74e0dcc023).</description>
    <link>https://forem.com/sanjay_poptani_74e0dcc023</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3652798%2Fa9ad3cc2-e520-4bf9-9e8e-c001b3b8d7a1.jpg</url>
      <title>Forem: Sanjay Poptani</title>
      <link>https://forem.com/sanjay_poptani_74e0dcc023</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/sanjay_poptani_74e0dcc023"/>
    <language>en</language>
    <item>
      <title>Sentinel Dual-Core</title>
      <dc:creator>Sanjay Poptani</dc:creator>
      <pubDate>Tue, 09 Dec 2025 01:28:19 +0000</pubDate>
      <link>https://forem.com/sanjay_poptani_74e0dcc023/sentinel-dual-core-32h2</link>
      <guid>https://forem.com/sanjay_poptani_74e0dcc023/sentinel-dual-core-32h2</guid>
      <description>&lt;p&gt;A Dual-Board Smart Security + Camera System with PIR, Thermal Imaging, ToF, Web UI &amp;amp; FreeRTOS&lt;br&gt;
Home security systems are getting smarter every year — but building one yourself teaches you more than any commercial device ever could.&lt;br&gt;
In this post, I’m excited to share a project I built using STM32 + ESP32 that acts as a dual-board burglar alarm system capable of detecting motion, confirming intruders via thermal imaging, capturing photos, logging alerts, and triggering a web-based alarm dashboard.&lt;br&gt;
This is not just a buzzer-when-someone-walks-in system — it uses multiple sensors + confirmation logic so that every alarm is meaningful, not just a false trigger.&lt;br&gt;
&lt;strong&gt;System Summary&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;STM32 handles motion detection using a PIR sensor&lt;/li&gt;
&lt;li&gt;ESP32 receives motion events → confirms using AMG8833 thermal camera&lt;/li&gt;
&lt;li&gt;VL53L1X monitors distance to detect tampering&lt;/li&gt;
&lt;li&gt;ESP32-CAM module captures images &amp;amp; stores them&lt;/li&gt;
&lt;li&gt;Real-time web dashboard shows alarm status + last captured image&lt;/li&gt;
&lt;li&gt;OLED display shows ARM/DISARM mode&lt;/li&gt;
&lt;li&gt;Buzzer alerts for intrusion/tamper events&lt;/li&gt;
&lt;li&gt;FreeRTOS for smooth multitasking &amp;amp; event handling&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Architecture Overview&lt;/strong&gt;&lt;br&gt;
PIR (STM32) → Digital Pulse → ESP32&lt;br&gt;
        ↓&lt;br&gt;
AMG8833 Thermal Camera confirms intrusion&lt;br&gt;
        ↓&lt;br&gt;
Camera Capture + Buzzer Alert + Web Log Entry&lt;br&gt;
        ↓&lt;br&gt;
VL53L1X monitors distance to detect tampering&lt;br&gt;
        ↓&lt;br&gt;
OLED displays system status in real-time&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Features&lt;/strong&gt;&lt;br&gt;
Feature Description&lt;br&gt;
STM32 PIR Motion Detection  Sends HIGH pulse → PB4 to ESP32 GPIO&lt;br&gt;
Thermal Intrusion Confirmation  AMG8833 ensures valid intruder heat signature&lt;br&gt;
Tamper Detection    VL53L1X ToF sensor monitors distance changes&lt;br&gt;
Camera Snapshots    Saved to SPIFFS on intrusion/tamper&lt;br&gt;
Buzzer Alerts   Different patterns for each event&lt;br&gt;
OLED Display    ARMED / DISARMED system status&lt;br&gt;
Web Interface   Alerts, logs, photos, status&lt;br&gt;
FreeRTOS Multitasking   Stable, non-blocking sensor + camera operation&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hardware Required&lt;/strong&gt;&lt;br&gt;
STM32F4 board (PIR Motion → PA8, Output → PB4)&lt;br&gt;
ESP32 Development Board&lt;br&gt;
AMG8833 Thermal IR Camera&lt;br&gt;
VL53L1X Time of Flight Sensor&lt;br&gt;
OV3660 / ESP32-CAM&lt;br&gt;
SSD1306 OLED Display&lt;br&gt;
Buzzer + Breadboard + Wires + Power Supply&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pin Configuration&lt;/strong&gt;&lt;br&gt;
Board   Component   Pin&lt;br&gt;
STM32   PIR Input   PA8&lt;br&gt;
STM32   Motion Signal Output    PB4 → ESP32 GPIO 13&lt;br&gt;
ESP32   PIR Input from STM32    GPIO 13&lt;br&gt;
ESP32   Buzzer  GPIO 12&lt;br&gt;
ESP32   AMG8833 SDA / SCL   14 / 15&lt;br&gt;
ESP32   VL53L1X Shared I2C&lt;br&gt;
ESP32   OLED    Shared I2C&lt;br&gt;
ESP32-CAM   Camera  OV3660 Mapping (see code)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Setup Instructions&lt;/strong&gt;&lt;br&gt;
Clone the repo:&lt;br&gt;
git clone &lt;a href="https://github.com/yourusername/Burglar-Alarm-System.git" rel="noopener noreferrer"&gt;https://github.com/yourusername/Burglar-Alarm-System.git&lt;/a&gt;&lt;br&gt;
cd Burglar-Alarm-System/Final_System_Prototype/RTOS_Buglar_Alarm_System&lt;br&gt;
open RTOS_Buglar_Alarm_System.ino in Arduino IDE → Compile&lt;br&gt;
For STM32 code:&lt;br&gt;
cd ..&lt;br&gt;
open communication directory in STM32CubeIDE → Compile&lt;br&gt;
Flash .bin file to STM32 board&lt;br&gt;
Connect STM32 PB4 → ESP32 GPIO13&lt;br&gt;
Power both boards &amp;amp; open ESP32 Serial Monitor&lt;br&gt;
Access the web dashboard using ESP32 IP address&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;System Workflow&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;PIR detects motion ⟶ STM32 sends HIGH pulse (PB4)&lt;/li&gt;
&lt;li&gt;ESP32 reads pulse ⟶ Thermal camera validates intruder&lt;/li&gt;
&lt;li&gt;If confirmed:
  → Camera capture
  → Log event + photo to web dashboard
  → Buzzer alarm triggered&lt;/li&gt;
&lt;li&gt;VL53L1X monitors for device tampering&lt;/li&gt;
&lt;li&gt;OLED always displays ARMED / DISARMED state&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;FreeRTOS Task Breakdown (ESP32)&lt;/strong&gt;&lt;br&gt;
Task    Function&lt;br&gt;
Task_PIR_AMG    Reads STM32 PIR → validates with AMG8833&lt;br&gt;
Task_TOF    Detects tampering via VL53L1X&lt;br&gt;
Task_Camera Handles image capture &amp;amp; storage&lt;br&gt;
Task_Buzzer Alarm patterns (intrusion/tamper)&lt;br&gt;
Task_OLED   Real-time screen updates&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Important Notes&lt;/strong&gt;&lt;br&gt;
STM32 PB4 → ESP32 GPIO13 must be 3.3V compatible&lt;br&gt;
ESP32 checks PB4 every 100ms&lt;br&gt;
NTP time sync gives accurate event timestamps&lt;br&gt;
Reduce false positives using AMG thermal validation&lt;/p&gt;

</description>
      <category>security</category>
      <category>stm</category>
      <category>esp32</category>
      <category>iot</category>
    </item>
  </channel>
</rss>
