Skocz do zawartości

Wyświetlanie liczby na wyświetlaczu z pliku tekstowego


dippaolo

Pomocna odpowiedź

Witam

Czym powinienem się zainteresować, co poczytać aby wykonać taki projekt:

Raspberry PI np. co 1 minutę odczytuje plik tekstowy z sieci lokalnej w którym jest liczba trzy cyfrowa. Po odczytaniu wyświetla tą wartość na:

1. Monitorze w trybie pełno ekranowym,

lub

2. Wyświetlaczu led segmentowym trzy cyfrowy.

W zależności co będzie łatwiejsze, monitor w trybie pełno ekranowym czy wyświetlacz LED.

Czym powinienem się zainteresować, ktoś coś podpowie?

 

Link do komentarza
Share on other sites

Obydwa projekty nie wydają się trudne. Do wyświetlania na ekranie możesz użyć biblioteki GTK lub QT.

Zdecydowanie jednak wybrałbym wyświetlacz siedmiosegmentowy ze względu na mniejszy pobór prądu. Do tego zastosowałbym ESP8266 zamiast Raspberry. Oprócz znacznie niższej prądożerności zyskasz nieco większą niezawodność (brak karty SD i konieczności dbania o poprawne zamknięcie systemu operacyjnego).

Link do komentarza
Share on other sites

Też skłaniał bym się ku wyświetlaczowi segmentowemu... Zostaje raczej Raspberry, ze względy na przyszłe dodatkowe projekty. 

Do wyświetlania na ekranie proponujesz użyć biblioteki GTK lub QT... a na wyświetlaczu segmentowym?

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

No właśnie o tym wczoraj czytałem tak na szybko TU. MAX7219 obsłuży wyświetlacz segmentowy. 

Załóżmy, że mam już gotowy zestaw Raspberry + wyświetlacz segmentowy ze sterownikiem MAX7219. Odpalam rożne pliki testowe i demonstracyjne - działa.

Kolejne pytanie to jak odczytać wartość z pliku tekstowego i pokazać ją na wyświetlaczu, sprawdzając wartość np. co 10 min?

Link do komentarza
Share on other sites

11 godzin temu, dippaolo napisał:

Kolejne pytanie to jak odczytać wartość z pliku tekstowego i pokazać ją na wyświetlaczu, sprawdzając wartość np. co 10 min?

Zależy od języka, ale prawdopodobnie użyjesz Pythona. W jaki sposób dostępny będzie ten plik w sieci lokalnej? Protokół SMB? Najwygodniej postawić mikroserwer www i na nim hostować ten plik.

https://docs.python.org/3/howto/urllib2.html

https://pypi.org/project/TaskScheduler/

W C++ też się da.

https://curl.haxx.se/libcurl/competitors.html

https://whoshuu.github.io/cpr/

https://www.geeksforgeeks.org/socket-programming-cc/

Edytowano przez rziomber
  • Pomogłeś! 1
Link do komentarza
Share on other sites

Dzięki za linki @rziomber. 

Wydaje mi się, że nie będzie problemu z samym dostępem do pliku tekstowego. Mogę nawet coś zrobić w cronie u nas na serwerze aby kopiował do RP czy RP będzie automatycznie go sobie kopiował tak aby był w określonym katalogu już na karcie SD czy na pendrive USB na RP...

Bardziej zależy mi na informacji jak wrzucić odczytany plik TXT, w moim przypadku z trzema cyframi (ile liczb to chyba nie istotne) na wyświetlacz. Tak jak pisałem wyżej, załóżmy że mam RP z działającym wyświetlaczem, jakieś odpalone demo z danej wtyczki działa poprawnie. 

Link do komentarza
Share on other sites

19 minut temu, dippaolo napisał:

Bardziej zależy mi na informacji jak wrzucić odczytany plik TXT, w moim przypadku z trzema cyframi (ile liczb to chyba nie istotne) na wyświetlacz.

Odczytujesz plik w Pythonie i przekazujesz uzyskaną wartość do funkcji showvalue()

Wszystko do znalezienia na Google w kilka sekund.

  • Pomogłeś! 1
Link do komentarza
Share on other sites

I to już jakaś wskazówka 🙂 Jak dojdzie wyświetlacz, podłączę, odpalę demo, to później spróbuję pokombinować. Pewnie wrócę tu z jakimś pytaniem 🙂

ps. Jak się wie jak zapytać google to tak. Ja jestem amatorem, młodzikiem, przedszkolakiem ipt, itd. 🤪

Link do komentarza
Share on other sites

Więc jestem z powrotem 🙂

Już podłączony wyświetlacz 7 segmentowy ze sterownikiem MAX7219.

Już program odczytuje plik tekstowy. Coś co wyświetla wygląda tak, nie wiem czy to najlepsze rozwiązanie ale działa:

    print('Simple text...')
    f= open('test.txt', 'r')
    file_contents = f.read()
    seg.text = (file_contents)
    time.sleep(5)
    f.close()

Teraz kolejne pytanie...

Nie chcę aby wyświetlało się to tylko przez 5 sekund. Jak zrobić aby po wykonaniu skryptu na wyświetlaczu pozostała wartość odczytana z pliku TXT? Dlaczego? dlatego że np. za 10min znów wykona się ten sam skrypt i odczyta nową wartość... i tak w kółko 🙂

Chyba zabiję proces w cronie komendą KILL i uruchomię skrypt ponownie w cronie

Link do komentarza
Share on other sites

Jest mały problem. Koniec końców, użyłem jeszcze komendy "while" aby skrypt wykonywał się w pętli. problem jest taki że po pewnym czasie skrypt się zatrzymuje i wywala błąd 

OSError: [Errno 24] Too many open files: /home/pi/txt/txt.txt

Obecnie kod wygląda tak:

def main():
    while True:
        # create seven segment device
        serial = spi(port=0, device=0, gpio=noop())
        device = max7219(serial, cascaded=1)
        seg = sevensegment(device)
        print('Test tekstu...')
        f= open('/home/pi/txt/txt.txt', 'r')
        file_contents = f.read()
        seg.text = (file_contents)
        f.close()
        time.sleep(5)

Widać, że plik otwieram i go na końcu zamykam, mimo to pojawia się info po pewnym czasie, że zbyt wiele otwartych plików...
Ktoś coś widzi złego w tym kodzie?

print test tekst jedla abym w konsoli widzial ze skrypt leci

Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.