https://github.com/azrielx86/esp32_firebase
Dispositivo IoT basado en un ESP32 utilizando Google Firebase
https://github.com/azrielx86/esp32_firebase
esp32 esp32-arduino firebase firebase-realtime-database firestore iot
Last synced: 2 months ago
JSON representation
Dispositivo IoT basado en un ESP32 utilizando Google Firebase
- Host: GitHub
- URL: https://github.com/azrielx86/esp32_firebase
- Owner: Azrielx86
- License: mit
- Created: 2024-05-11T03:13:47.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-05-18T03:40:25.000Z (about 2 years ago)
- Last Synced: 2026-01-13T03:32:56.437Z (5 months ago)
- Topics: esp32, esp32-arduino, firebase, firebase-realtime-database, firestore, iot
- Language: C++
- Homepage:
- Size: 17.6 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ESP32 Firebase
> Este proyecto está realizado para la práctica de Sistemas de Comunicaciones
>
> Grupo 01, Semestre 2024-1.
>
> El repositorio de la app web se puede encontrar [aquí](https://github.com/Azrielx86/Siscom_Proyecto_2024-1).
## Envío de datos
Los datos se envían a Firestore de la siguiente manera:
```json
{
"fields": {
"date": {
"timestampValue": "2024-05-12T12:01:38Z"
},
"temperature": {
"doubleValue": 34
},
"humidity": {
"doubleValue": 28
}
}
}
```
Estos se almacenan en una colección por cada dispositivo que se agrega.
`/devices//measures/`
## Recepción de datos
Los datos se recuperan de Firebase Realtime Database en un nodo perteneciente al device_id en la ruta:
`/devices//triggets/`
Estos se actualizan mediante una _Firebase function_ explicada más a detalle en el repositorio de la app web.
# Configuración
Este ejemplo funciona en VSCode o CLion con la extensión PlatformIO IDE
Requiere crear un archivo `secrets.h` en `src` para cargar los datos de WiFI y Firebase
```c
#define WIFI_SSID "WiFi Here"
#define WIFI_PWD "WiFi Here"
#define API_KEY "Firebase API Key"
#define DATABASE_URL "Firebase RTDB url"
#define AUTH_EMAIL "Firebase email"
#define AUTH_PASSWORD "Firebase password"
#define DEVICE_PATH "devices/"
```
En Firebase, se debe crear un documento en la colección `devices` con los siguientes datos
```
device_name: "Device name"
location: "Device location"
type: "Device type"
```
## Conexiones en la ESP32
| Pin | Uso | Tipo |
|-----|:----------------------------:|--------|
| 4 | DATA IN - DHT11 | INPUT |
| 21 | SCL Display | OUTPUT |
| 22 | SDA Display | OUTPUT |
| 13 | Botón prueba actuadores | INPUT |
| 14 | Botón prueba sensores | INPUT |
| 25 | Receptor IR (Solo de prueba) | INPUT |
| 26 | Emisor IR | OUTPUT |
[Pinout diagram](https://www.circuitstate.com/pinouts/doit-esp32-devkit-v1-wifi-development-board-pinout-diagram-and-reference/)