Actualización del esquema de conexiones y el README

main
parent 8c4293070f
commit b291b223fc

@ -10,94 +10,46 @@ This project implements a real-time temperature and humidity monitoring system u
## 🧠 System Architecture ## 🧠 System Architecture
The system is designed using a **layered architecture**, where each component has a specific responsibility. This separation improves maintainability and clarity. The system is structured as a simple data pipeline that connects the sensor, processing logic, and web interface. Data flows continuously from the physical environment to the user in a clear and modular way.
--- ---
### 🔹 1. Hardware Layer (Sensor) ### 🔹 Hardware and Communication Layer
The **HTU21D sensor** measures temperature and humidity and communicates using the **I2C protocol**. The HTU21D sensor measures temperature and humidity and communicates with the Raspberry Pi using the I2C protocol. This allows the Raspberry Pi to request and receive raw data from the sensor.
* The Raspberry Pi acts as the **master**
* The sensor acts as the **slave**
* Data is transmitted over SDA (data) and SCL (clock)
---
### 🔹 2. Data Acquisition Layer (C Program)
A program written in C interacts directly with the I2C interface:
* Opens the I2C device (`/dev/i2c-1`)
* Sends commands to the sensor
* Reads raw data
* Converts it into human-readable values (°C and %)
👉 Output is formatted as a JSON file:
```json
{ "temperature": 23.9, "humidity": 57.4 }
```
--- ---
### 🔹 3. Data Persistence Layer (JSON File) ### 🔹 Data Processing Layer
The JSON file acts as an **intermediate data layer**:
* Stores the latest sensor reading A C program interacts with the I2C interface to read the sensor data. It converts the raw binary values into human-readable units such as degrees Celsius and percentage humidity, and formats the result as JSON.
* Decouples backend (C) from frontend (JavaScript)
* Enables simple data exchange without a database
--- ---
### 🔹 4. Web Server Layer (Nginx) ### 🔹 Data Storage Layer
Nginx serves static files:
* HTML (interface)
* JavaScript (logic)
* JSON (sensor data)
👉 It acts as the **bridge between the system and the users browser** The JSON file stores the latest sensor readings. It acts as an intermediate layer, separating the data acquisition process from the web interface.
--- ---
### 🔹 5. Presentation Layer (Frontend) ### 🔹 Web Server Layer
The browser executes JavaScript: Nginx serves the JSON file and the web page over HTTP. It allows other devices on the network to access the system through a browser.
* Uses `fetch()` to request the JSON file
* Updates the DOM dynamically
* Displays values in real time
--- ---
### 🔄 Data Flow Summary ### 🔹 Presentation Layer
```text The web page uses JavaScript to periodically request the JSON file and update the displayed values dynamically, enabling near real-time visualization.
Sensor → I2C → C Program → JSON → Nginx → Browser → User Interface
```
--- ---
### 🧠 Key Design Decisions ### 🔄 Overall Flow
* **Use of JSON:** lightweight and easy to parse Data is captured by the sensor, processed by the C program, stored as JSON, served by Nginx, and displayed in the browser. This structure keeps the system simple, modular, and easy to maintain.
* **Polling (setInterval):** simple real-time updates
* **Separation of layers:** avoids tight coupling between components
--- ---
### ⚙️ Why This Architecture Works
* Modular → each part can be modified independently
* Scalable → can add database or APIs later
* Simple → ideal for embedded + web integration
---
---
## 🧰 Materials ## 🧰 Materials
@ -126,8 +78,7 @@ Sensor → I2C → C Program → JSON → Nginx → Browser → User Interface
Include these images in your repository: Include these images in your repository:
![Esquema de conexiones para la Raspberry Pi 4](RaspberryPi4_PinMap.jpg) ![Esquema de conexiones para la Raspberry Pi 4 y Sensor HTU21D](RaspberryPi4_Sensor_PinMap.jpg)
![Distribución de pines del sensor HTU21D](TZCBIN8qL-HTU21D-Module-Pinout.png)
--- ---
@ -144,26 +95,26 @@ Include these images in your repository:
## 🚀 Deployment Guide (From Scratch) ## 🚀 Deployment Guide (From Scratch)
### 📥 1. Clone the Repository ### 🧰 1. Install Dependencies
```bash ```bash
git clone http://<GITEA_SERVER>/<USER>/<REPOSITORY>.git sudo apt update
# Downloads the project from the server # Updates package list
cd <REPOSITORY> sudo apt install gcc i2c-tools libi2c-dev nginx git
# Enters the project folder # Installs compiler, I2C tools, web server, and Git
``` ```
--- ---
### 🧰 2. Install Dependencies ### 📥 2. Clone the Repository
```bash ```bash
sudo apt update git clone https://gitea.itmorelia.com/Verano-Delfin-2026/Temperature-Humidity-Sensor.git
# Updates package list # Downloads the project from the server
sudo apt install gcc i2c-tools libi2c-dev nginx git cd Temperature-Humidity-Sensor
# Installs compiler, I2C tools, web server, and Git # Enters the project folder
``` ```
--- ---

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 196 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Loading…
Cancel
Save