EN PL

Stacja monitoringu środowiska OT/IoT ESP32

ESP32 OT/IoT Environmental Monitoring Station - Proof-of-Concept

Własny prototyp i wnioski dla OT

Zbudowałem własną stację z dotykowym ekranem do wyświetlania wybranych informacji i sterowania oświetleniem. Domowe testy pokazały mi, dlaczego dostęp do funkcji sterujących warto uwzględniać już podczas projektowania.

Tagi: OT / IoT / Cyberbezpieczeństwo Publikacja: Aktualizacja: 4 min czytania

Cel i zakres projektu

Chciałem sprawdzić, czy potrafię zbudować od podstaw własną stację z informacjami i możliwością sterowania światłem. Wybrałem dane przydatne dla mnie, a ekran dotykowy pozwalał przechodzić między kolejnymi widokami.

Stacja wykorzystuje ESP32 i panel Nextion HMI. Przetestowałem współpracę z moim systemem, przełączanie ekranów oraz włączanie i wyłączanie oświetlenia z panelu. Projekt jest prywatnym prototypem edukacyjnym.

Co ujawniły domowe testy?

Pierwsza wersja nie ograniczała dostępu do panelu sterowania. Podczas domowych testów dzieci zaczęły korzystać z ekranu dotykowego, włączając i wyłączając oświetlenie. Ta sytuacja ujawniła brak ochrony funkcji pozwalających zmieniać stan urządzeń.

Panel sterowania przed dodaniem ochrony hasłem.
Panel sterowania przed dodaniem ochrony hasłem.

W odpowiedzi zabezpieczyłem panel sterowania hasłem. Zabezpieczenie dodałem po zaobserwowaniu problemu; dotyczyło dostępu do sterowania, a nie całego interfejsu. Było to proste usprawnienie prototypu wynikające z obserwacji jego użytkowania.

Ekran hasła dodany w celu ograniczenia dostępu do panelu sterowania.
Ekran hasła dodany w celu ograniczenia dostępu do panelu sterowania.

Ograniczenie funkcji i wydzielenie sieciowe

Pozostawiłem dodatkowe, niepotrzebne w tym projekcie funkcje i porty ESP32 niewłączone. Był to element ograniczania powierzchni ataku. Urządzenie pracuje w osobnej podsieci. To wydzielenie sieciowe; zakres izolacji zależy również od reguł komunikacji między podsieciami.

Dlaczego Security-by-Design jest istotne?

Z tego doświadczenia wyciągnąłem wniosek, że dostęp do informacji i możliwość sterowania warto rozpatrywać oddzielnie już podczas projektowania. W tym znaczeniu Security-by-Design jest dla mnie istotne: pytania o to, kto może korzystać z funkcji i jakie skutki może wywołać jego działanie, powinny pojawić się przed uruchomieniem rozwiązania.

W moim prototypie ochrona panelu była późniejszą korektą. Ta kolejność pokazała mi wartość wcześniejszego uwzględnienia kontroli dostępu, zamiast czekania, aż zwykłe użytkowanie ujawni jej brak.

Projekt skłonił mnie również do refleksji nad zasadą Least Privilege: dostęp do funkcji powinien odpowiadać potrzebom i odpowiedzialności użytkownika. Jest to wniosek dotyczący projektowania uprawnień, a nie deklaracja wdrożenia różnych ról w moim prototypie.

Przełożenie na biznes

W środowisku przemysłowym zakres uprawnień powinien wynikać z roli, kompetencji i odpowiedzialności za proces. Podgląd danych, obsługa urządzenia oraz zmiana konfiguracji oznaczają różne poziomy wpływu na działanie systemu. Interfejs powinien uwzględniać te różnice, a zmiany parametrów podlegać ustalonym zasadom.

Ważny jest również sposób reagowania na odchylenia. Jeżeli wcześniej stabilny proces zaczyna działać nieprawidłowo, sama korekta nastaw może jedynie zamaskować przyczynę. Najpierw trzeba ustalić, co się zmieniło i dlaczego. Zmiana parametrów może być uzasadniona, ale powinna wynikać z diagnozy oraz oceny jej wpływu na proces.

Domowy prototyp pozwolił mi zaobserwować prosty mechanizm: dostęp do sterowania daje możliwość wpływania na działanie systemu. W organizacji trzeba powiązać tę możliwość z odpowiedzialnością i zarządzaniem zmianą.

Wyniki i ograniczenia

Sprawdziłem wyświetlanie wybranych informacji, nawigację dotykową, sterowanie światłem oraz dostęp do panelu sterowania przez ekran z hasłem. Nie wdrażałem różnych poziomów uprawnień. Opis nie przedstawia testów odporności na obejście hasła, dokładności pomiarów ani długotrwałej niezawodności, więc nie potwierdza gotowości do zastosowania przemysłowego.

Podsumowanie

Projekt pozwolił mi połączyć budowę własnego urządzenia z obserwacją sposobu jego użytkowania i wprowadzeniem korekty. Najważniejszy wniosek dotyczy projektowania funkcji sterujących: trzeba określić nie tylko to, co urządzenie potrafi, lecz także kto i na jakich zasadach może wpływać na jego działanie.

Źródła i dokumentacja

Q&A: stacja ESP32 i panel HMI

Czy hasło oznacza różne poziomy uprawnień?

Nie. W tym prototypie hasło chroni panel sterowania. Różne poziomy uprawnień są wnioskiem dotyczącym zastosowań organizacyjnych, a nie funkcją wdrożoną w tym urządzeniu.

Co to jest HMI?

HMI (Human-Machine Interface) to panel operatorski umożliwiający interakcję człowieka z maszyną lub systemem. W środowiskach OT panel HMI wyświetla dane procesowe i przyjmuje dane wejściowe od użytkownika, często za pomocą ekranu dotykowego. W tym projekcie rolę HMI pełni wyświetlacz Nextion 3.5" z rezystancyjnym panelem dotykowym, zapewniając wizualizację danych pogodowych w czasie rzeczywistym oraz nawigację między ekranami za pomocą dotyku.

Czym jest ESP32?

ESP32 to niskokosztowy, energooszczędny mikrokontroler z wbudowanym Wi-Fi i Bluetooth, szeroko stosowany w projektach IoT. Obsługuje wiele protokołów komunikacyjnych i oferuje wystarczającą moc obliczeniową do akwizycji danych z czujników, łączności sieciowej oraz komunikacji szeregowej z urządzeniami zewnętrznymi, takimi jak panele HMI.

Jak wyświetlacz komunikuje się z mikrokontrolerem?

Wyświetlacz Nextion HMI komunikuje się z ESP32 przez interfejs szeregowy UART (Universal Asynchronous Receiver-Transmitter). Połączenie wykorzystuje GPIO16 (RX) i GPIO17 (TX) z prędkością transmisji 115200 baud. Umożliwia to dwukierunkową wymianę danych: ESP32 wysyła odczyty czujników i komendy do wyświetlacza, a wyświetlacz przesyła zdarzenia dotykowe i dane wejściowe użytkownika z powrotem do mikrokontrolera.

Czy projekt był ciekawy?