Hoody's Blog
使用 LCD4Linux 让LCD2USB 屏幕作为监控小屏

logo82.png

一.前言

最近在对旧笔记本进行改造, 做一个相框机箱,然后基本完成了,现在觉得还少了额一个显示屏做监控运行状态

微信图片_20190908160544.jpg

然后在淘宝搜到这个LCD显示屏,支持LCD2USB LCD.PNG

这里我们来看看怎么让它显示我们要的内容

二.本文包含以下内容

本文仅包含支持LCD2USB的设备

  • 通过LCD4Linux在ubuntu下连接LCD屏幕
  • 通过LCD Smartie在windows下连接LCD屏幕

三.通过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 

在执行configure-command期间(这可能需要一段时间!),控制台上会显示一些状态消息。如果出现错误,您可以在configure.log文件中查找它们以进行调试

2.查看USB屏幕的设备名称

通过命令

lsusb

将会看到有lcd2usb 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屏幕,记下这个路径, 后续会在配置文件中使用到 /dev/bus/usb/003 暂时叫做设备路径

3.简单配置/etc/lcd4usb.conf

整个LCD4Linux运行都是通过/etc/lcd4usb.conf文件进行配置的,
定义显示内容也是通过这个配置文件官方配置样例文档

由于安全原因(配置可能包含邮件帐户的用户名/密码),配置文件必须确保仅具有用户的权限。小组或其他人不得读写,否则LCD4Linux拒绝工作! 因此,如果您以root身份运行lcd4linux, /etc/libd4linux.conf必须是:

chmod 600 /etc/lcd4linux.conf
chown root.root /etc/lcd4linux.conf

我们先来个简单的CPU监控显示配置 PS: 配置文件中,{括号前面要有一个空格

Display MyScreen {
    Driver  'LCD2USB'  #指定使用LCD2USB驱动
    Model   'generic'
    UseBusy  1
    Port    '/dev/bus/usb/001/003'  #填写上一节说的设备路径
    Size    '20x4'  # 根据你的屏幕显示内容填写,我的是20字符乘4行的
    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

如果发生此错误,说明当前你应该是通过纯命令行进行的操作,LCD4Linux需要桌面环境的支持,所以在配置的时候需要进入让Linux的图形化桌面环境,然后在桌面环境中开启终端再执行启动命令即可
启动成功后,再通过开机自启则不需要进入图形化桌面了

lcd4linux.conf的详细配置解释

配文件内容分3个部分

第一部分是屏幕的配置,LCD2USB屏的话,只需要修改portsize即可

Display MyScreen {
    Driver  'LCD2USB'  #指定使用LCD2USB驱动
    Model   'generic'
    UseBusy  1
    Port    '/dev/bus/usb/001/003'  #填写上一节说的设备路径
    Size    '20x4'  # 根据你的屏幕显示内容填写,我的是20字符乘4行的
    Wire {
    RW      'AUTOFD'
    RS      'INIT'
    ENABLE  'STROBE'
    ENABLE2 'GND'
    GPO     'GND'
    }
}

第二部分是定义显示需要使用的部件,

此处可以定义多个部件,部件中的表达式可以参考官方提供的部件列表 Plugins
常用到的有:

plugin_meminfo 内存插件

该插件提供了 /proc/meminfo文件的接口。
meminfo(key)/proc/meminfo 并返回<key>的值
'key'参数没有任何固定值,但作为搜索键进入/ proc / meminfo文件。常用键是“MemTotal”或“MemFree”。执行'cat / proc / meminfo'以查看系统上可用的值。

Widget RAM {
    class  'Text'
    expression meminfo('MemTotal')/1024
    postfix ' MB RAM'    
    width  11
    precision 0
    align  'R'
    update 0
}

plugin_proc_stat 系统状态插件

该插件提供了 /proc/stat 文件的接口。
Proc_stat 插件

表达式 解释
proc_stat(key) /proc/stat直接取值
proc_stat(key, delay) /proc/stat取变化量
proc_stat::cpu(key, delay) /proc/stat获取CPU信息
proc_stat::disk(device, key, delay) /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'
    expression  proc_stat::cpu('busy',   500)
    expression2 proc_stat::cpu('system', 500)
    length 10
    align 'L'
    direction 'E'
    update tack
}

uptime 启动时间插件

此插件以秒或以用户定义的格式返回当前系统的正常运行时间

表达式 解释
uptime() 返回系统启动的秒数
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'
   }
}

贴一个我的配置

地址 一个比较全的官方示例

效果 微信图片_20190908171411.jpg code:

Display USBLCD {
    Driver  'LCD2USB'
    Model   'generic'
    UseBusy  1
    Port    '/dev/bus/usb/001/003'    
    Size    '20x4'
    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'
    expression  proc_stat::cpu('busy',   500)
    expression2 proc_stat::cpu('system', 500)
    length 10
    align 'L'
    direction 'E'
    update tack
}
Widget MEM {
    class      'Text'
    expression  ceil((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'

四.通过LCD Smartie在windows下连接LCD屏幕

所需的文件在这里驱动文件 提取码:500f

安装JQMU驱动程序

1.将模块与USB线连接,插上电脑USB口

2.通过电脑属性,可以看到新的USB设备

windows设备.png

3.打开文件夹 libusb-win32-bin-1.2.6.0\bin,执行inf-wizard.exe
注意:WIN7 WIN10 系统安装时,点击右键选择“以管理员身份运行”进行安装 安装驱动.jpg

点击 Next> 进入下一步选择LCD2USB Interface这个驱动项

选择驱动.png

然后继续下一步 将会提示保存文件,创建一个文件夹,选择它 然后保存 选择存放位置.jpg

接下来会进入这个界面
确认安装.png 点击 Install Now 安装完成后会弹出 Installation successful提示成功的弹窗

此时查看设备管理器,将会看到驱动安装成功 成功确认.png

使用LCDSmartie

双击LCDSmartie.exe启动,
LCDSmartie.jpg

此时将会在你的屏幕上看到 这个窗体中的内容.

点击左下角的Setup按钮,弹出设置框 图示.PNG

在图中①的区域,选择需要编辑的行数,然后选择②区域的字符 insert进去即可

添加新评论,支持Markdown格式