Skip to content

Commit 1a24062

Browse files
Update README.md
1 parent 392bb9e commit 1a24062

File tree

1 file changed

+88
-48
lines changed

1 file changed

+88
-48
lines changed

README.md

Lines changed: 88 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -1,83 +1,123 @@
1-
### Project name
1+
### Project Name
22

33
**H3RU Home Control System**
44

5-
### Explanation
5+
### Description
66

7-
This project is a system developed to provide security and automation at home using NVIDIA Jetson Nano and Arduino. The system works integrated with various cameras and a solenoid lock mechanism and provides control of the garage and entrance door. Users can open the door with their RFID card or keypad and specific messages are displayed for each user.
7+
This project is a system developed to provide security and automation at home using NVIDIA Jetson Nano and Arduino. The system integrates various cameras and provides control of the garage and entrance door through a web interface. Users can open the door via the web, receive doorbell notifications, and engage in voice communication.
88

99
### Features
1010

11+
- **Web Control Interface**:
12+
- Control garage and entrance door through a web dashboard.
13+
- Real-time camera feeds accessible via the web.
14+
15+
- **Doorbell Integration**:
16+
- Receive doorbell notifications on the web interface.
17+
- Play custom doorbell sounds when triggered.
18+
19+
- **Voice Communication**:
20+
- Two-way voice communication through the web interface.
21+
1122
- **3 Camera Support**:
12-
- Camera that detects motion and recognizes license plates outside the garage (10 meters away).
13-
- Camera detecting vehicle entry inside the garage.
14-
- Camera at the entrance door that detects ringtones and provides video streaming.
15-
- **RFID and Keypad Login**: Users can log in with their RFID cards or password.
16-
- **Personal Messages**: Personal greeting messages for each user.
17-
- **Control via Internet**: Possibility of control over the internet by connecting to Jetson Nano via Ethernet cable.
18-
- **Displaying Results**: Results from Arduino are displayed in the web interface via Jetson Nano.
23+
- Camera monitoring the garage exterior.
24+
- Camera monitoring the garage interior.
25+
- Camera monitoring the entrance.
1926

20-
### Required Hardware
27+
- **Personalized Messages**: Displays personalized greeting messages for each user on the LCD screen.
28+
29+
### Hardware Requirements
2130

2231
- NVIDIA Jetson Nano
2332
- Arduino (UNO or Mega)
24-
- MFRC522 RFID Reader
25-
- RF transreceiver
26-
- 4x3 Keypad
27-
- RCSwitch library (RF control for garage door)
33+
- 4x3 Keypad (I created a button circuit that includes a common GND connection line that I created myself.)
2834
- 3 USB Cameras
29-
- Ethernet Cable
30-
- Solenoid lock
31-
- 16x2 screen
35+
- Ethernet Cable or Wi-Fi Module
36+
- 16x2 LCD Screen
37+
- Doorbell Button
38+
- Speaker or Audio Output Device
3239

33-
### Required Software
40+
### Software Requirements
3441

35-
-Python 3
36-
- Flask (web framework)
42+
- Python 3
43+
- FastAPI (web framework)
44+
- Uvicorn (ASGI server)
3745
- OpenCV (for image processing)
46+
- PySerial (for serial communication)
47+
- Jinja2 (templating engine)
3848
- Arduino IDE
3949

40-
### Setup
50+
### Setup Instructions
51+
52+
1. **Clone the Repository**
53+
54+
```bash
55+
git clone https://github.com/SentryCoderDev/H3RU-Home_Control_System.git
56+
cd H3RU-Home_Control_System
57+
```
58+
59+
2. **Install Python Dependencies**
60+
61+
Install the required Python packages using the `requirements.txt` file:
62+
63+
```bash
64+
pip install -r requirements.txt
65+
```
66+
67+
3. **Generate a Self-Signed SSL Certificate**
68+
69+
The application uses secure WebSockets and requires SSL certificates. Generate a self-signed SSL certificate:
70+
71+
```bash
72+
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout key.pem -out cert.pem
73+
```
74+
75+
Follow the prompts to enter the required information.
76+
77+
4. **Set Up Arduino**
78+
79+
- Install the Arduino IDE.
80+
- Connect the Arduino to your computer.
81+
- Open the Arduino sketch at `/arduino/arduino_code/arduino_code.ino`.
82+
- Upload the code to your Arduino board.
83+
- Ensure all hardware components are properly connected.
4184

42-
1. **Jetson Nano**:
43-
- Install Jetson Nano and install necessary software.
44-
- Clone project files.
45-
- Run the Flask application.
85+
5. **Run the Application**
4686

47-
2. **Arduino**:
48-
- Install Arduino and install the necessary libraries.
49-
- Upload the Arduino code.
87+
Start the FastAPI application using Uvicorn with SSL:
5088

51-
### Use
89+
```bash
90+
uvicorn app:app --host 0.0.0.0 --port 8001 --ssl-certfile=cert.pem --ssl-keyfile=key.pem
91+
```
5292

53-
1. **Launch Flask Application**:
54-
```bash
55-
python app.py
56-
```
93+
6. **Access the Web Interface**
5794

58-
2. **Access the Web Interface**:
59-
Go to `http://<JetsonNano_IP>:5000` from your browser.
95+
Open your web browser and navigate to:
6096

61-
3. **Watch Footage**:
62-
You can view images from three cameras in the web interface.
97+
```
98+
https://<JetsonNano_IP>:8001/
99+
```
63100

64-
4. **Open the Door**:
65-
Scan your RFID card or enter your password with Keypad.
101+
Replace `<JetsonNano_IP>` with the IP address of your Jetson Nano.
66102

67-
5. **View Result Messages**:
68-
You can see the login process results in the web interface.
103+
**Note**: Since we're using a self-signed certificate, your browser may warn you about an insecure connection. You can proceed by accepting the risk and continuing to the site.
69104

70105
### Directory Structure
71106

72107
```
73-
HomeControlSystem/
108+
H3RU-Home_Control_System/
74109
├── app.py
110+
├── daemon.py
75111
├── templates/
76-
│ └── index.html
77-
├──static/
78-
│ └── styles.css
79-
└── arduino/
80-
└── arduino_code.ino
112+
│ └── index.html
113+
├── static/
114+
│ ├── styles.css
115+
│ ├── sounds/
116+
├── arduino/
117+
│ └── arduino_code/
118+
│ └── arduino_code.ino
119+
├── requirements.txt
120+
└── README.md
81121
```
82122

83123
### Contributing

0 commit comments

Comments
 (0)