🎯 Co zbudujesz?
Stworzysz inteligentny włącznik światła, który reaguje na polecenia głosowe — np. „Włącz światło”, „Wyłącz światło” — i działa dzięki integracji z ESP32 oraz rozpoznawaniem głosu offline lub online.
🧰 Komponenty
- ESP32 (najlepiej model z większą ilością RAM, np. ESP32-WROOM)
- Mikrofon I2S (np. INMP441) lub analogowy mikrofon z wzmacniaczem
- Przekaźnik 5V (moduł)
- Źródło zasilania (powerbank, zasilacz USB)
- Żarówka LED + gniazdo + przewód (testowe obciążenie)
- Biblioteka rozpoznawania mowy (np. TensorFlow Lite Micro, lub offline jak
Voice2Json
) - Arduino IDE
⚡ Schemat połączeń
Mikrofon I2S (INMP441):
- VCC → 3.3V
- GND → GND
- WS → GPIO25
- SCK → GPIO26
- SD → GPIO33
Przekaźnik:
- IN → GPIO5
- VCC → 5V
- GND → GND
💻 Kod podstawowy — przełącznik na głos
Dla uproszczenia użyjemy gotowego silnika rozpoznawania mowy przez Bluetooth (np. aplikacji mobilnej, która przesyła komendy do ESP32), lub biblioteki offline jak speech_recognition (jeśli masz ESP32-S3 z mikrofonem).
Tu wersja oparta na Bluetooth i prostym przetwarzaniu komend:
#include "BluetoothSerial.h"
BluetoothSerial SerialBT;
#define RELAY_PIN 5
void setup() {
Serial.begin(115200);
SerialBT.begin("ESP32_GlosowyWlacznik");
pinMode(RELAY_PIN, OUTPUT);
digitalWrite(RELAY_PIN, LOW);
Serial.println("Czekam na komendy głosowe...");
}
void loop() {
if (SerialBT.available()) {
String cmd = SerialBT.readStringUntil('\n');
cmd.trim();
cmd.toLowerCase();
Serial.println("Komenda: " + cmd);
if (cmd == "włącz światło") {
digitalWrite(RELAY_PIN, HIGH);
Serial.println("Włączono światło.");
} else if (cmd == "wyłącz światło") {
digitalWrite(RELAY_PIN, LOW);
Serial.println("Wyłączono światło.");
} else {
Serial.println("Nieznana komenda.");
}
}
}
📱 Aplikacja mobilna
Możesz użyć np. darmowej aplikacji „Bluetooth Terminal HC-05” lub stworzyć własną aplikację głosową z użyciem Android Studio, która zamieni polecenie głosowe na tekst i wyśle je po Bluetooth.
🤖 Rozszerzenie z AI
- Offline: Wersja z porcupine.ai (rozpoznawanie komend lokalnie, bez Internetu)
- Online: ESP32 przesyła nagranie przez WiFi do API (np. Whisper + Hugging Face)
- Modele TinyML: Trenujesz własny model rozpoznawania konkretnych komend np. „światło”, „ciemno”, „włącz”, „wyłącz”
- Logika AI: System zapamiętuje, kiedy najczęściej włączasz światło i proponuje automatyzację (np. przez Telegram bota)
🧰 Montaż krok po kroku
- Podłącz mikrofon do ESP32 zgodnie ze schematem.
- Podłącz przekaźnik do ESP32 (najlepiej przez transoptorowy moduł).
- Wgraj kod przez Arduino IDE.
- Sparuj ESP32 z telefonem przez Bluetooth.
- Przetestuj przesyłanie komend tekstowych — wpisz „włącz światło”.
- Wprowadź rozpoznawanie głosu — najpierw przez aplikację mobilną, potem offline.
💡 Możliwe ulepszenia
- Tryb nocny (np. rozpoznaje „dobranoc” i gasi światło po 5 sekundach)
- Obsługa kilku komend i kilku świateł
- Komendy alarmowe (np. „pomocy” – wysyła SMS)
- Integracja z Home Assistant (MQTT lub REST API)
✅ Podsumowanie
To świetny przykład wykorzystania ESP32 i rozpoznawania głosu do sterowania czymś praktycznym – jak światło. Można go zastosować w pokoju dziecka, garażu, a nawet przy osobach z ograniczoną sprawnością ruchową.