Czy kiedykolwiek myślałeś o kontrolowaniu elektrycznych/elektronicznych urządzeń domowych po prostu patrząc na nie? Mogłoby się to zdarzyć w filmach, ale wydaje się być niemożliwe w prawdziwym życiu..… No cóż, już nie. Teraz można włączyć lub wyłączyć dowolne urządzenie elektryczne/elektroniczne za pomocą mrugnięcia okiem. Oprócz tworzenia fajnego projektu IoT, można pomóc ludziom nie będącym w stanie do samodzielnego kontrolowania takich urządzeń. Zacznijmy więc nasz projekt od zebrania następujących komponentów.
Kodowanie
Urządzenie musi rozpoznawać urządzenia, które wymagają sterowania za pomocą komend wysyłanych wzrokowo. Dlatego poniższy kod pozwala nam na przechwytywanie filmów w czasie rzeczywistym w celu wykrywania obiektów i włączania lub wyłączania urządzeń.
W projekcie użyto OpenCV do przechwycenia wideo z kamery, a następnie TensorFlow (TF) do wybrania urządzenia domowego, na które patrzymy. Następnie użyjemy biblioteki gpiozero, aby komendy z czujnika mrugnięcia okiem były przetwarzane w celu sterowania urządzeniami.
Tak więc trzeba zainstalować Python i wymagane moduły w Raspberry Pi za pomocą następujących poleceń:
sudo pip3 install python-opencv
sudo pip3 install tensorflow
sudo pip3 install keras
sudo pip3 install gpiozero
Następnie trzeba zduplikować bibliotekę wykrywania obiektów. Potem w folderze testowym utworzyć plik zawierający listę urządzeń i zapisać go pod nazwą "eyeiot.pbtxt".
Aby stworzyć funkcjonalność wykrywania i sterowania obiektami IoT, trzeba skopiować kod wykrywania obiektów do nowego pliku. Upewnić się, że zaimportowano kilka dodatkowych modułów i bibliotek do kodu, takich jak gpiozero do sterowania wejściami i wyjściami pinów.
Następnie zdefiniować numery pinów do sterowania urządzeniami.
Na koniec ustawić w kodzie nazwę pliku tak, aby mógł on wykryć, które urządzenie chcemy kontrolować z podanej listy urządzeń (czy jest to lodówka, telewizor, toster czy jakiekolwiek inne urządzenie). Po wykonaniu tych czynności otrzymujemy wynik, gdzie łańcuchy zawierają listę wykrytych nazw obiektów na filmie.
Program będzie wyszukiwał różne podciągi nazw w łańcuchach znakowych otrzymanych wyników. Te podłańcuchy zawierają nazwę urządzenia, które chcemy kontrolować. Kilka instrukcji warunkowych sprawdzi dostępność tego łańcucha, tzn. sprawdzi obecność urządzenia.
Na przykład, załóżmy, że chcemy obsługiwać telewizor. Kod wykryje jego obecność, gdy użytkownik na niego spojrzy. Za pomocą warunku if zostanie policzony całkowity czas patrzenia na niego. Jeżeli przekroczy on pięć sekund, to telewizor zostanie włączony lub wyłączony.
Połączenie
Najpierw podłącz przekaźnik do numeru pinu podanego w kodzie (do sterowania urządzeniem), a następnie podłącz kamerę do portu kamery Raspberry Pi. Potem zamontuj kamerę Raspberry Pi do okularu zasilanego przez malutki power bank usb.
Testowanie
Uruchom kod i poruszaj oczami tak, aby patrzeć na urządzenia, które zamierzasz kontrolować. Po spojrzeniu na urządzenie przez ponad pięć sekund, automatycznie włączy się ono lub wyłączy.
Ten projekt jest pierwszą wersją. Nowsza wersja z większą ilością fajnych funkcji i bezprzewodowym systemem sterowania jest tutaj.