当前位置:网站首页>树莓派的信息显示小屏幕,显示时间、IP地址、CPU信息、内存信息(c语言),四线的i2c通信,0.96寸oled屏幕
树莓派的信息显示小屏幕,显示时间、IP地址、CPU信息、内存信息(c语言),四线的i2c通信,0.96寸oled屏幕
2022-08-01 21:15:00 【一个人先生咯】
0、前提:树莓派里面已经有了wiringPi这个软件包和cmake,若没有请移步到(wiringPi参考链接)(cmake参考链接)参考链接自己安装
1、连接好线路和打开树莓派i2c
1.1、接线
使用的四线oled gnd vcc scl sda对应连接起来就行
具体接线如下图:
1.2、打开i2c
输入命令 sudo raspi-config,选择第3项启动第5项的i2c
2、下载好我写好的oled驱动代码GitHub链接:GitHub - ShangHTao/Raspberry-sysinfo-display: 树莓派i2c接口驱动的0.96寸的oled显示屏,可以显示ip地址cpu占用率和温度等
2.1例如我们首先进入桌面执行下面操作
cd ~/Desktop
mkdir test
cd test/
git clone https://github.com/ShangHTao/Raspberry-sysinfo-display
这样就在桌面上创建了一个test文件夹里面放着oled显示程序
2.2构建代码,执行下面的操作
cd Raspberry-sysinfo-display/
ls
输入命令把CMakeCache.txt文件删除才能cmake
输入命令
rm CMakeCache.txt
cmake .
make
如图所示,构建出来了一个叫做oled_i2c_show_status的可执行程序
可以简单使用./oled_i2c_show_status执行一下看看oled是否显示了对应内容
推荐后台运行输入指令 ./oled_i2c_show_status & (多加一个&)
3、设置开机自启动
问题1:在 /etc/rc.d/rc.local添加sudo nohup ~/oled_i2c_show_status &开机确实是会自动运行,但是过一段时间这个任务就被杀死了不值得为什么,有没有好心人解释一下。
问题2:在~/.config文件中创建的autostart.desktop中设置开机自启动也是运行sudo nohup ~/oled_i2c_show_status &,运行一段时间后也背杀死,请问有好心人知道吗?
ps:直接运行sudo nohup ~/oled_i2c_show_status &可以一直运行在不会被杀死,为什么?
思考:我创建个shell脚本,然后开机自启动,在shell里面执行sudo nohup ~/oled_i2c_show_status &是不是就可以不被杀死呢?
我知道了如何防止系统杀死命令再更新,格式什么也后期调整,现在还存在很多错误,望指正。。。。。。。(以上内容均为小白学习linux的记录,实属小白,欢迎大家交流,需要原码的同学可以浏览提出建议)
以上问题均已发现,是由于循环调用了popen()函数但是报错段错误,找了很多原因之后无法解决。
后面又使用fopen()函数确实可能提高运行的后台时间,但是还是错误(报错too many open files,可是明明已经使用了fclose()函数还是报错),很让人恼火。怀疑是fopen()毕竟是标准版库函数,后来切换成系统函数open()依然报错too many open files,时钟到了一定程度杀掉后台。
最后也是建了个shell脚本(我起名为)检测有没有被杀,如果被杀就再次执行,否则就继续检测,具体内容如下:
#!/bin/sh
while :
do
if [ $(ps -ef | grep -c "oled_i2c_show_status") -lt 2 ];
then
$( /home/pi/autostart/oled_i2c_show_status &) ;
fi
sleep 60s
done
确实是在被杀死的时候又继续执行了oled_i2c_show_status,但是感觉指标不治本。后去我试试能不能用python里的os.popen(),python调用c库函数。
4、python设计
等待更新。。。。
边栏推荐
猜你喜欢
随机推荐
CS-NP白蛋白包覆壳聚糖纳米颗粒/人血清白蛋白-磷酸钙纳米颗粒无机复合材料
那些关于DOM的常见Hook封装(二)
Review Set/Map basics with these two hooks
方舟生存进化是什么游戏?好不好玩
sizeof的详细解说和与strlen的区别
深拷贝浅拷贝
写给刚进互联网圈子的人,不管你是开发,测试,产品,运维都适用
【Unity实战100例】文件压缩Zip和ZIP文件的解压
C专家编程 前言
网红驼背矫正产品真的管用吗?如何预防驼背?医生说要这样做
JSD - 2204 - Knife4j framework - processing - Day07 response results
Pytorch框架学习记录9——非线性激活
JSD-2204-Knife4j框架-处理响应结果-Day07
How to choose Visibility, Display, and Opacity when interacting or animating
分类接口,淘宝分类详情 API
附录A printf、varargs与stdarg A.2 使用varargs.h来实现可变参数列表
【Kaggle】Classify Leaves
Realize the superposition display analysis of DWG drawing with CAD in Cesium
C Expert Programming Preface
How to make the timer not execute when the page is minimized?