Wyszukiwanie w witrynie

4 sposoby, w jakie Python przekształcił mój telefon z Androidem w ostatecznego towarzysza homelabu


Homelaby są fajnym i wartościowym hobby dla wielu z nas, ale nie zawsze musisz inwestować setki czy tysiące dolarów w swój zestaw. Staram się myśleć o tym bardziej jak o piaskownicy, w której tworzę rzeczy, uczę się i eksperymentuję ze sprzętem i oprogramowaniem.

Czasami możesz eksperymentować, tworzyć i uczyć się równie dobrze z użyciem smartfona, którego używasz codziennie (lub dodatkowego urządzenia z Androidem, które masz pod ręką). Jednym z moich głównych celów na ten rok (2026) było nauczenie się nowego języka programowania. Żadnego kodowania w vibe dla mnie, dziękuję.

Chociaż dobrze znam HTML5 i CSS, nigdy tak naprawdę nie zagłębiałem się w ekscytujący świat Pythona. Zatem zacząłem uczyć się tego języka, korzystając z mieszanki samouczków W3 Schools, kilku zakurzonych starych książek oraz nauki indywidualnej z przyjacielem, który dobrze zna ten język. Dzięki temu, czego się jak dotąd nauczyłem, w połączeniu z nowo nabytymi umiejętnościami w Termux, udało mi się stworzyć sprytną małą wersję mojego domowego laboratorium w ruchu, korzystając z kilku bardzo prostych, lecz użytecznych skryptów w Pythonie.

Oto kilka projektów, nad którymi ostatnio pracowałem, aby zamienić mój Samsung Z Fold 5 w mały plac zabaw Pythona.

Stworzyłem lokalny serwer sieciowy

Najlepszy sposób na bezprzewodowe przesyłanie plików

Jeśli są dwie rzeczy, które uwielbiam, to jest to samo-hostowanie i uporządkowane zarządzanie kablami. Dzięki lokalnie hostowanemu serwerowi WWW mam oba. Robię nadmierną ilość zdjęć i od czasu do czasu nagrywam wideo telefonem. Przeniesienie ich na komputer do przetwarzania, edycji, tworzenia kopii zapasowej i przechowywania zwykle wymagało przejścia przez (co prawda bardzo łagodną) niedogodność podłączenia kabla USB-C i udzielenia mu pozwolenia na transfer plików przez USB.

Albo to, albo mogę udostępnić to przez e-mail, wgrać na Google Drive, umieścić w Dropboxie albo użyć WeTransfer. Wszystkie te opcje są solidne i tak naprawdę nie ma tutaj żadnego problemu, który wymagałby rozwiązania. Po prostu chciałem znaleźć pretekst, żeby skonfigurować lokalny serwer WWW za pomocą Pythona.

Jak ustawiłem serwer używając http.server

To tak proste, jak wybranie portu i wykonanie jednego polecenia

Konfiguracja mojego serwera była bardzo łatwa. Musiałem znaleźć adres IP mojego telefonu, który znajdował się w ustawieniach. Ale możesz też użyć tego polecenia w Termux, aby go znaleźć:

Ponieważ pracuję na moim Samsungu, mam dedykowany folder w pamięci na moje eksperymenty.

  1. W Termux użyłem python -m http.server 9090, aby uruchomić serwer. Wybrałem port 9090.
  2. Po tym, skierowałem moją przeglądarkę do nowego okna i wpisałem: http://, [adres IP mojego telefonu]:9090.
  3. To doprowadziło mnie do strony zawierającej wszystkie moje foldery.
  4. Przez chwilę przeglądałem, pobrałem niektóre z większych plików, które zapisałem przez lata, i rozłączyłem się.

Python ma wbudowany moduł, który implementuje serwer TCP, więc kiedy go uruchomisz, będzie nasłuchiwał żądań na określonych portach. W przyszłości mogę zbudować dedykowany serwer używając Pythona i korzystać z mojego lokalnego serwera do szybkiego i łatwego przesyłania plików. Często go używam i będę to robić w dającej się przewidzieć przyszłości.

Zautomatyzowałem organizację muzyki

W zasadzie stworzyłem cyfrowego opiekuna dla moich plików muzycznych

Kolejnym projektem w Pythonie, który wypróbowałem, było stworzenie prostego skryptu, który pomoże mi uporządkować wszystkie koncerty na żywo, które ciągle pobieram z Internet Archive. Na początek potrzebowałem modułu OS i modułu Shutil. Są to standardowe biblioteki do interakcji z systemem operacyjnym i operacji na plikach, więc najprawdopodobniej są to pierwsze moduły, które większość osób od razu dodaje do Pythona.

