通過LCD4Linux在ubuntu下連接LCD屏幕
1.安裝LCD4Linux
安裝完成后,會附帶驅動程序,正常情況下插入USB后能夠識別設備,有2種安裝方式
1.1一種是通過源進行安裝
sudo apt-get install LCD4Linux
1.2通過官網下載源碼進行安裝
http://prdownloads.sourceforge.net/lcd4linux/lcd4linux-0.10.0.tar.gz?download
下載完畢后解壓
tar xvzf lcd4linux-0.10.0.tar.gz
編譯安裝
./configure
make
make install
在執(zhí)行configure-command期間(這可能需要一段時間!),控制臺上會顯示一些狀態(tài)消息。如果出現錯誤,您可以在configure.log文件中查找它們以進行調試
2.查看USB屏幕的設備名稱
通過命令
lsusb
將會看到有l(wèi)cd2usb interface的設備出現
hoody@hoody-Acer:~$ lsusb
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0403:c630 Future Technology Devices International, Ltd lcd2usb interface # <------?這個就是
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
這里我們可以看到 當前設備的連接位置是在
Bus 001 Device 003: ID 0403:c630 Future Technology Devices International, Ltd lcd2usb interface
然后可以在/dev/bus/usb/001/003看到我們的USB屏幕,記下這個路徑,后續(xù)會在配置文件中使用到 /dev/bus/usb/003暫時叫做設備路徑吧
3.簡單配置/etc/lcd4usb.conf
整個LCD4Linux運行都是通過/etc/lcd4usb.conf文件進行配置的,
定義顯示內容也是通過這個配置文件官方配置樣例文檔
由于安全原因(配置可能包含郵件帳戶的用戶名/密碼),配置文件必須確保僅具有用戶的權限。小組或其他人不得讀寫,否則LCD4Linux拒絕工作! 因此,如果您以root身份運行l(wèi)cd4linux, /etc/libd4linux.conf必須是:
chmod 600 /etc/lcd4linux.conf
chown root.root /etc/lcd4linux.conf
我們先來個簡單的CPU監(jiān)控顯示配置 PS:配置文件中,{括號前面要有一個空格
Display MyScreen {
Driver 'LCD2USB' #指定使用LCD2USB驅動
Model 'generic'
UseBusy 1
Port '/dev/bus/usb/001/003' #填寫上一節(jié)說的設備路徑
Size '20x4'#根據你的屏幕顯示內容填寫,我的是20字符乘4行的
Contrast 90 #對比度設置,范圍:0~255
Brightness 200 #背光亮度設置,范圍:0~255
Wire {
RW 'AUTOFD'
RS 'INIT'
ENABLE 'STROBE'
ENABLE2 'GND'
GPO 'GND'
}
}
# CPU使用率部件
Widget CPU {
class 'Text' #部件類型指定為文本
expression proc_stat::cpu('busy', 500)
prefix 'CPU:' #前綴
postfix '% |' #后綴
width 10 #部件占用字符數
precision 1
align 'L' # L R分別表示左對齊 和右對齊
update 500 #更新頻率 500毫秒
}
#布局,在此處指定部件的放置
Layout Default {
Row1 { #表示第一行
Col1 'MyCPU' #表示從第一格開始放入
}
}
Display 'MyScreen' #指定顯示屏幕
Layout'Default' #指定使用 布局
4.啟動屏幕
啟動LCD4Linux前請確定配置文件lcd4linux.conf的權限是600
啟動命令如下, -v表示顯示啟動日志,如果失敗將會顯示錯誤原因
sudo lcd4linux -v
啟動成功將會在屏幕上顯示
CPU: 13%
啟動錯誤:Unable to autolaunch a dbus-daemon without a $DISPLAY for X11
如果發(fā)生此錯誤,說明當前你應該是通過純命令行進行的操作,LCD4Linux需要桌面環(huán)境的支持,所以在配置的時候需要進入讓Linux的圖形化桌面環(huán)境,然后在桌面環(huán)境中開啟終端再執(zhí)行啟動命令即可
啟動成功后,再通過開機自啟則不需要進入圖形化桌面了
lcd4linux.conf的詳細配置解釋
配文件內容分3個部分
第一部分是屏幕的配置,LCD2USB屏的話,只需要修改port和size即可
Display MyScreen {
Driver 'LCD2USB' #指定使用LCD2USB驅動
Model 'generic'
UseBusy 1
Port '/dev/bus/usb/001/003' #填寫上一節(jié)說的設備路徑
Size '20x4'#根據你的屏幕顯示內容填寫,我的是20字符乘4行的
Contrast 90 #對比度設置,范圍:0~255
Brightness 200 #背光亮度設置,范圍:0~255
Wire {
RW 'AUTOFD'
RS 'INIT'
ENABLE 'STROBE'
ENABLE2 'GND'
GPO 'GND'
}
}
第二部分是定義顯示需要使用的部件,
此處可以定義多個部件,部件中的表達式可以參考官方提供的部件列表 Plugins
常用到的有:
plugin_meminfo內存插件
該插件提供了 /proc/meminfo文件的接口。
meminfo(key)/proc/meminfo并返回的值
'key'參數沒有任何固定值,但作為搜索鍵進入/ proc / meminfo文件。常用鍵是“MemTotal”或“MemFree”。執(zhí)行'cat / proc / meminfo'以查看系統(tǒng)上可用的值。
Widget RAM {
class 'Text'
expression meminfo('MemTotal')/1024
postfix ' MB RAM'
width 11
precision 0
align 'R'
update 0
}
plugin_proc_stat系統(tǒng)狀態(tài)插件
該插件提供了 /proc/stat文件的接口。
Proc_stat插件
示例:CPU:12%
Widget CPU {
class 'Text'
expression proc_stat::cpu('busy', 500)
prefix 'CPU:'
postfix '% |'
width 10
precision 1
align 'L'
update tick
}
Widget CPUBar {
class 'Bar'
expressionproc_stat::cpu('busy', 500)
expression2 proc_stat::cpu('system', 500)
length 10
align 'L'
direction 'E'
update tack
}
uptime啟動時間插件
此插件以秒或以用戶定義的格式返回當前系統(tǒng)的正常運行時間
表達式 解釋
uptime() 返回系統(tǒng)啟動的秒數
uptime(format) 以用戶定義格式返回時間
format的可選格式(格式指定類似于 printf()方法)
表達式 解釋
%s 總秒數
%S 從00-59的秒數
%m 總分鐘數
%M 從00-59的分鐘數
%h 總小時數
%H 從00-23的小時數
%d 總天數
例子:Run 12 days 12:32:59
Widget Uptime {
class 'Text'
expression uptime('%d days %H:%M:%S')
width 20
align 'L'
prefix 'Run '
update tick
}
這里是一部分表達式的示例,其余可以通過官方提供的部件列表 Plugins進行查看
第三部分 布局的指定
通過Row行與Col格進行布局安排,后面的數字表示具體的行數和格數
Layout Default {
Row1 {
Col1 'MyInfo' #從第一行第一格開始顯示
}
Row2 {
Col1 'CPU' #從第二行第1格開始顯示
Col11 'MEM' #從第二行第11格開始顯示(我的設備總計20格每行)
}
Row3 { Col1 'IPaddress' }
Row4 { Col1 'Uptime' }
}
code:
Display USBLCD {
Driver 'LCD2USB'
Model 'generic'
UseBusy 1
Port '/dev/bus/usb/001/003'
Size '20x4'
Contrast 90 #對比度設置,范圍:0~255
Brightness 200 #背光亮度設置,范圍:0~255
Wire {
RW 'AUTOFD'
RS 'INIT'
ENABLE 'STROBE'
ENABLE2 'GND'
GPO 'GND'
}
}
Widget CPU {
class 'Text'
expression proc_stat::cpu('busy', 500)
prefix 'CPU:'
postfix '% |'
width 10
precision 1
align 'L'
update tick
}
Widget CPUBar {
class 'Bar'
expressionproc_stat::cpu('busy', 500)
expression2 proc_stat::cpu('system', 500)
length 10
align 'L'
direction 'E'
update tack
}
Widget MEM {
class 'Text'
expressionceil((meminfo('MemTotal')-meminfo('MemFree'))/meminfo('MemTotal')*100)
prefix 'MEM:'
postfix '%'
width 8
align 'R'
update tick
}
Widget IPaddress {
class 'Text'
expression netinfo::ipaddr('wlp3s0')
prefix ' '
postfix ' '
width 20
align 'L'
update tick
}
Widget Uptime {
class 'Text'
expression uptime('%d days %H:%M:%S')
width 20
align 'L'
prefix 'Run '
update tick
}
Widget MyInfo {
class 'Text'
expression 'Hoody Server'
prefix ' '
postfix ' '
width 20
align 'L'
update tick
}
Layout Default {
Row1 { Col1 'MyInfo' }
Row2 {
Col1 'CPU'
Col11 'MEM'
}
Row3 { Col1 'IPaddress' }
Row4 { Col1 'Uptime' }
}
Variables {tick 500}
Display 'USBLCD'
Layout'Default'
https://zhuanlan.zhihu.com/p/81693837?from_voters_page=true
在Ubuntu系統(tǒng)使用lcd4linux
(1)安裝lcd4linux
$ sudo apt-get install lcd4linux
(2)連接模塊,并查看模塊使用的USB端口,本例中使用的端口為usbdev3.2
$ ls /dev/usb*
(3)更改/etc下的配置文件。軟件生成的lcd4linux.conf文件較長,新手不容易配置,可重命名或刪除后自己新建,并復制下面的配置代碼。
$ cd /etc
$ sudo vi lcd4linux.conf
輸入以下配置信息,并保存。
Display LCD2USB {
Driver 'LCD2USB' #模塊的類型為LCD2USB
Size '16x2' #LCD液晶的尺寸為1602
Port '/dev/usbdev3.2' #使用的端口為/dev/usbdev3.2
Contrast 90 #對比度設置,范圍:0~255
Brightness 200 #背光亮度設置,范圍:0~255
}
Widget IPaddress{
class 'Text' #類型:Text
expression netinfo::ipaddr('eth0') #獲取eth0的ip地址
prefix 'IP:' #在行初顯示“IP:”
width 16 #顯示寬度:16
align 'C' #顯示方式:居中
update 1000
}
Widget Time {
class 'Text'
expression strftime('%a %H:%M:%S',time())
width 16
align 'C'
update 1000
}
Layout Default {
Row1 {
Col1 'IPaddress' #在第一行第一列顯示Widget IPaddress
}
Row2 {
Col1 'Time' #在第二行第一列顯示Widget Time
}
}
Display 'LCD2USB'
Layout'Default'
(4)更改lcd4linux.conf文件權限
$ sudo chmod 600 lcd4linux.conf
$ chown root.root lcd4linux.conf
(5)運行l(wèi)cd4linux
$ lcd4linux
嘿群輝6.13成功驅動USBLCD
1.先root
2.安裝opkg
(裝opkg部分參考如下教程)
https://tieba.baidu.com/p/4951158587?red_tag=0362727310
3.再裝python2.7
4.再裝pip
5.再裝libusb1.0
6.再裝python-libusb1
7.再裝lcd2usb
(python部分參考如下鏈接)
https://pypi.python.org/pypi/lcd2usb
啟動命令python2.7 -m testlcd
下面發(fā)驅動LCD2004的python文件: testlcd.py
我放到/volume2/@entware-ng/opt/lib/python2.7/site-packages目錄下
# ==================配置文件開始============
from lcd2usb import LCD
from subprocess import *
from time import sleep, strftime
from datetime import datetime
# =========================
# Clock Example
# ====================
lcd = LCD()
cmd = "ip addr show eth0 | grep 'inet ' | awk '{print $2}' | cut -d/ -f1"
cmd2 ="hostname"
cmd3 ="cat /proc/loadavg | cut -d/ -f1"
print "Press CTRL+C to exit"
def run_cmd(cmd):
p = Popen(cmd, shell=True, stdout=PIPE)
output = p.communicate()[0]
return output
while(True):
lcd.clear()
ipaddr = run_cmd(cmd)
lcd.goto(0,0) #第一行
lcd.write('Synology DS3617xs')
lcd.goto(0,1) #第二行
name = run_cmd(cmd2)
lcd.write('server %s' % (name) )
lcd.goto(0,2) #第三行
lcd.write('IP %s' % (ipaddr) )
lcd.goto(0,3) #第四行
lcd.write(datetime.now().strftime("%Y-%m-%d %H:%M:%S"))
sleep(1)
# ==================配置文件結束============
審核編輯 黃宇
-
lcd
+關注
關注
34文章
4424瀏覽量
167403 -
顯示模塊
+關注
關注
1文章
50瀏覽量
23567
發(fā)布評論請先 登錄
相關推薦
評論