ESP32 może przekazać informację o uruchomieniu urządzenia na telefon, korzystając z Wi-Fi i bramki SMS. W projekcie IMZ takie zadanie pełnił sygnalizator zasilany przez regulowaną przetwornicę DC/DC. Zachowane materiały pokazują przygotowanie Arduino IDE, konfigurację projektu i montaż zasilania.
Ten artykuł porządkuje te etapy i opisuje integrację z SMSAPI. W materiałach nie ma kompletnego pliku źródłowego programu, do którego odsyła instrukcja. Dlatego nie udostępniamy odtworzonego ze zrzutów firmware'u jako sprawdzonej wersji autora. Można natomiast przygotować stanowisko i poprawnie zaplanować własny moduł powiadomień.
Co rzeczywiście wykrywa powiadomienie po starcie
Wysłanie komunikatu z funkcji setup() informuje, że program się uruchomił. Przyczyną mógł być powrót zasilania, naciśnięcie resetu, aktualizacja oprogramowania lub inny restart. Sam komunikat nie dowodzi awarii monitorowanej maszyny.
Jeżeli ESP32 jest zasilane z tego samego źródła, którego zanik ma zgłaszać, po wyłączeniu zasilania nie będzie mogło wysłać wiadomości. Do zgłoszenia samego zaniku potrzebne byłyby niezależne podtrzymanie, odpowiedni tor detekcji oraz działający router i dostęp do internetu. To inny zakres projektu niż powiadomienie wysyłane po ponownym uruchomieniu.
Warto od razu nazwać zdarzenie zgodnie z tym, co urządzenie wie, na przykład „Sterownik uruchomiony ponownie”. Treść „Awaria maszyny” wymaga osobnego sygnału i określenia, co oznacza awarię. Reset przyciskiem może sprawdzić ścieżkę rozruchu programu, ale nie odtwarza wszystkich skutków zaniku napięcia.
Przygotowanie zasilania

