玩转orangpi 之frpc远程管理+pcd8544(nokia5110 lcd) 显示运行状态。

物件:

orangepi一套(电源,网线,orangepiPC)110元

nokia 5110 lcd 接线8跟 15块

展示:

系统配置

  1. 使用python操作orangepi_PC 的gpio需要安装 https://github.com/duxingkei33/orangepi_PC_gpio_pyH3

  2. 想在orangepi_PC中驱动 nokia5110 需要 编译 cd8544_rpi https://github.com/nopnop2002/pcd8544_rpi

    1.  安装方法

      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
    2. 简单使用说明。

    ​ > 最大支持6行,4X8一行可以显示个字符20 6X8一行可以可显示12左右吧

    1. 上面编译一个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 屏幕) 显示运行状态的更多相关文章

  1. 远程管理 KVM 虚机 - 每天5分钟玩转 OpenStack(5)

    上一节我们通过 virt-manager 在本地主机上创建并管理 KVM 虚机.其实 virt-manager 也可以管理其他宿主机上的虚机.只需要简单的将宿主机添加进来 填入宿主机的相关信息,确定即 ...

  2. linux-图形化远程管理协议

    远程管理控制方式: RDP(remote desktop protocol)协议: telnet: SSH(Secure Shell): RFB(Remote FrameBuffer)协议(图形化远程 ...

  3. 远程管理无管理员权限的PC客户端

    一.简介 为提高操作系统稳定性.流畅度,分公司同事PC用户没有administrator权限,导致同事不能对系统进行设置.不能自行安装软件.网管使用远程管理软件(如Teamviewer.QQ)为同事提 ...

  4. CentOS下开启mysql远程连接,远程管理数据库

    当服务器没有运行php.没装phpmyadmin的时候,远程管理mysql就显得有必要了.因为在CentOS下设置的,所以标题加上了CentOS,以下的命令在debian等系统下应该也OK. mysq ...

  5. Net作业调度(二) -CrystalQuartz远程管理

    Source Code-1.6M 介绍 上篇已经了解Quartz.NET的基本使用方法了.但如果想方便的知道某个作业执行情况,需要暂停,启动等操作行为,这时候就需要个Job管理的界面. 本文介绍Qua ...

  6. Microsoft Azure Web Sites应用与实践【2】—— 通过本地IIS 远程管理Microsoft Azure Web Site

    Microsoft Azure Web Sites应用与实践 系列: [1]—— 打造你的第一个Microsoft Azure Website [2]—— 通过本地IIS 远程管理Microsoft ...

  7. Linux/CentOS下开启MySQL远程连接,远程管理数据库

    当服务器没有运行PHP.没装phpMyAdmin的时候,远程管理MySQL就显得有必要了. 第一步:开启MySQL用户的远程访问权限 mysql -u root -p mysql # 第1个mysql ...

  8. Linux学习笔记19-ssh远程管理

    远程管理 服务器一般运行在IDC机房中,一般都是通过远程管理方式对服务器进程控制. 常见的远程管理工具: RDP(remote desktop protocol)协议,window远程桌面管理 Tel ...

  9. php强制转换类型和CMS远程管理插件的危险

    远程管理插件是十分受WordPress站点管理员欢迎的工具,它们允许用户同时对多个站点执行相同的操作,如,更新到最新的发行版或安装插件.然而,为了实现这些操作,客户端插件需要赋予远程用户很大的权限.因 ...

随机推荐

  1. 阿里云Centos7 搭建laravel

    最近在考虑学习laravel框架,唔 现在服务器搭建一下. laravel是依赖composer的,首先在linux服务器下先安装composer.运行composer需要 php 5.3以上版本, ...

  2. 洛谷 P1540 机器翻译

    链接:https://www.luogu.org/problemnew/show/p1540 题目: 题目背景 小晨的电脑上安装了一个机器翻译软件,他经常用这个软件来翻译英语文章. 题目描述 这个翻译 ...

  3. 本地虚拟机NAT模式下怎么设置才可以访问外网

    记:因为我要在本机虚拟机上安装Docker,结果发现虚拟机环境不能上网,是主机模式.我要调成net模式下才可以访问外网,这就需要怎么设置.下面文章记录一下. 在本机安装VMware软件后,系统中会自动 ...

  4. Java链表设计

    链表 1,链表的实现 在实际开发之中对象数组是一项非常实用的技术,并且利用其可以描述出“多”方的概念,例如:一个人有多本书,则在人的类里面一定要提供有一个对象数组保存书的信息,但是传统的对象数组依赖于 ...

  5. VS2019打开项目加载失败:无法找到 .NET Core SDK。请检查确保已安装此项且 global.json 中指定的版本(如有)与所安装的版本相匹配。

    问题描述: 用VS2019创建了asp.net core项目,正常运行:过几天后,再次打开,发现无法加载项目,报错无法找到.net core sdk.   分析过程: 首先怀疑环境变量的问题,重新设置 ...

  6. [JZOJ5279]香港记者题解--最短路图

    [JZOJ5279]香港记者题解--最短路图 题目链接 过 于 暴 力 分析 有一个naiive的想法就是从1到n跑最短路,中途建图,然后在图上按字典序最小走一遍,然而·这是不行的,你这样跳不一定能跳 ...

  7. element-ui重置表单并清除校验的方法

    this.$refs['activityForm'].resetFields(); 只会重置之前表单的内容,并不会清空 只需在关闭弹框的cancel方法中写上重置表单的方法即可 cancel() { ...

  8. openssh升级

    转载:(感谢作者) centos7 升级openssh到openssh-8.0p1版本 https://www.cnblogs.com/nmap/p/10779658.html centos 7 op ...

  9. python多线程与多进程异步事件框架

    多线程简单实现 #!/usr/bin/env python # -*- coding: UTF-8 -*- import logging import queue import threading f ...

  10. CircularSlider半弧形滑动条

    前言 这边文章主要 是写 一.半圆弧型滑块的设计 最近项目中需要用到半圆弧形滑块,其作用和UISlider差不多,用于拖动改变播放音乐的播放进度. 大概样子是这样的: 效果展示 特点如下: 滑动响应区 ...