玩转orangpi 之frpc远程管理+pcd8544(nokia5110 屏幕) 显示运行状态
玩转orangpi 之frpc远程管理+pcd8544(nokia5110 lcd) 显示运行状态。
物件:
orangepi一套(电源,网线,orangepiPC)110元
nokia 5110 lcd 接线8跟 15块
展示:

系统配置
使用python操作orangepi_PC 的gpio需要安装 https://github.com/duxingkei33/orangepi_PC_gpio_pyH3
想在orangepi_PC中驱动 nokia5110 需要 编译 cd8544_rpi https://github.com/nopnop2002/pcd8544_rpi
安装方法
git clone https://github.com/nopnop2002/pcd8544_rpi
cd pcd8544_rpi/
cc -o nokia nokia.c fontx.c pcd8544.c -lwiringPi -lpthread
bash ./test.sh
简单使用说明。
> 最大支持6行,4X8一行可以显示个字符20 6X8一行可以可显示12左右吧
上面编译一个nokia的可执行文件,之后我们使用这个可执行文件来操作nokia5110
常用操作指令 --- 说明 nokia r --- 清屏 ./nokia +1 "ABCDEFG" --- 在第一行以4X8显示字符串"ABCDEFG" ./nokia +2 "ABCDEFG" --- 在第二行以6X8显示字符串"ABCDEFG" ./nokia +a "ABCDEFG" --- 在第一行以6X8显示字符串"ABCDEFG" ./nokia +f "ABCDEFG" --- 在第六行以6X8显示字符串"ABCDEFG" ./nokia c 60 --- 设置对比度为60 ./nokia s --- 显示
GPIO接口(按示意图连接OrangePi gpio口和 nokia5110)
| NOKIA5110 | --- | RPi/OPi | 物理针脚编号 |
|---|---|---|---|
| 1 RST | --- | GPIO23 | (Pin#16) |
| 2 CE | --- | SPI CE0 | (Pin#24) |
| 3 DC | --- | GPIO24 | (PIn#18) |
| 4 DIN | --- | SPI MOSI | (Pin#19) |
| 5 CLK | --- | SPI SCLK | (Pin#23) |
| 6 VCC | --- | 3.3V | |
| 7 BL | --- | 3.3V/GND(*) | |
| 8 GND | --- | GND |
nokia5110的第7pin(背光) 可以选择接地(灭背光)或3.3v(亮背光)。
连接导线时注意第一个针脚旁边有小白色三角标志
supervisord配置文件
使用supervisord 管理frpc 和 状态刷新程序。
supervisord的配置文件
directory = /tmp
command = /usr/bin/frpc -c /etc/frp/frpc.ini
autostart = true
startsecs = 10
autorestart = true
startretries = 3
user = root
redirect_stderr = true
stdout_logfile_maxbytes = 20MB
stdout_logfile_backups = 20
stdout_logfile = /tmp/frac.log
[program:orangePiStatus]
directory = /root/pcd8544_rpinew/
command = /usr/bin/python /root/pcd8544_rpinew/status.py
autostart = true
startsecs = 10
autorestart = true
startretries = 3
user = root
redirect_stderr = true
stdout_logfile_maxbytes = 20MB
stdout_logfile_backups = 20
stdout_logfile = /tmp/orangepiStatus.log
frpc.ini
server_addr = serverip
server_port = 9000
token= 20192019
[orangepi_ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6223
https://github.com/fatedier/frp
操作屏幕的python脚本(status.py)
#!coding:utf-8
# by:lvusyy
#
import commands
import os
import time
SLEEPTIME=10 #every 10s
times=0
WANIP=commands.getstatusoutput("curl -s http://members.3322.org/dyndns/getip")[1]
def getdatas():
line0='UpTime:{}'
line1='TP:{}.PC:{}'
line2='LD:{}'
line3='Frpc:{}'#running stop
line4='WANIP:'
line5='Net:{}'
uptime= commands.getstatusoutput("uptime|awk '{print $3$4}'")[1][0:-1]
temp= commands.getstatusoutput("cat /sys/class/thermal/thermal_zone0/temp")[1]
psCount= commands.getstatusoutput("ps aux|wc -l")[1].replace(' ','')
load = commands.getstatusoutput("uptime|awk -Faverage: '{print $2}'")[1].replace(' ','')
global times
if times>=60:
wanip=commands.getstatusoutput("curl -s http://members.3322.org/dyndns/getip")[1]
global WANIP
WANIP=wanip
times=0
else:
wanip=WANIP
times += 1
network= commands.getstatusoutput("ping baidu.com -c 1 2>/dev/null|grep -q time && echo Online ||echo *offline*")[1]
if network.find('offline')!=-1:
times=60
frpc= commands.getstatusoutput("ps aux|grep -q frpc && echo Running ||echo Stoped")[1]
return [line0.format(uptime),line1.format(temp,psCount),line2.format(load),line3.format(frpc),line5.format(network),wanip if wanip else "**Offline**"]
def show():
''
os.system('./nokia r')
line=0
a=['a','b','3','d','e','6']
for i in getdatas():
# print("nokia {} {}".format(line,i))
os.system("./nokia +{} {}".format(a[line],i))
line += 1
os.system('./nokia c 60')
os.system('./nokia s')
def loop():
''
while True:
time.sleep(SLEEPTIME)
show()
def main():
loop()
if __name__=="__main__":
main()
之后可以设置个开机脚本来启动supervisord即可。 也可以用systemctl 管理.
之后在外网也可轻松管理orangepi了。
【后续,有必要再补充!】
玩转orangpi 之frpc远程管理+pcd8544(nokia5110 屏幕) 显示运行状态的更多相关文章
- 远程管理 KVM 虚机 - 每天5分钟玩转 OpenStack(5)
上一节我们通过 virt-manager 在本地主机上创建并管理 KVM 虚机.其实 virt-manager 也可以管理其他宿主机上的虚机.只需要简单的将宿主机添加进来 填入宿主机的相关信息,确定即 ...
- linux-图形化远程管理协议
远程管理控制方式: RDP(remote desktop protocol)协议: telnet: SSH(Secure Shell): RFB(Remote FrameBuffer)协议(图形化远程 ...
- 远程管理无管理员权限的PC客户端
一.简介 为提高操作系统稳定性.流畅度,分公司同事PC用户没有administrator权限,导致同事不能对系统进行设置.不能自行安装软件.网管使用远程管理软件(如Teamviewer.QQ)为同事提 ...
- CentOS下开启mysql远程连接,远程管理数据库
当服务器没有运行php.没装phpmyadmin的时候,远程管理mysql就显得有必要了.因为在CentOS下设置的,所以标题加上了CentOS,以下的命令在debian等系统下应该也OK. mysq ...
- Net作业调度(二) -CrystalQuartz远程管理
Source Code-1.6M 介绍 上篇已经了解Quartz.NET的基本使用方法了.但如果想方便的知道某个作业执行情况,需要暂停,启动等操作行为,这时候就需要个Job管理的界面. 本文介绍Qua ...
- Microsoft Azure Web Sites应用与实践【2】—— 通过本地IIS 远程管理Microsoft Azure Web Site
Microsoft Azure Web Sites应用与实践 系列: [1]—— 打造你的第一个Microsoft Azure Website [2]—— 通过本地IIS 远程管理Microsoft ...
- Linux/CentOS下开启MySQL远程连接,远程管理数据库
当服务器没有运行PHP.没装phpMyAdmin的时候,远程管理MySQL就显得有必要了. 第一步:开启MySQL用户的远程访问权限 mysql -u root -p mysql # 第1个mysql ...
- Linux学习笔记19-ssh远程管理
远程管理 服务器一般运行在IDC机房中,一般都是通过远程管理方式对服务器进程控制. 常见的远程管理工具: RDP(remote desktop protocol)协议,window远程桌面管理 Tel ...
- php强制转换类型和CMS远程管理插件的危险
远程管理插件是十分受WordPress站点管理员欢迎的工具,它们允许用户同时对多个站点执行相同的操作,如,更新到最新的发行版或安装插件.然而,为了实现这些操作,客户端插件需要赋予远程用户很大的权限.因 ...
随机推荐
- 整理下线段树吧 poj hotel
除了上次的新学的有 区间更新 延迟更新 区间合并 先说下区间更新以及延迟更新吧 既然是对区间的维护 在求解一些问题的时候 有的时候没有必要对所有的自区间都进行遍历 这个时候 延迟标记就派上用场了 ( ...
- (十)easyUI之折叠面板+选项卡+树完成系统布局
一.效果 二 .编码 数据库设计 数据库函数设计,该函数根据父节点id 查询出所有字节点(包括孙子节点) BEGIN #声明两个临时变量 ); ); '; SET tempChd=CAST(rootI ...
- Java容器汇总【红黑树需要再次学习】
1,概述 2,Collection 2.1,Set[接触比较少] 2.1.1 TreeSet 底层由TreeMap实现 基于红黑树实现,支持有序性操作,例如根据一个范围查找元素的操作.但是查找效率不如 ...
- C# Task.WhenAll
1.有时候我们需要同时执行一些操作,然后把这些操作的结果进行汇总,以达到用异步处理降低操作耗时的效果,此时我们会考虑使用Task,而Task.WhenAll则排上了用场. public void Is ...
- .net core 依赖注入在特性中的应用
.net core 依赖注入在特性中的应用,不知道怎么用属性注入,那么在特性中的构造函数里,怎么用接口的方法呢? 来一个简单的例子: 主要思路是把ServiceProvider 静态全局化: publ ...
- Python笔记-备忘
一.向列表添加元素 x.append(y) #末尾添加一个元素 x.extend([y,z]) #末尾添加多个元素 x.insert(index,y) 二.向列表获取元素 x[index] 三.从列表 ...
- Python 遍历文件夹清理磁盘案例
import os suffix_name_list = [".pdb", ".ilk"] def find_file(path): # 遍历文件夹 for i ...
- 第三章、drf-ModelSerializer
目录 ModelSerializer ModelSerializer 序列化 使用: ModelSerializer 反序列化 使用: ModelSerializer 序列化反序列化整合(*****) ...
- Win10建立标准账户并设置标准账户权限
Win10建立标准账户,并使用组策略对标准帐户的权限进行管理. 注意:本文内容均在管理员帐户下操作,可以只看图片按图示步骤操作即可. 一.建立一个标准账户用于公用登录 (1)按”win健+R”运行“c ...
- CentOS7.X 搭建LAMP
第一部分搭建LAMP基础环境 1.检查CentOS是否为7.x版本 2.安装LAMP中的apache,采用yum源方法安装 yum install httpd httpd-devel A ...