Zdjęcie dokumentuje stanowisko autora. Pokazuje płytkę deweloperską ESP32 połączoną z przetwornicą obniżającą napięcie. Wyświetlacz modułu ułatwia regulację, ale przed podłączeniem elektroniki sprawdź napięcie i polaryzację osobnym miernikiem.
- Pozostaw ESP32 odłączone od wyjścia przetwornicy.
- Podłącz zgodne źródło napięcia do jej wejścia
IN+iIN−. - Wybierz pomiar wyjścia, jeżeli moduł ma przełączany wyświetlacz, i ustaw napięcie dopuszczone dla wejścia zasilania konkretnej płytki ESP32.
- Zweryfikuj wynik miernikiem. Następnie odłącz źródło i dopiero wtedy wykonaj połączenia z płytką.
- Po uruchomieniu sprawdź, czy napięcie pozostaje stabilne podczas pracy Wi-Fi.
W projekcie wykorzystywano wejście VIN płytki deweloperskiej. Nie jest ono tym samym co 3V3 i nie wszystkie płytki mają identyczny tor zasilania. Nie podawaj napięcia z przetwornicy na GPIO. Nie łącz równocześnie USB i zasilania zewnętrznego bez sprawdzenia separacji źródeł na danej płytce.
W roboczej instrukcji proponowano wyginanie pinów, aby ułatwić połączenie. Do powtarzalnego montażu lepiej dobrać pasujące złącze lub adapter. Luźne przewody i możliwość zwarcia podczas przesuwania układu potrafią same powodować restarty, które program później zgłosi jako kolejne uruchomienia.
Środowisko i konfiguracja projektu
Zainstaluj Arduino IDE i pakiet esp32 by Espressif Systems. Wybierz dokładny model płytki oraz port, który pojawił się po jej podłączeniu. Numer portu, np. COM albo /dev/ttyUSB…, zależy od komputera. Nie trzeba szukać konkretnego numeru widocznego w starej instrukcji.
Aktualny adres stabilnego indeksu płytek oraz procedurę instalacji publikuje Espressif. Po wgraniu programu ustaw monitor szeregowy na prędkość zgodną ze szkicem; w materiale projektu użyto 115200 bit/s.
Konfigurację rozdziel na parametry sieci, dane usługi i opis urządzenia:
| Grupa | Co przygotować |
|---|---|
| Wi-Fi | Nazwę sieci i hasło |
| Dostęp do usługi | Własny token API przechowywany prywatnie |
| Odbiorca | Własny, zweryfikowany numer telefonu |
| Treść | Czytelną nazwę urządzenia i jednoznaczny typ zdarzenia |
| Zachowanie | Limit ponowień, odstęp i regułę zapobiegania duplikatom |
Nie umieszczaj tych danych w publicznych zrzutach ekranu. Log diagnostyczny powinien pokazywać etap i wynik operacji, a nie token, pełny numer odbiorcy ani hasło sieci.
Żądanie do SMSAPI
Dla konta SMSAPI.pl dokumentacja podaje endpoint https://api.smsapi.pl/sms.do i autoryzację nagłówkiem Bearer. Pierwszą próbę przygotuj z test=1: API sprawdza żądanie bez wysyłania wiadomości. Pole from, jeśli jest używane, musi odpowiadać konfiguracji konta. Schemat parametrów wygląda następująco:
POST https://api.smsapi.pl/sms.do
Authorization: Bearer TWOJ_TOKEN
Content-Type: application/x-www-form-urlencoded
to=NUMER_ODBIORCY
message=TRESC_ZAKODOWANA_JAKO_FORMULARZ
format=json
test=1
To schemat, nie gotowe żądanie do wykonania. Pola formularza muszą być połączone i zakodowane przez klienta HTTP, w szczególności spacje, polskie znaki i znaki specjalne. Aktualne parametry, odpowiedzi, kody błędów i statusy doręczenia opisuje dokumentacja SMSAPI.
Połączenie HTTPS na ESP32 powinno weryfikować certyfikat serwera. Przygotuj zaufany certyfikat CA lub odpowiednią paczkę certyfikatów i prawidłowy czas urządzenia. Nie rozwiązuj błędów TLS przez wyłączenie weryfikacji. Sposób konfiguracji klienta opisuje Espressif — NetworkClientSecure.
Jedno zdarzenie, kontrolowana liczba prób
Nie umieszczaj wysyłki bezwarunkowo w loop(). Dla powiadomienia rozruchowego program powinien przechodzić przez osobne etapy: start, połączenie z siecią, przygotowanie bezpiecznego połączenia, wysłanie zdarzenia i odnotowanie wyniku. Każdy etap potrzebuje limitu czasu oraz obsługi błędu.
Zerwane połączenie po wysłaniu żądania nie oznacza automatycznie, że serwer go nie przyjął. Bez kontroli duplikatów ponowienie może skutkować kolejną wiadomością. Zaprojektuj identyfikator zdarzenia i sprawdzanie wyniku, a do obsługi ponowień wykorzystaj udokumentowane mechanizmy API. Kolejne próby powinny być ograniczone i coraz rzadsze; trwały błąd konfiguracji nie poprawi się od częstszego odpytywania.
Rozdziel trzy informacje: udało się połączyć z serwerem, API przyjęło wiadomość oraz SMS został doręczony. Nie opisuj samego dodatniego kodu HTTP jako potwierdzenia dostarczenia SMS-a do telefonu. Wynik trzeba zinterpretować według formatu usługi, a doręczenie sprawdzić przez dostępny raport.
Kolejność prób
Najpierw sprawdź stabilność zasilania i log rozruchu bez wywoływania usługi. Następnie uruchom połączenie Wi-Fi oraz synchronizację czasu. Kolejny etap to test API bez wysyłki. Dopiero po poprawnej interpretacji odpowiedzi przeprowadź pojedynczy, świadomy test wysyłki na własny telefon.
Osobno sprawdź brak sieci, błędny token, niedostępność serwera i ponowny reset urządzenia. Zapisz, ile prób wykonał program i czy ponowne uruchomienie nie stworzyło niekontrolowanej serii powiadomień. Powrót do pracy po błędzie powinien być częścią programu, a nie wymagać przypadkowego naciskania resetu.
Nie wykonano testów konta SMSAPI, wysyłki SMS ani pomiarów sprzętu na potrzeby tej publikacji. Jest to poradnik przygotowania i integracji projektu DIY. Pełny program autora oraz wyniki prób można dołączyć po ich odzyskaniu i weryfikacji; przedstawiony układ nie jest zweryfikowanym systemem alarmowym.




