Actualización del README

main
parent 337eab2998
commit a00a7ac050

@ -0,0 +1,283 @@
# 🌡️ Raspberry Pi 4 Temperature & Humidity Monitoring System (HTU21D)
---
## 📌 Project Overview
This project implements a real-time temperature and humidity monitoring system using a **Raspberry Pi 4** and an **HTU21D sensor**. The system reads environmental data via I2C, processes it using a C program, and displays the results on a web dashboard using Nginx.
---
## 🧠 System Architecture
```
HTU21D Sensor → I2C → C Program → JSON File → Nginx → Web Browser
```
---
## 🧰 Materials
### 🔧 Hardware
* Raspberry Pi 4
* HTU21D sensor
* Jumper wires (female-to-female)
* MicroSD card with Raspberry Pi OS
* Power supply
### 💻 Software
* Raspberry Pi OS / Debian
* GCC compiler
* i2c-tools
* libi2c-dev
* Nginx
* Git
---
## 🔌 Hardware Connections
### 📷 Pin Reference Images
Include these images in your repository:
* `RaspberryPi4_PinMap.jpeg`
* `TZCBIN8qL-HTU21D-Module-Pinout.png`
---
### 📍 Wiring Table
| HTU21D | Raspberry Pi 4 |
| ------ | -------------- |
| VCC | 3.3V |
| GND | GND |
| SDA | GPIO2 (SDA) |
| SCL | GPIO3 (SCL) |
---
## 🚀 Deployment Guide (From Scratch)
### 📥 1. Clone the Repository
```bash
git clone http://<GITEA_SERVER>/<USER>/<REPOSITORY>.git
# Downloads the project from the server
cd <REPOSITORY>
# Enters the project folder
```
---
### 🧰 2. Install Dependencies
```bash
sudo apt update
# Updates package list
sudo apt install gcc i2c-tools libi2c-dev nginx git
# Installs compiler, I2C tools, web server, and Git
```
---
### ⚙️ 3. Enable I2C
```bash
sudo raspi-config
# Opens Raspberry Pi configuration menu
```
Go to:
```
Interfacing Options → I2C → Enable
```
```bash
sudo reboot
# Restarts system to apply changes
```
---
### 🔍 4. Verify Sensor
```bash
i2cdetect -y 1
# Scans I2C bus for connected devices
```
Expected:
```
0x40
```
---
### 🧑‍💻 5. Compile the Sensor Program
```bash
cd sensors/HTU21D
# Move to sensor source code
gcc main.c htu21d.c -o HTU21D -li2c
# Compiles the program and links I2C library
```
---
### 📂 6. Deploy Web Files
```bash
sudo cp -r ~/basic-ui-dashboard/* /var/www/html/
# Copies project files to Nginx directory
```
```bash
sudo mkdir -p /var/www/html/data
# Creates folder for JSON output
```
---
### 🔐 7. Set Permissions
```bash
sudo chmod +x /var/www/html/sensors/HTU21D/HTU21D
# Allows execution of sensor program
sudo chown -R www-data:www-data /var/www/html
# Gives Nginx access to files
```
---
### ▶️ 8. Run Sensor Loop
```bash
cd /var/www/html
# Go to web directory
while true; do ./sensors/HTU21D/HTU21D > data/HTU21D.json; sleep 5; done
# Continuously updates JSON every 5 seconds
```
---
### 🌐 9. Start Nginx
```bash
sudo systemctl start nginx
# Starts web server
sudo systemctl enable nginx
# Enables auto-start on boot
sudo systemctl status nginx
# Verifies server is running
```
---
### 🌍 10. Get Raspberry Pi IP
```bash
hostname -I
# Displays local IP address
```
Example:
```
192.168.1.100
```
---
### 🖥️ 11. Access from Another Computer
Open a browser and go to:
```
http://192.168.1.100
```
---
## 🔄 Real-Time Updates
JavaScript fetch:
```javascript
fetch('./data/HTU21D.json?nocache=' + Date.now())
```
**What it does:**
* Prevents browser cache
* Forces fresh data request
---
## 🧪 How to Use
1. Power on Raspberry Pi
2. Connect sensor
3. Run sensor loop
4. Open browser
5. Monitor values in real time
---
## ⚠️ Troubleshooting
### ❌ No data update
* Check loop is running
* Verify `nocache` in fetch
---
### ❌ Permission denied
```bash
sudo nano /var/www/html/index.html
# Edit file with admin privileges
```
---
### ❌ Sensor not detected
* Check wiring
* Run `i2cdetect`
---
## 📈 Improvements
* WebSockets (real-time without polling)
* Database storage
* Historical charts
* Remote access via internet
---
## 🎯 Conclusion
This project integrates:
* Embedded systems (sensor + Raspberry Pi)
* C programming
* Linux system configuration
* Web development (Nginx + JS)
It demonstrates a complete pipeline from hardware acquisition to real-time web visualization.
---
Loading…
Cancel
Save