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.
- 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
This project includes three comprehensive documentation files:
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
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
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
- NVIDIA Jetson Nano Super
- Camera (CSI or USB)
- MicroSD card (32GB minimum)
- Power supply (5V 4A)
- Monitor, keyboard, mouse (for initial setup)
-
Flash Jetson Nano OS
- Download JetPack from NVIDIA
- Flash to microSD card using Balena Etcher
- Boot and complete initial setup
-
Update System
sudo apt update sudo apt upgrade -y
-
Install Dependencies
sudo apt install -y python3-pip python3-venv sudo apt install -y libopencv-dev python3-opencv
-
Setup Project
mkdir ~/jetson_security cd ~/jetson_security python3 -m venv security_env source security_env/bin/activate pip install opencv-python numpy pillow
-
Copy Your Code
- Copy
security_Jetson_nano_super.pyto~/jetson_security/
- Copy
-
Run the System
python3 security_Jetson_nano_super.py
For detailed setup instructions, see JETSON_NANO_SETUP_GUIDE.md
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()# 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
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 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 β
ββββββββββββββββββββββββββββββββββββββββββββββββββββ
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
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"This project demonstrates:
- 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
- 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
- Computer Vision: Object detection
- Image Processing: Capture and storage
- Model Inference: Running AI models
- Classification: Person vs. car detection
- Scalability: Multi-device support
- Maintainability: Clean code structure
- Extensibility: Easy to add features
- Documentation: Comprehensive guides
| 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) |
sudo systemctl restart nvargus-daemon
nvgstcapture-1.0 # Test camerasudo nvpmodel -m 0 # Max performance mode
sudo jetson_clocks # Max clock speedsfree -h # Check memory
sudo fallocate -l 8G /swapfile # Add swapFor more troubleshooting, see JETSON_NANO_SETUP_GUIDE.md
- Check system status
- Review recent alerts
- Review captured images
- Check disk space
- Review system logs
- Update system packages
- Clean old images
- Backup configuration
For detailed maintenance schedule, see QUICK_REFERENCE.md
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
This project is created for educational purposes as part of an IoT course.
Student: Saeed Angiz
Course: IoT Programming with Python
Instructor: Mr Pilehvar
Project: Jetson Nano Super Security System
- NVIDIA for Jetson Nano platform
- TensorFlow team for AI models
- OpenCV community for computer vision tools
- Python community for excellent libraries
For questions or issues:
- Check FUNCTION_DOCUMENTATION.md for function details
- Check JETSON_NANO_SETUP_GUIDE.md for setup help
- Check QUICK_REFERENCE.md for quick solutions
- Visit NVIDIA Jetson Forums: https://forums.developer.nvidia.com/
| 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 |
- 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! π