树莓派的信息显示小屏幕,显示时间、IP地址、CPU信息、内存信息(c语言),四线的i2c通信,0.96寸oled屏幕

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设计

​​​​​​​等待更新。。。。

  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值