🎯 Cel projektu:
Zbudujesz inteligentny system, który na podstawie parametrów nagrzewania się grotu lutownicy potrafi ocenić jego stan techniczny. AI będzie analizować zmiany temperatury i czas nagrzewania, aby ostrzec Cię, kiedy grot jest zużyty i należy go wymienić.
🧰 Poziom trudności:
🔧 Średnio zaawansowany
⏱️ Czas wykonania:
2–4 godziny (z testami, kalibracją i trenowaniem AI)
🛠️ Lista komponentów:
Komponent | Opis | Koszt |
---|---|---|
ESP32 | Mikrokontroler z Wi-Fi | 20–30 zł |
Termopara K-type | Pomiar wysokiej temperatury grotu | 10–20 zł |
Moduł MAX6675 | Komunikacja termopary z ESP32 | 10–15 zł |
Dioda LED + buzzer | Alarm w przypadku zużycia | 5 zł |
Ekran OLED (I2C) | Wyświetlanie temperatury i komunikatów | 10–15 zł |
(Opcjonalnie) zasilanie z USB/powerbank | Do mobilnego zasilania | 0–15 zł |
📷 Schemat połączeń:
- Termopara z MAX6675 → ESP32:
- VCC → 3.3V
- GND → GND
- SCK → GPIO 18
- CS → GPIO 5
- SO → GPIO 19
- OLED (I2C) → ESP32:
- SDA → GPIO 21
- SCL → GPIO 22
- VCC/GND odpowiednio
- LED/buzzer → GPIO 25 i GND
🧪 Krok 1: Odczyt temperatury grotu
Kod testowy:
cppKopiujEdytuj#include "max6675.h"
int thermoDO = 19;
int thermoCS = 5;
int thermoCLK = 18;
MAX6675 thermocouple(thermoCLK, thermoCS, thermoDO);
void setup() {
Serial.begin(115200);
}
void loop() {
float temp = thermocouple.readCelsius();
Serial.print("Temperatura: ");
Serial.println(temp);
delay(1000);
}
Obserwuj, jak długo lutownica nagrzewa się do np. 350°C. Im dłużej, tym bardziej zużyty grot.
📊 Krok 2: Zbieranie danych do AI
- Uruchamiaj pomiary od zimnej lutownicy do momentu osiągnięcia stałej temperatury.
- Notuj czas w sekundach do osiągnięcia 100°C, 250°C, 350°C.
- Powtórz test dla:
- nowego grotu
- średnio zużytego
- starego (matowego, z osadem)
- Dane możesz przesłać do Edge Impulse:
- klasa „Nowy”
- klasa „Używany”
- klasa „Zużyty”
🧠 Krok 3: Trening AI w Edge Impulse
- Stwórz projekt w Edge Impulse.
- Wgraj dane z CSV (czas nagrzewania + osiągana temperatura).
- Przeprowadź trening klasyfikacyjny.
- Pobierz model AI (
.tflite
lub biblioteka Arduino). - W kodzie:
cppKopiujEdytujif (AI_output == "Zużyty") {
digitalWrite(25, HIGH); // LED ON
tone(26, 1000); // Buzzer
}
📟 Krok 4: Wyświetlanie informacji na OLED
cppKopiujEdytuj#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
Adafruit_SSD1306 display(128, 64, &Wire, -1);
void setup() {
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.clearDisplay();
}
void loop() {
float temp = thermocouple.readCelsius();
display.clearDisplay();
display.setTextSize(2);
display.setCursor(0, 10);
display.print("T:");
display.print(temp);
display.print("C");
display.setTextSize(1);
display.setCursor(0, 40);
display.print("Stan: ");
display.print(AI_output); // np. "Używany"
display.display();
delay(1000);
}
🚨 Krok 5: Alarm i bezpieczeństwo
- Gdy AI wykryje zużycie:
- zapala się dioda LED
- uruchamia się sygnał dźwiękowy (krótkie „bip”)
- na OLED pojawia się komunikat: „Wymień grot!”
📲 Krok 6: Powiadomienie przez Internet (opcjonalnie)
- Skorzystaj z IFTTT – zdarzenie
grot_wymiana
. - ESP32 wysyła żądanie HTTP:
cppKopiujEdytujhttp.begin("https://maker.ifttt.com/trigger/grot_wymiana/with/key/TWÓJ_KLUCZ");
http.GET();
🧪 Testy i kalibracja:
- Powtórz testy z innymi grotami.
- Weryfikuj, czy AI nie daje fałszywych pozytywów.
- AI możesz później douczyć o jeszcze większej liczbie stanów.
✅ Efekt końcowy:
- Bezpieczne lutowanie – system ostrzeże przed przeciążeniem grotu.
- Oszczędność – nie wymieniasz końcówki zbyt wcześnie.
- AI działa w tle, oceniając stan grotu na podstawie jego „zachowania”.
- Możliwość powiadomień przez internet i logów.
📘 To świetne narzędzie do warsztatu, w którym lutowanie to codzienność. Dzięki AI masz pewność, że pracujesz zawsze z odpowiednio przygotowanym sprzętem.