Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/jhonatanthiago/esp32_spiffs


https://github.com/jhonatanthiago/esp32_spiffs

Last synced: 28 days ago
JSON representation

Awesome Lists containing this project

README

        

Aqui está um modelo de arquivo `README.md` para o seu projeto, com detalhes bem estruturados e interativos:

---

# **ESP32 SPIFFS LED Control**

Este projeto demonstra como usar o **ESP32** para controlar um LED por meio de um botão, utilizando o sistema de arquivos **SPIFFS** para salvar o estado do LED (ligado/desligado). Além disso, o sistema registra logs de alterações de estado com data e hora usando um servidor NTP.

---

## 📋 **Funcionalidades**
- Alternar o estado do LED (ligado/desligado) pressionando um botão físico.
- Salvar o estado atual do LED na memória do ESP32 usando **SPIFFS**.
- Recuperar o último estado salvo do LED ao reiniciar o ESP32.
- Registrar logs das alterações de estado (data e hora) usando um servidor NTP.

---

## 🛠️ **Hardware Necessário**
- 1x ESP32.
- 1x LED.
- 1x Resistor de 220 Ω.
- 1x Botão (push-button).
- Jumpers e uma protoboard.

---

## 🔧 **Esquema de Ligação**
### **Conexões**
| **Componente** | **Pino do ESP32** |
|-----------------|-------------------|
| LED (+) | D2 (GPIO 2) |
| Resistor (220 Ω)| Entre LED (-) e GND |
| Botão | D12 (GPIO 12) |
| Botão GND | GND |

---

## 🚀 **Como Usar**

### **1. Configurar o Ambiente de Desenvolvimento**
1. Instale o [Arduino IDE](https://www.arduino.cc/en/software) ou [PlatformIO](https://platformio.org/).
2. Certifique-se de que a biblioteca **SPIFFS** está instalada.

### **2. Faça o Upload do Código**
1. Abra o arquivo `spiffs.cpp` no ambiente de desenvolvimento.
2. Conecte o ESP32 ao computador e selecione a porta correta.
3. Compile e envie o código para o ESP32.

### **3. Teste o Funcionamento**
- Pressione o botão para alternar o estado do LED.
- Reinicie o ESP32 e veja como o LED mantém o último estado salvo.

---

## 🕒 **Logs de Data e Hora**
O projeto usa um servidor **NTP** para sincronizar a data e a hora. Aqui está um exemplo de log salvo:
```
2024-11-27 14:35:01 - LED ligado
2024-11-27 14:35:15 - LED desligado
```

## 🛠️ **Funcionalidades Futuras**
- Exibição de logs via servidor web.
- Interface gráfica para controlar o LED remotamente.
- Integração com sensores para automação.

---

## 🖼️ **Demonstração Visual**
Descreva ou desenhe como o projeto funciona:
- **Botão pressionado**: O LED alterna entre ligado/desligado.
- **Reinício do ESP32**: O LED recupera o último estado salvo.