Skocz do zawartości
kamil2234

Wyświetlacz LCD HD44780 pod usb z ramką plexi

Oceń temat:

Rekomendowane odpowiedzi

kamil2234

Cześć chcę się pochwalić prototypem ramki LCD współpracującej z moim routerem Asus RT-AC68U z firmware Merlina.

Myślę, że jest to bardzo fajny gadżet na domowe biurko dla takich jak my:

2015-09-18 19.46.09mk.jpg

Jako pakiet sterujący wyświetlaczem używam LCD4LINUX.  Jest to dość wygodne, gdyż jest wiele widgetów pokazujących użyteczne informacje o pracy routera. Dostępne informacje to np. aktualnie zużywany traffic połączenia internetowego,  informacje o sieci wifi , jakość zasięgu modemu LTE huawei, zew adres ip, informacje o nieodebranych email itd. Oprogramowanie LCD4LINUX jest już dostępne w pakietach optware i entware dla dużej ilości routerów. Jak widać nawet mój  router ze stosunkowo nową architekturą  ARM7  doczekał się tego pakietu. Podzespoły z jakiego zmontowałem cały zestaw można kupić na Allegro. Jeśli wyświetlacz ma działać pod usb to potrzebujecie konwertera, który trzeba przylutować do 16 pinowego złącza wyświetlacza LCD HD44780. Ja swoje czteroliniowe wyświetlacze alfanumeryczne kupowałem w hurtowni Telmal (39 zł) – dość drogo. Jeśli natomiast chcecie podłączyć swój wyświetlacz pod  Raspberry PI lub Arduino to wówczas potrzebujecie konwertera  LCD2USB I2C/IIC dla wyświetlaczy LCD HD44780 (koszt około 10 zł) Kolejnym elementem jest ramka plexi, którą sam zaprojektowałem i zamówiłem u jednego producenta w dużym nakładzie.  Niestety nikt nie chciał się zdecydować, aby wyprodukować kilka sztuk z uwagi na zbyt niską wartość zamówienia.  Gdyby ktoś z Was szukał to dawajcie znać na priv albo zajrzyjcie na allegro, bo cały nadmiar wystawiłem do sprzedaży. Ze względu na dużą ilość oprogramowania do tego wyświetlacza można naprawdę zrobić z niego użyteczne centrum informacji. 

Oprócz typowego zastosowania przy routerach można go podłączyć do:

  • dysków sieciowych Synoglogy lub Qnapa (informacje takie jak obciążenie dysku, ilość wolnego miejsca na dysku, informacje o nieodebranych połączeniach przychodzących z centrali telefonicznej Asterisk wbudowanej w dysk sieciowy itd.)
  • Raspberry pi – pokazuje informacje o aktualnie oglądanych programach na Kodi, aktualnie słuchane stacje radiowe, informacje z czujników  temperatury ds1820b lub czujnika wilgotności i temperatury DHT22 oraz wszystko to, co dostępne jest w pakiecie LCD4LNIUX. W planach mam też zamiar przetestować czujniki ciśnienia, czujniki przepływu prądu w gniazdkach, czy wyświetlać informacje o problemach smart domu.
  • kolejna fajna inspiracja to program aida64, który może pokazywać informacje o parametrach naszego komputera PC/Laptopa – narzędzie szczególnie przydatne do overclockingu .
  • nie zapomniałem również o Dreamboxie, który jest kultowym dekoderem pozwalającym oglądać wiele programów z polskich platform cyfrowych. Niestety jak wszyscy wiemy w popularnym DM 800 HD wyświetlacz jest dość mały, a na dodatkowym wyświetlaczu można pokazać np. informacje EPG. Jeśli więc chcemy więcej informacji o aktualnie oglądanych programach można zaadoptować właśnie taki wyświetlacz alfanumeryczny.

Tak jak już wspomniałem jednym z zastosowań tego wyświetlacza, których mam klika jest informowanie mnie o tym, co się dzieje w routerze. Na pewno większość z Was zastanawia się jak tym sterować.  Generalnie sprawa jest dość prosta gdyż po instalacji pakietu  LCD4LINUX wystarczy stworzyć plik konfiguracyjny, który będzie kopiowany przy stracie routera do lokalizacji /etc/lcd4linux.conf.

Lcd4linux instalujemy za pomocą komendy:

(dla menadżera pakietów optware)

Ipkg install Lcd4linux 

 (dla menadżera pakietów entware)

Opkg install Lcd4linux

Przykład pliku konfiguracyjnego macie tu:

https://lcd4linux.bulix.org/wiki/lcd4linux_conf

W przypadku wyświetlacza HD44780 konfiguracja jest banalna.

Przykładowa zawartość pliku lcd4linux.conf dla wyświetlacza  HD44780 z konwerterem lcd2usb.

Spoiler
Variables {
   tick 500
   tack 100
   minute 60000
   net_if 'br0' # Set this to the network interface to monitor
}
Display LCD2USB {
    Driver     'LCD2USB'
    Bus        '003'
    Device     `lsusb | grep Future | cut -d" " -f4 | cut -b-3`
    Contrast   190
    Brightness 255
    Icons      0
    Size       '20x4'
}

Widget Uptime {
    class 'Text'
    expression uptime('%d days %H:%M:%S')
    width 20
    align 'R'
    prefix 'Up '
    update 1000
}

Widget wan_dl {
    class 'Text'
    expression (netdev(net_if, 'Rx_bytes', 500))/1024
    postfix 'kB/s'
    prefix 'U'
    width 10
    precision 0
    align 'R'
    Foreground 'ffffff'
    Background transparent
}

Widget wan_up {
    class 'Text'
    expression (netdev(net_if, 'Tx_bytes', 500))/1024
    postfix 'kB/s'
    prefix 'D'
    width 10
    precision 0
    align 'R'
    Foreground 'ffffff'
    Background transparent
}

Widget BusyBar {
    class 'Bar'
    expression  proc_stat::cpu('busy',   500)
    expression2 proc_stat::cpu('system', 500)
    length 10
    direction 'E'
    update tack
}

Widget Busy {
    class 'Text'
    expression proc_stat::cpu('busy', 500)
    prefix 'CPU'
    postfix '%'
    width 9
    precision 1
    align 'R'
    update tick
}

Widget HuaweiQuality {
    class 'Text'
    expression huawei::quality('%')
    prefix 'QLT  '
    postfix '% '
    width 10
    precision 0
    align 'L'
    update huaweiT
}

Layout L20x4 {
      Row1 {
       Col1 'Uptime'
    }
          Row2 {
           Col1 'wan_dl'
           Col11 'wan_up'
    }
         Row3 {
       Col1  'Busy'
       Col11  'BusyBar'
    }

}
Display 'LCD2USB'
Layout 'L20x4'

Jeśli będziecie mieć problem z wykrywaniem urządzenia to trzeba sobie zainstalować usb usbutils.

opkg install usbutils  

(ipkg/opkg używamy w zależności od  zainstalowanego na routerze menadżera pakietów ja dalej będę pisać na przykładzie  Entware)

Wydajemy wówczas polecenie lsusb i szukamy  coś takiego jak Bus XXX.  U mnie to numer  003 - u Was może być to inny numer w zależności od waszego routera lub np stosownego huba usb, czy ilości podłączonych urządzeń. Trzeba wpisać ten numer w config w sekcji Display LCD2USB. Dodam też, że w przypadku podłączenia wyświetlacza pod HUB usb tracicie możliwość kontrolowania jasności ekranu.  Należy o tym pamiętać.  Jeśli Wasze urządzenie posiada port usb 3.0 to zapewne ma wydajność prądową około 0.9 A, przy napięciu 5V.  Jest to prawie dwa razy więcej niż moc jaką daje usb 2.0. Jeśli nie stosujecie zbyt dużo aktywnych urządzeń takich jak dyski 2,5", bez własnego zasilania to spokojnie wystarczy Wam zwykły pasywny rozdzielacz USB 3.0. Sam wyświetlacz zużywa max 100mA więc jeśli macie zestaw pendirve usb, modem LTE i taki wyświetlacz to nie zabijecie sobie routera. Jak mace usb 2.0 to radzę stosować aktywne rozdzielacze usb z zewnętrznym zasilaczem.

[email protected]-AC68U-7E68:/tmp/home/root# lsusb
Bus 003 Device 003: ID 0403:c630 Future Technology Devices International, Ltd lcd2usb interface
Bus 002 Device 008: ID 8644:800e
Bus 002 Device 009: ID 12d1:14dc Huawei Technologies Co., Ltd.
Bus 002 Device 002: ID 05e3:0610 Genesys Logic, Inc. 4-port hub
Bus 001 Device 002: ID 05e3:0617 Genesys Logic, Inc.
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub

W przypadku openwrt trzeba pamiętać o tym, że podczas startu routera nasz katalog etc znajduje się w pamięci ram i za każdym razem należy kopiować do niego plik konfiguracyjny oraz ustawić prawa do pliku.

Wchodzimy więc w katalog, aby przygotować skrypty które będę to robić po starcie systemu.

cd /jffs/scripts

Następnie tworzymy plik konfiguracyjny za pomocą edytora vi lub nano. Jeśli nie mamy nano to instalujemy go:

opkg install nano 

Następnie tworzymy plik konfiguracyjny, który będziemy potem kopiować do katalogu /opt/etc:

nano lcd4linux.conf

Wklejamy do otwartego pliku lcd4linux.conf zawartość pliku konfiguracyjnego.

Następnie za pomocą nano edytujemy plik post-mount

nano post-mount

Na jego  końcu dopisujemy takie linijki (opisuję to wyłącznie dla Entware w optware jest inaczej)

Kod do dodania:

sleep 2
cp /jffs/scripts/lcd4linux.conf  /opt/etc/lcd4linux.conf
chmod 600 /opt/etc/lcd4linux.conf

sleep 40
/opt/etc/init.d/rc.unslung restart

Jak widzicie kopiujemy do /opt/etc a nie do /etc/

Jeśli chcecie sobie odpalić LCD4LINUX w trybie testowym to bardzo ważne jest skopiowanie configa również do /etc/lcd4linux.conf i oczywiście trzeba zmienić prawa do pliku na 600

Z pomocą przychodzą nam dwa polecania:

cp /jffs/scripts/lcd4linux.conf etc/lcd4linux.conf
chmod 600 /etc/lcd4linux.conf

Testowanie LCD4linux wykonujemy w następujący sposób:

lcd4linux -Fvv

lub

lcd4linux -F -f /etc/lcd4linux.conf

Na koniec podpowiem, że sterowanie jasnością wyświetlacza można osiągnąć poprzez zmianę wartości  w zakresie od 001 do 255

Brightness

Jeśli chcecie sobie przyciemniać ekran tak, aby nie świecił w nocy zbyt jasno można np. stosować zadania automatyczne CRON, które skopiują config do katalogu /opt/etc/, zmienią prawa do pliku, a na koniec zrestartują lcd4linux.

To jak Ja to zrobiłem może nie do końca jest poprawnie, ale podzielę się z Wami skryptami. Wadą tego skryptu jest to, że w przypadku gdy zrestartujecie router po godzinie 22:30, to będzie Wam świecił jasnością do następnego dnia do 22:30. Pewnie go poprawię i kiedyś zaktualizuję. :12_slight_smile:

Edytujemy zawartość pliku services-start wpisując:

 nano services-start

i następnie gdzieś na początku za tymi dwoma linijkami

#!/bin/sh
script="/opt/etc/init.d/rc.unslung"

dopisujemy zadania automatyczne CRON, które będą zmieniać jasność o określonych godzinach. Dzięki temu codziennie o 22:30 wyświetlacz będzie stawać się ciemny, a o 7:30 znowu się rozjaśni.

cru a darklcd "30 22 * * * /jffs/scripts/dark_copylcd4linux.sh"
cru a lightlcd "30 7 * * * /jffs/scripts/light_copylcd4linux.sh"

Tworzymy skrypty przeładowujące konfigurację, które są wywoływane z CRON.

nano light_copylcd4linux.sh

Przykładowa zawartość pliku light_copylcd4linux.sh, który musicie sobie utworzyć:

#!/bin/sh
cp /jffs/scripts/lightlcd4linux.conf  /opt/etc/lcd4linux.conf
chmod 600 /opt/etc/lcd4linux.conf
/opt/etc/init.d/S91lcd4linux restart

analogicznie robimy dla drugiego skryptu ładującego drugi config . Za pomocą edytora  nano  tworzymy plik dark_copylcd4linux.sh i wklejamy zawartość poniżej:

#!/bin/sh
cp /jffs/scripts/darklcd4linux.conf  /opt/etc/lcd4linux.conf
chmod 600 /opt/etc/lcd4linux.conf
/opt/etc/init.d/S91lcd4linux restart

Należy też stworzyć zawartość plików  darklcd4linux.conf oraz lightlcd4linux.conf w katalogach /jffs/scripts/ kopiując cały config lcd4linux.conf.  W zależności od preferencji ustawiacie tam oczekiwany poziom jasności wyświetlacza edytując wartość:

Brightness 100

Aha zapomniałem jeszcze dopisać jak ma wyglądać poprawna zawartość pliku startującego demona S91lcd4linux

Za pomocą edytora nano otwieramy aktualny plik i usuwamy wszystko

nano /opt/etc/init.d/S91lcd4linux

wklejamy poniższą zawartość:

#!/bin/sh

ENABLED=yes
PROCS=lcd4linux
ARGS="-f /opt/etc/lcd4linux.conf"
PREARGS=""
DESC=$PROCS
PATH=/opt/sbin:/opt/bin:/opt/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

. /opt/etc/init.d/rc.func

Na koniec restart routera. Jak coś pominąłem  lub Wam nie działa to  zgłaszajcie :12_slight_smile: Dajcie też znać jak się Wam podoba ramka.

fc5ada914edb3b3fmed.jpg2015-09-19 13.35.04 m.jpg2015-09-18 19.46.01.jpg2015-09-18 19.45.36.jpg2015-09-18 19.46.09mk.jpgramka wymiary wyświetlacza.jpg2015-09-19 13.09.27 m.jpg

  • Lubię to 2

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
house

Fajna zabawka :) Skąd pobierasz dane traffic z merlina ?  

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
kamil2234

Tak dodałem konfigurację przykładową. 

  • Lubię to 1

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

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

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się

  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

  • Podobna zawartość

    • kamil2234
      Przez kamil2234
      Czy ktoś z kolegów ma może pakiet ipkg lcd4linux w wersji  współracują z ramką  samsung SPF-72H dla routera RT-AC68U (architektura armv7)?  
      Ewentualnie prośba o naprawadzenie jak można skompilować sobie samemu pakiet  ipkg dla routera AC68U z lcd4linux bez wkomilowywania go w całe firmware.
      Obecnie używam optware i chciałbym aby tak pozostało.
    • patryczekk
      Przez patryczekk
      Cześć obecnie mam wgrany asus padavan.
      https://drivers.softpedia.com/get/Router-Switch-Access-Point/ASUS/ASUS-RT-AC51U-Router-Custom-Firmware-3-4-3-9-099-Full-Nightly.shtml
      Ten soft z linka - router sflashował się bez problemy poprzez update firmware z oprogramowania asus.
      A muszę teraz na routerze wgrać openwrt. Najlepiej chyba najnowszą wersje luci? Bardzo proszę o pomoc.
       
      Czy powinienem pobrać to:
      https://openwrt.org/toh/views/toh_fwdownload?dataflt[Model*~]=AC51U
      Powinienem pobrać: Firmware OpenWrt Upgrade URL
      Czy to:
      Firmware OpenWrt snapshot Upgrade URL
       
      Najprościej to byłoby się za to nie brać, ale bardzo chciałbym to zrobić.
       
      Czy ta instrukcja z youtube poniżej będzie okej?
      Tylko, że tu są pliki .trx, a na openwrt mam do pobrania .bin
      Jaka jest różnica między tymi rozszerzeniami?
       
       

openitforum.pl

Forum poświęcone przesyłaniu i przechowywaniu danych w małej sieci. Prezentujemy testy urządzeń oraz pomagamy w ich obsłudze i konfiguracji.
×

Powiadomienie o plikach cookie

Używamy plików cookie do celów związanych z reklamami, mediami społecznościowymi i statystykami. Kontynuując przeglądanie strony, wyrażasz zgodę na używanie przez nas plików cookies. Wszystkie wymagane w tej kwestii informacje zawierają: Polityka prywatności, Regulamin oraz Warunki użytkowania.