W Termux stworzyłem plik o nazwie 'organizer.py' i zabrałem się do pracy. W samym skrypcie wymieniłem polecenia do importowania OS i Shutil, po czym określiłem moją ścieżkę, zdefiniowałem lokalizację źródłową i docelową. To po prostu ciąg znaków, który mówi Shutil, aby sprawdził koniec nazwy pliku, a jeśli kończy się na .mp3, narzędzie automatycznie przeniesie go do mojego folderu 'tunes'.

Na końcu użyłem shutil.move(source_path, target_path), aby przenieść wszystko z mojego folderu pobranych plików do mojego nowo utworzonego folderu z muzyką. Skrypt działa bez zarzutu. Ponieważ mam większą kontrolę nad tym, co się tutaj dzieje, to tak, jakbym miał osobistego opiekuna zarządzającego moimi plikami muzycznymi.

Sprawdzenia gniazdek

Prosty skrypt pozwala mi zobaczyć, co robią moje lokalne gniazda

Przez większą część tego projektu postanowiłem utrzymać zakres dość mały i skupić się na praktycznych rzeczach. Dlatego skrypt, który sprawdza gniazdko, miał całkiem sens. Teraz, nie będę wchodził w szczegóły dotyczące gniazdek i ich działania, ponieważ Python stworzył bardzo dobrą dokumentację na ten temat. Czasami po prostu trzeba to zrobić prosto.

Chciałem mieć szybki sposób na sprawdzenie, czy któreś z moich portów sieciowych są otwarte, konkretnie porty dla moich serwerów FreshRSS i Jellyfin. Więc użyłem modułu socket Pythona z connect_ex(), aby sprawdzić, czy porty są otwarte.

Okazało się, że port dla mojego kanału RSS i serwera wciąż był zamknięty, więc nie nasłuchiwały ruchu. Co jest dokładnie w taki sposób, jak lubię, aby moje samodzielnie hostowane rzeczy były dla celów bezpieczeństwa.

Domyślnie http.server w Pythonie jest tylko do odczytu, więc będziesz musiał użyć innych narzędzi (na przykład Flask). Jeśli chcesz uzyskać dostęp z innych urządzeń, użyj python -m http.server --bind 0.0.0.0.

Proste monitorowanie systemu

Śledzenie procesów jest łatwiejsze






Do tego szybkiego, małego eksperymentu użyłem Termux API, które miałem już zainstalowane i z którym eksperymentowałem, aby sprawdzić różne funkcje telefonu z poziomu wiersza poleceń. Podobał mi się pomysł, aby skrypt automatycznie powiadamiał mnie o stanie baterii, więc przygotowałem jeden, który używa polecenia termux-battery-status jako procesu podrzędnego w Pythonie. Korzystam z ustawienia Adaptive Battery i lubię dokładnie monitorować moje ładowanie, rozładowywanie i użytkowanie.

W moim pliku skryptu określiłem dokładnie, w jaki sposób chciałem, aby dane były wyświetlane za pomocą polecenia print() dla każdego parametru, które były dość podstawowe:

  • Poziom baterii
  • Status
  • Temperatura

Po uruchomieniu skryptu za pomocą python status.py, otrzymałem bardzo szybką informację o baterii. Całkiem fajne. Lubię ten skrypt, ponieważ mogę sprawdzić istotne informacje bez potrzeby otwierania osobnej aplikacji. Planuję wkrótce ustawić podobne skrypty dla innych diagnostyk.


Android czasami przypomina strzeżoną twierdzę, ale Python i Termux sprawiają, że jest bardziej dostępny

Za pierwszym razem, gdy uruchomiłem Pythona w terminalu, miałem go wyświetlającego teksty piosenek Franka Zappy. Odkąd uczę się tego języka programowania w tym roku, miałem wspaniałą okazję rozszerzyć zakres tego, co potrafię robić, i nie mogę się doczekać wypróbowania innych skryptów, takich jak ustawianie automatycznych pobrań.

Te projekty były wszystkimi pomocnymi i zabawnymi eksperymentami. Python po prostu sprawia, że moje hobby związane z domowym laboratorium jest o wiele przyjemniejsze, i nie mogę się doczekać, aby zobaczyć, co będę w stanie zrobić w przyszłości, gdy będę się uczyć więcej, poszerzać swoją wiedzę i wymyślać kolejny szalony „bo mogę” projekt do wykonania na moim telefonie.

Powiązane artykuły