🎯 Cel projektu:
Zbudujesz system diagnostyczny z ESP32, który:
- mierzy napięcie i/lub natężenie prądu,
- wykrywa skoki, spadki lub przeciążenia,
- ostrzega o anomaliach,
- (opcjonalnie) analizuje wzorce zasilania za pomocą AI.
To coś w rodzaju inteligentnego „multimetru”, który sam się uczy i działa 24/7.
🧰 Poziom trudności:
🔧 Średnio zaawansowany
⏱️ Czas wykonania:
2–3 godziny
🛠️ Lista komponentów:
Komponent | Opis | Koszt |
---|---|---|
ESP32 | Mikrokontroler z Wi-Fi | 20–30 zł |
Czujnik prądu ACS712 5A / 20A | Pomiar natężenia | 10–15 zł |
Czujnik napięcia ZMPT101B | Pomiar napięcia 230V (galwanicznie odseparowany) | 15–25 zł |
Ekran OLED (opcjonalnie) | Wyświetlanie pomiarów | 10–15 zł |
microSD (opcjonalnie) | Logowanie | 10 zł |
Zasilacz 5V | Do zasilania ESP32 | 10 zł |
⚠️ Uwaga o bezpieczeństwie:
Czujniki takie jak ZMPT101B są zaprojektowane do pracy z 230V – mimo izolacji, zachowaj ostrożność. Praca przy sieci energetycznej wymaga precyzji i ostrożności.
📷 Schemat połączeń:
- ACS712 → ESP32:
- VCC → 5V
- GND → GND
- OUT → GPIO 36 (analogowy)
- ZMPT101B → ESP32:
- VCC → 5V
- GND → GND
- OUT → GPIO 39 (analogowy)
- OLED (I2C):
- SDA → GPIO 21
- SCL → GPIO 22
📐 Krok 1: Pomiar napięcia i prądu
Odczyt napięcia i prądu (w przybliżeniu):
cppKopiujEdytujint napieciePin = 39;
int pradPin = 36;
void setup() {
Serial.begin(115200);
}
void loop() {
int adcNapiecie = analogRead(napieciePin);
int adcPrad = analogRead(pradPin);
float napiecie = (adcNapiecie * 3.3) / 4095.0 * współczynnik_kalibracyjny;
float prad = (adcPrad - 2048) * 0.050; // dla ACS712 5A
Serial.print("Napiecie: ");
Serial.print(napiecie);
Serial.print(" V | Prad: ");
Serial.print(prad);
Serial.println(" A");
delay(500);
}
Współczynniki kalibracyjne możesz dopasować do pomiarów multimetrem.
🧠 Krok 2: AI – rozpoznawanie awarii lub przeciążeń
- Zbierz dane:
- normalna praca
- włączenie urządzenia
- zwarcie / przeciążenie
- wyłączenie
- Wejdź na Edge Impulse, stwórz klasy:
- „normalne zasilanie”
- „przeciążenie”
- „spadek napięcia”
- Wytrenuj model i załaduj do ESP32:
cppKopiujEdytujif (AI_output == "przeciążenie") {
// wyślij powiadomienie
}
💾 Krok 3: Logowanie i dashboard
- Zapis lokalny:
cppKopiujEdytujFile log = SD_MMC.open("/energia.csv", FILE_APPEND);
log.println(String(napiecie) + "," + String(prad));
log.close();
- Dashboard online:
- Blynk / ThingSpeak / IFTTT
- Możesz też stworzyć wykresy dzienne
📲 Krok 4: Powiadomienia i automatyzacja
- Alert, gdy napięcie spadnie poniżej np. 200V
- Alert przy skoku prądu powyżej np. 4A
- Można też automatycznie odłączyć urządzenie (przekaźnik!)
🛠️ Krok 5: Montaż i testy
- Czujnik prądu najlepiej zamontować na jednym przewodzie zasilającym narzędzie
- ZMPT101B możesz podłączyć równolegle do przedłużacza – zachowaj izolację
- ESP32 w bezpiecznej obudowie
✅ Efekt końcowy:
- ESP32 monitoruje napięcie i natężenie
- AI rozpoznaje anomalia lub przeciążenia
- Możesz dostać powiadomienie i/lub logować dane
- Bezpieczniejsze zasilanie, mniej ryzyka
📘 To projekt szczególnie przydatny w większym warsztacie z wieloma urządzeniami – pozwala zapobiec awariom i zdiagnozować problemy z instalacją.