logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Jak zaprogramować Raspberry PI jako timer do wyłączania urządzeń przez GPIO?

broda_ns 19 Maj 2015 10:47 3099 10
REKLAMA
  • #1 14704606
    broda_ns
    Poziom 2  
    Posty: 4
    Witam wszystkich,

    Czy ktoś potrafi zaprogramować Raspberry PI tak aby działał jako timer? Chodzi głównie o wyłączanie urządzeń o określonych godzinach. Urządzenia podpięte są pod GPIO. Mam także zainstalowane WebioPI i przez stronę internetową włączam/wyłączam te urządzenia. Wszystko ma za zadanie ograniczać zużycie energii elektrycznej w określonych godzinach. Dobrze by było aby była możliwość po wciśnięciu przycisku odpowiadającego za np. włączenie światła na ogrodzie wyświetlenia komunikatu na stronie internetowej np. "Włączenie urządzenia spowoduje większą opłatę za zużytą energię elektryczną". Niestety moje umiejętności na RPI nie są jeszcze wystarczające. Proszę o pomoc.
    Pozdrawiam.
  • REKLAMA
  • #2 14704861
    strikexp
    Poziom 27  
    Posty: 2416
    Pomógł: 101
    Ocena: 104
    Raspberry Pi się nie bawiłem, jednak poczytaj o skryptach uruchamianych automatycznie w Linux. Tam są z pewnością jakieś przykłady zadań cyklicznych.
    Dodam też że w Linux jest coś takiego jak CRON do cyklicznego uruchamiania programów, wystarczy napisać program włączający/wyłączający dany port GPIO. A na temat tego jak skonfigurować CRON znajdziesz zapewne wiele poradników po polsku.
    Odnośnie strony internetowej to też jest to łatwe ale nie mam pojęcia z jakiego serwera www korzystasz na Raspberry Pi i ogólnie w jakiej technologi to działa.
  • REKLAMA
  • #3 14705699
    alsa
    Poziom 12  
    Posty: 98
    Pomógł: 4
    Ocena: 42
    Wystarczy plik w PHP ,uruchamiany przez CRON ,sprawdza czy cos ma włączyć np w bazie SQL , jak tak to uruchamia zadanie ,lub je wyłacza ,drugi plik php w katalogu www ,łaczy się z tą samą bazą gdzie są ustawienia dla zadać o pokazuje na www
  • #4 14705871
    strikexp
    Poziom 27  
    Posty: 2416
    Pomógł: 101
    Ocena: 104
    Pytanie tylko czy autor tematu zna PHP, bardziej stawiałbym że zna np C.
    Poza tym jak wspominałem nie znam się na Rasberry Pi, ale czy aby na pewno za pomocą PHP da się sterować GPIO? Jak robiłem taki system na zwykłym komputerze to obsługiwałem port RS-232 za pomocą C, a PHP jedynie uruchamiał ten plik gdy kliknęło się w przeglądarce.
    BTW. SQL czyli jak zgaduje MySQL zżera tyle pamięci że jego uruchamianie na słabszych modelach Raspberry Pi nie jest mądrym pomysłem.
  • REKLAMA
  • #5 14705935
    alsa
    Poziom 12  
    Posty: 98
    Pomógł: 4
    Ocena: 42
    biplioteka wiringpi php : https://github.com/WiringPi/WiringPi-PHP , w prosty sposób daje możliwość sterowania GPIO z php ,a w C napisanie serwera www dla początkującego to bedzie bardziej przerażąjące jak zapoznanie się z podstawami php
  • #6 14706776
    strikexp
    Poziom 27  
    Posty: 2416
    Pomógł: 101
    Ocena: 104
    Fajnie że jest taka biblioteka i ją podałeś na forum, ale to wcale nie jest PHP :)
    Zajrzyj w kod i instrukcję użycia, to kod napisany w C przeznaczony do kompilacji na plik biblioteki .so. Samo PHP jedynie wczytuje ten plik i z niego korzysta.
    Jednym słowem, samo PHP nie jest w stanie sterować portami GPIO, przynajmniej na to wygląda.
  • #7 14706795
    alsa
    Poziom 12  
    Posty: 98
    Pomógł: 4
    Ocena: 42
    W jednym z projektów na rPI napisałem demona w C do obsługi SPI ,gpio w Raspberry + serwer TCP dla komunikacji PHP z demonem ,dużo lepsze dla mnie rozwiązanie i bezpieczniejsze .
  • REKLAMA
  • #8 14706876
    broda_ns
    Poziom 2  
    Posty: 4
    Dzięki za tyle podpowiedzi. Faktycznie PHP nie znam, jak coś to C. Wieczorem spróbuje skorzystać z załączonej biblioteki. Aha stronę internetową zrobiłem na podstawie WEBIOPI i przez nią steruje GPIO. Pozdrawiam
  • #9 14706987
    strikexp
    Poziom 27  
    Posty: 2416
    Pomógł: 101
    Ocena: 104
    Właśnie nie doczytałem z tym WEBIOPI i stąd moje pytanie. Nie musisz się bawić w żadne PHP, można tak skonfigurować serwer www że będzie używał plików w C (np instrukcje printf).
    Kwestia tylko jakiego serwera będziesz do tego używał, jeśli WEBIOPI nie wystarczy to pewnie nginx będzie w sam raz z powodu małych wymagań. Możesz też spróbować zwyczajnie zedytować WEBIOPI i dodać tam te napisy o zwiększonym zużyciu prądu.
  • #10 14711759
    broda_ns
    Poziom 2  
    Posty: 4
    Próbowałem edytować WEBIOPI ale niestety moje wszelkie próby nie powiodły się. Czy ktoś już coś takiego robił i czy w ogóle można coś takiego zrobić?
  • #11 14718681
    pancio
    Poziom 16  
    Posty: 132
    Pomógł: 14
    Ocena: 13
    Zainteresuj się Pythonem i WiringPi, obsługa banalnie prosta (wzorowana na Arduino), serwer www z obsługą GPIO napiszesz w 5 minut, a dzięki modułom Pythona obsługa zdarzeń czasowych też nie będzie problemem..

Podsumowanie tematu

✨ Użytkownik poszukuje sposobu na zaprogramowanie Raspberry Pi jako timera do automatycznego wyłączania urządzeń podłączonych do GPIO o określonych godzinach, z możliwością wyświetlania komunikatów na stronie internetowej. Odpowiedzi sugerują wykorzystanie skryptów w Linux, takich jak CRON, do cyklicznego uruchamiania programów, oraz PHP do interakcji z bazą danych SQL. Wskazano również na możliwość użycia biblioteki WiringPi do sterowania GPIO z PHP, chociaż podkreślono, że PHP samodzielnie nie obsługuje GPIO. Alternatywnie, zaproponowano użycie Pythona, który jest prostszy w obsłudze i pozwala na łatwe tworzenie serwera WWW do zarządzania GPIO.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA