Jump to content

Rate this topic


Guest house

Recommended Posts

Guest 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.

admin@RT-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

Link to post
Share on other sites
  • Replies 2
  • Created
  • Last Reply

Top Posters In This Topic

  • house

    1

Popular Days

Top Posters In This Topic

Posted Images

  • Administrator

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

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Similar Content

    • Lukas418
      By Lukas418
      Część, 
       
      Poszukuje routera pod gry z funkcją kontroli rodzicielskiej, komputer i konsola podpięte będą pod kabel, do tego 12 urządzeń iot, kilka tv. Sieć 500mb. Priorytet to gry po kablu, wifi drugorzędną sprawa
       
      Fajnie jakby posiadał dodatkowo:
      Geo-lokalizacje widziałem to w netgear: nighthawk xr300-100pes,
      Sterowanie z telefonu,
      Funkcje NAS ale nie jest koniecznie,
      I nie kosztowało więcej niż 1100 zł. 
       
      Znacie coś takiego
       
      Myślałem nad asus rt-ax86u
       
       
    • Mariusz_Sz
      By Mariusz_Sz
      Gdyby ktoś był zainteresowany to przesyłam instrukcję "zmuszenia" naszych DSM do obsługi adapterów USB  - RJ45 2,5/5GbE z chipsetem Realtek do współpracy z NAS Synology serią + (Apollo Lake)
       
      Podobno działa bardzo dobrze. Co jak co, ale dobrze mieć taką alternatywę rozbudowania naszych NASów o nowy standard ethernet bez potrzeby zmiany sprzętu na nowszy ?
       
      Miejmy nadzieję, że w nowszych DSM - Synology wrzuci oficjalnie sterownik do obsługi adapterów USB - RJ45
       
       
       
       
    • glorifyday
      By glorifyday
      A można podpiąć stare wpisy pod nowe konto?
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more information, please see ours Guidelines and Privacy Policy.