Skip to content

IoT System Management helps connect, monitor, and control multiple devices from one place. It supports real time status tracking, easy setup, and scalable management, making it useful for smart homes, industrial systems, or any IoT project with many devices.

Notifications You must be signed in to change notification settings

SaeedAngiz1/IOT_PROJECT_Saeed_Angiz

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

27 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Jetson Nano Super IoT Security System

πŸ“‹ Project Overview

This is a comprehensive IoT security system designed for the NVIDIA Jetson Nano Super that uses artificial intelligence to detect and capture images of unknown people and vehicles. The system provides automated security monitoring with real-time alerts and evidence collection.

🎯 Key Features

  • AI-Powered Detection: Automatically detects people and vehicles using computer vision
  • Smart Recognition: Maintains a database of known entities and only alerts on unknowns
  • Automatic Image Capture: Takes photos of unknown people and cars with timestamps
  • Multi-Device Support: Manage multiple Jetson Nano devices from a central control panel
  • Comprehensive Logging: Detailed logs of all security events
  • Group Organization: Organize devices by location (front door, garage, etc.)
  • Statistics & Reporting: View detection statistics and generate security reports

πŸ“š Documentation

This project includes three comprehensive documentation files:

1. FUNCTION_DOCUMENTATION.md

Complete description of every function in the system:

  • Device Class functions
  • Sensor Class functions
  • JetsonNano Class functions (security features)
  • ControlPanel Class functions (management)
  • Utility functions
  • Detailed explanations of what each function does

2. JETSON_NANO_SETUP_GUIDE.md

Step-by-step guide to set up your Jetson Nano Super:

  • Hardware requirements
  • Operating system installation
  • System configuration
  • Python environment setup
  • Camera setup and testing
  • AI model installation
  • Security system installation
  • Running as a background service
  • Troubleshooting common issues
  • Maintenance procedures

3. QUICK_REFERENCE.md

Quick reference for daily use:

  • System architecture overview
  • Quick start commands
  • Python usage examples
  • Configuration options
  • Troubleshooting quick fixes
  • Performance tips
  • Maintenance schedule
  • Useful commands reference

πŸš€ Quick Start

Prerequisites

  • NVIDIA Jetson Nano Super
  • Camera (CSI or USB)
  • MicroSD card (32GB minimum)
  • Power supply (5V 4A)
  • Monitor, keyboard, mouse (for initial setup)

Installation Steps

  1. Flash Jetson Nano OS

    • Download JetPack from NVIDIA
    • Flash to microSD card using Balena Etcher
    • Boot and complete initial setup
  2. Update System

    sudo apt update
    sudo apt upgrade -y
  3. Install Dependencies

    sudo apt install -y python3-pip python3-venv
    sudo apt install -y libopencv-dev python3-opencv
  4. Setup Project

    mkdir ~/jetson_security
    cd ~/jetson_security
    python3 -m venv security_env
    source security_env/bin/activate
    pip install opencv-python numpy pillow
  5. Copy Your Code

    • Copy security_Jetson_nano_super.py to ~/jetson_security/
  6. Run the System

    python3 security_Jetson_nano_super.py

For detailed setup instructions, see JETSON_NANO_SETUP_GUIDE.md


πŸ’» Usage Examples

Basic Setup

from security_Jetson_nano_super import *

# Create control panel
cp = ControlPanel()

# Create security group
cp.create_group('security')

# Create Jetson Nano device
jetson = cp.create_jetson_nano('security', 'front_door_camera')

# Add known people
jetson.add_known_person("PERSON_1001", "John Doe")
jetson.add_known_person("PERSON_1002", "Jane Smith")

# Add known cars
jetson.add_known_car("ABC-123", "John Doe")
jetson.add_known_car("XYZ-789", "Jane Smith")

# Turn on the device
jetson.turn_on()

# Run security scan
jetson.detect_and_capture()

# View statistics
jetson.get_statistics()

Multi-Device Setup

# Create multiple locations
cp.create_group('front_door')
cp.create_group('back_door')
cp.create_group('garage')

# Create Jetson Nano for each location
jetson1 = cp.create_jetson_nano('front_door', 'front_camera')
jetson2 = cp.create_jetson_nano('back_door', 'back_camera')
jetson3 = cp.create_jetson_nano('garage', 'garage_camera')

# Setup and activate all devices
for jetson in [jetson1, jetson2, jetson3]:
    cp.setup_known_entities(jetson)
    jetson.turn_on()

# Run scan on all devices
cp.run_security_scan()

# View all alerts
cp.get_security_alerts()

For more examples, see QUICK_REFERENCE.md


πŸ—οΈ System Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                  Control Panel                          β”‚
β”‚         (Central Management System)                     β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                  β”‚
        β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
        β”‚                   β”‚
β”Œβ”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Device Groups β”‚  β”‚  Sensor Groups  β”‚
β”‚  (by location) β”‚  β”‚  (by location)  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
        β”‚
β”Œβ”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚           Jetson Nano Devices                    β”‚
β”‚  β€’ AI Detection System                           β”‚
β”‚  β€’ Camera Interface                              β”‚
β”‚  β€’ Image Capture                                 β”‚
β”‚  β€’ Known Entity Database                         β”‚
β”‚  β€’ Alert System                                  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ“¦ Project Structure

