(原) Mt7688用于信息显示

原创文章,请后转载,并注明出处。

手上有一块前两年留下来的MT7688,上面盖了一张与板子同样大小的串口屏。今天拿出来准备用来显示Pi的相关信息。其实仅用来作显示是比较浪费的。

先试过用golang的交叉编译,但一是编译通不过,毕竟是mips,问题更多。再者编译出来的文件也比较大。MT7688的空间是有限的。然后就换成了python。

其实也是比较简单,go和python都没有太多区别。

开启一个Web服务,通过参数来调用shell,进而控制串口/dev/ttyS0,发送指令到串口屏。

显示内容: /display/字体大小/x位/y位/颜色/显示内容 直接发代码:/code/代码内容 清屏: /clear 或 /clear/颜色

非专业焊工,将就能用了。

from bottle import route, run, template
import os,urllib2

@route('/display/<size>/<x>/<y>/<color>/<info>')
def display(size,x,y,color,info):
    display = (urllib2.unquote(info)).decode("utf-8").encode("gb2312")
    os.system("echo \"BS%s(%s,%s,240,4,'                           ',0);BS%s(%s,%s,240,4,'%s',%s);\" > /dev/ttyS0" % (size,x,y,size,x,y,display,color))
    return template('<b>{{info}}</b>', info=info)

@route('/disp/<size>/<x>/<y>/<color>/<info>')
def display(size,x,y,color,info):
    display = (urllib2.unquote(info)).decode("utf-8").encode("gb2312")
    os.system("echo \"DS%s(%s,%s,'                           ',0);DS%s(%s,%s,'%s',%s);\" > /dev/ttyS0" % (size,x,y,size,x,y,display,color))
    return template('<b>{{info}}</b>', info=info)

@route('/code/<info>')
def code(info):
	display = (urllib2.unquote(info)).decode("utf-8").encode("gb2312")
	os.system("echo \"%s;\" > /dev/ttyS0" % display)
	return template('<b>{{info}}</b>', info=info)

@route('/clear')
def clear():
    os.system("echo \"CLS(0);\" > /dev/ttyS0")
    return "Clear Display"

@route('/clear/<color>')
def clear(color):
    os.system("echo \"CLS(%s);\" > /dev/ttyS0" % color )
    return "Clear Display " + color    

run(host='', port=8080)

然后Pi就可以直接访问地址,发送一些相关信息了。

附加一个MT7688后台运行程序的方法:

  1. 安装nohup

opkg update

opkg install coreutils-nohup

  1. 后台运行

nohup python /etc/server.py >/dev/null 2>&1 &

应该直接加到/etc/rc.local中

另外,要我关闭亮瞎眼的两个LED灯:

关闭WIFI灯: echo 0 > /sys/class/leds/mediatek:orange:wifi/brightness

电源灯暂时没找到方法。

相关文章