LCD2USB显示模块在LCD4LINUX的使用解释

通过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行的
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
如果发生此错误,说明当前你应该是通过纯命令行进行的操作,lcd4linux需要桌面环境的支持,所以在配置的时候需要进入让linux的图形化桌面环境,然后在桌面环境中开启终端再执行启动命令即可
启动成功后,再通过开机自启则不需要进入图形化桌面了
lcd4linux.conf的详细配置解释
配文件内容分3个部分 
第一部分是屏幕的配置,lcd2usb屏的话,只需要修改port和size即可
display myscreen {
   driver  'lcd2usb'  #指定使用lcd2usb驱动
   model   'generic'
   usebusy  1
   port   '/dev/bus/usb/001/003'  #填写上一节说的设备路径
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”。执行'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 插件
示例: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'  }
}
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'
   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'
https://zhuanlan.zhihu.com/p/81693837?from_voters_page=true
在ubuntu系统使用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)运行lcd4linux
$ 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 
下面发驱动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)
# ==================配置文件结束============


如何使用Python编写一个简单的程序
荣耀独立的阵痛期痛在哪里?
横河电流钳的使用注意事项
pcb电路板打样工厂哪家好
利用NVIDIA BlueField DPU将加速计算提升到新的水平
LCD2USB显示模块在LCD4LINUX的使用解释
Qspeed推出超高效率600V H系列整流器
变形金刚威震天售价88888元:雷霆世纪发布变形金刚定制版PC
推陈出新,伺服驱动有“新东西”
5G的出现对智能手机和汽车行业带来了什么影响
用于高频接收器和发射器的锁相环—第一部分
SMT模板的特点
推进农业水价综合改革的意见解读
USB-PD取代平板电源接口而实现中大功率充电
iWatt iW3614可控硅调光的数字控制15W LED驱动方案
一种简单办法来创建适合传感器偏置应用的高压电源
受惠于IT设备面板需求增长和OLED面板的销量,LG去年Q4净利润转正
实现高带宽和低噪声的优势与挑战
劲爆!乐视20亿美金收购美国电视厂商VIZIO
众多企业纷纷进军智能门锁行业 我国智能门锁市场规模将破千亿