jetson_security/
β”œβ”€β”€ security_Jetson_nano_super.py   # Main security system code
β”œβ”€β”€ config.py                       # Configuration file
β”œβ”€β”€ security_env/                   # Python virtual environment
β”œβ”€β”€ models/                         # AI models
β”‚   β”œβ”€β”€ detect.tflite              # Detection model
β”‚   └── labelmap.txt               # Object labels
β”œβ”€β”€ captured_images/                # Stored security photos
β”‚   β”œβ”€β”€ unknown_people/            # Photos of unknown people
β”‚   └── unknown_cars/              # Photos of unknown cars
└── logs/                          # System logs

πŸ”§ Configuration

Edit config.py to customize:

# Camera Configuration
CAMERA_TYPE = "CSI"              # "CSI" or "USB"
CAMERA_WIDTH = 1920              # Resolution
CAMERA_HEIGHT = 1080
CAMERA_FPS = 30

# Detection Configuration
DETECTION_CONFIDENCE_THRESHOLD = 0.5
SCAN_INTERVAL_SECONDS = 5

# Storage Configuration
IMAGE_STORAGE_PATH = "/path/to/images"
LOG_FILE_PATH = "/path/to/logs"

πŸŽ“ For Teachers/Reviewers

This project demonstrates:

Programming Concepts

  • Object-Oriented Programming: Classes, inheritance, encapsulation
  • Data Structures: Lists, dictionaries, objects
  • File I/O: Reading/writing files, image storage
  • Error Handling: Try-except blocks, validation
  • Modular Design: Separate classes for different functionality

IoT Concepts

  • Edge Computing: AI processing on device
  • Sensor Integration: Camera interfacing
  • Real-time Processing: Continuous monitoring
  • Data Logging: Event tracking and storage
  • Device Management: Multi-device coordination

AI/ML Concepts

  • Computer Vision: Object detection
  • Image Processing: Capture and storage
  • Model Inference: Running AI models
  • Classification: Person vs. car detection

System Design

  • Scalability: Multi-device support
  • Maintainability: Clean code structure
  • Extensibility: Easy to add features
  • Documentation: Comprehensive guides

πŸ“Š Performance Specifications

Metric Value
Detection Speed 1-3 seconds per frame
Image Capture < 1 second
Storage per Image 2-5 MB
Power Consumption 5-10W typical
Supported Cameras CSI, USB (1080p+)
Max Devices Unlimited (limited by network)

πŸ› οΈ Troubleshooting

Camera Not Working

sudo systemctl restart nvargus-daemon
nvgstcapture-1.0  # Test camera

System Running Slow

sudo nvpmodel -m 0      # Max performance mode
sudo jetson_clocks      # Max clock speeds

Out of Memory

free -h                 # Check memory
sudo fallocate -l 8G /swapfile  # Add swap

For more troubleshooting, see JETSON_NANO_SETUP_GUIDE.md


πŸ”„ Maintenance

Daily

  • Check system status
  • Review recent alerts

Weekly

  • Review captured images
  • Check disk space
  • Review system logs

Monthly

  • Update system packages
  • Clean old images
  • Backup configuration

For detailed maintenance schedule, see QUICK_REFERENCE.md


πŸš€ Future Enhancements

Possible improvements:

  • Email/SMS notifications
  • Web dashboard for remote monitoring
  • Facial recognition for known people
  • License plate recognition for cars
  • Mobile app integration
  • Cloud storage backup
  • Motion detection to trigger scanning
  • Night vision support
  • Multiple camera angles
  • Video recording capability

πŸ“ License

This project is created for educational purposes as part of an IoT course.


πŸ‘¨β€πŸ’» Author

Student: Saeed Angiz
Course: IoT Programming with Python
Instructor: Mr Pilehvar
Project: Jetson Nano Super Security System


πŸ™ Acknowledgments

  • NVIDIA for Jetson Nano platform
  • TensorFlow team for AI models
  • OpenCV community for computer vision tools
  • Python community for excellent libraries

πŸ“ž Support

For questions or issues:

  1. Check FUNCTION_DOCUMENTATION.md for function details
  2. Check JETSON_NANO_SETUP_GUIDE.md for setup help
  3. Check QUICK_REFERENCE.md for quick solutions
  4. Visit NVIDIA Jetson Forums: https://forums.developer.nvidia.com/

πŸ“– Documentation Files

File Description Use Case
FUNCTION_DOCUMENTATION.md Complete function descriptions Understanding code functionality
JETSON_NANO_SETUP_GUIDE.md Step-by-step setup instructions Setting up hardware and software
QUICK_REFERENCE.md Quick commands and examples Daily usage and troubleshooting
README.md Project overview (this file) Getting started

βœ… Project Checklist

  • Complete Python code implementation
  • Object-oriented design with multiple classes
  • AI detection functionality
  • Image capture system
  • Logging and statistics
  • Multi-device support
  • Comprehensive function documentation
  • Step-by-step setup guide
  • Quick reference guide
  • Usage examples
  • Troubleshooting section
  • Maintenance procedures

πŸŽ‰ IoT Security System is Ready!

Start with JETSON_NANO_SETUP_GUIDE.md to set up your hardware, then refer to FUNCTION_DOCUMENTATION.md to understand the code, and use QUICK_REFERENCE.md for daily operations.

Happy Securing! πŸ”’

About

IoT System Management helps connect, monitor, and control multiple devices from one place. It supports real time status tracking, easy setup, and scalable management, making it useful for smart homes, industrial systems, or any IoT project with many devices.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  

Languages