3D打印树莓派4B外壳—内置UPS和统计显示信息
这次使用树莓派4B搭建一个服务器,并且从网上找到了一个喜欢的外壳。
这是MICHAEL KLEMENTS在2021年构建一个内置UPS和OLED统计数据显示的迷你Raspberry Pi服务器项目,通过内置的UPS,确保Pi在发生电源中断时保持运行。
项目文档地址:https://www.the-diy-life.com/mini-raspberry-pi-server-with-built-in-ups/。
此次使用的外壳来自T站的一个项目,不同于MICHAEL KLEMENTS文档中的外壳,与MICHAEL KLEMENTS不同的是,风扇的位置调到了顶部,底部改为了亚克力板。
外壳地址:https://www.thingiverse.com/thing:5027738
外壳视频地址:https://www.bilibili.com/video/BV1ub4y117i1
成品展示
运行
树莓派4B3D打印外壳+ups显示ip等信息
B站视频地址:https://www.bilibili.com/video/BV1AT4y1D7DA
正面
侧面
后面
顶部
底部
材料清单
一开始是从网上找的清单,但是其中有很多没用的材料,导致浪费了不少钱和时间,以下是我踩坑组装时用到的材料,准备动手的小伙伴还需要额外准备工具,因为外壳太小,所以拧螺丝也很费力,手很难伸进去拧动。
建议更新UPS固件完成后再组装。
材料 | 使用数量 | 说明 | 购买数量 | 价格(元) |
---|---|---|---|---|
树莓派4B 8G | 1 | 树莓派开发板 | 1 | 1050 |
1T固态U盘 | 1 | 存储系统,可用TF卡代替 | 1 | 950 |
卧式冰塔 | 1 | 为树莓派提供散热,UPS Plus模块需要在树莓派的下方 | 1 | 119 |
官方电源 | 1 | 树莓派电源,可省略,连接UPS Plus之后,树莓派通过UPS Plus供电 | 1 | 53.90 |
树莓派UPS Plus | 1 | 通过撞针为树莓派供电 | 1 | 168 |
0.96 寸蓝色oled屏(新版本) | 1 | 显示系统和UPS Plus基本信息 | 1 | 10.8 |
18650锂电池 | 2 | 存储电量 | 2 | 6.5 |
3D打印外壳 | 1 |
打印文件链接:https://pan.baidu.com/s/1u2MkoeruZ6zd4Q0x_OG-Vw 提取码:5odz |
1 | 22 |
3D打印UPS开关按钮 | 1 |
打印文件链接:https://pan.baidu.com/s/11sQ8vt5WbT6K5GXTe3HOpw 提取码:e98w |
1 | 20 |
亚克力板切割两边和底部 | 1 |
切割文件链接:https://pan.baidu.com/s/1CU8HF65876pP3vRlw-WixA 提取码:obl1 |
1 | 15 |
TF4硅脂 | 1 | CPU散热 | 1 | 6.20 |
40P杜邦线母对母10cm | 4 | 连接oled和树莓派GPIO引脚 | 1 | 1.35 |
M2 螺母 | 8 | 固定oled屏和顶部风扇 | 100 | 1.20 |
M2.5 螺母 | 2 | 固定底板 | 100 | 1.20 |
M2 x 6 内六角螺丝 | 4 | 固定oled屏 | 50 | 4.50 |
M2 x 14 内六角螺丝 | 4 | 固定顶部风扇 | 100 | 6.96 |
M2.5 x 8 内六角螺丝 | 14 | 固定侧边亚克力板 *8,固定底部亚克力板 *4,固定M2.5x14+6单通铜柱 *2 | 50 | 3.20 |
M2.5 x 20 + 6 单通铜柱 | 2 | 底部固定UPS Plus *2,UPS Plus自带 | 0 | 0 |
M2.5 x 14 + 6 单通铜柱 | 2 | 固定UPS Plus *2 | 10 | 3.70 |
M2.5 x 7 + 6 单通铜柱 | 4 | 固定UPS Plus和树莓派,UPS Plus自带 | 0 | 0 |
2443.57 |
安装Ubuntu Server系统
参考另一篇文章:https://blog.csdn.net/qq_20185737/article/details/123167673
使用I2C
进入系统,运行以下命令,安装i2c-tools、python3-pip
sudo apt install -y i2c-tools python3-pip
使用pip安装smbus2
sudo pip3 install smbus2
通过OTA更新UPS固件
UPS Plus文档地址:https://wiki.52pi.com/index.php?title=EP-0136,右下角可以设置中文。
注:在升级过程中不要关闭电源或断开网络连接。如果升级失败,UPS PLUS将无法正常工作。
将树莓派和UPS PLUS使用铜柱固定起来。撞针为压下状态。
按住UPS Pro开关键,将电池插入电池舱。
插入电池后等待Raspberry Pi运行,在系统终端执行以下python脚本完成升级。
cd ~ git clone https://github.com/geeekpi/upsplus.git cd ~/upsplus python3 OTA_firmware_upgrade.py
注:第一次运行时,可能会提示设备没有注册。如果是合法的设备,只需等待几秒钟,再试一次。
- 升级后,UPS Plus将被关闭,请拔掉电源插头,从UPS Plus中取出电池。
- 将电池插回UPS Plus,然后连接电源并按下电源开关,将其打开。
系统运行正常即可将树莓派和UPS Plus关机,拆开树莓派和UPS Plus进行组装。
设置自动关机保护
在系统的终端运行
curl -Lso- https://git.io/JLygb | bash
当遇到低电量时,它将自动关闭并关闭UPS,当交流电来临时,它将重新启动。
检测电池状态
切换到upsplus目录下
cd /usr/mydata/upsplus
注:这是我自己移动之后的目录,upsplus是在更新UPS固件时从github上clone的。
运行命令执行upsplus.py文件
python3 upsplus.py
查看输出信息
- Current information of the detected Raspberry Pi(树莓派信息)
- Batteries information(电池信息)
- Voltage of Batteries:电池电压
- Battery Current (discharge/Charging) Rate:电池电流(放电/充电)率
- Currently not charging/Currently charging via Type C Port:当前未充电/使用Type C充电
在 OLED 显示屏上显示 UPS 统计数据
脚本信息:https://github.com/suitbaby/raspi-ups-stats
进入系统,打开终端,运行命令下载Adafruit的Python库用于OLED显示器
cd ~
git clone https://github.com/adafruit/Adafruit_Python_SSD1306.git
cd Adafruit_Python_SSD1306.git
sudo python3 setup.py install
下载raspi-ups-stats
cd ~
git clone https://github.com/suitbaby/raspi-ups-stats.git
下载字体文件:https://www.dafont.com/pixel-operator.font,将PixelOperator.ttf上传到raspi-ups-stats目录
进入raspi-ups-stats
目录运行stats.py
,oled屏就会显示信息了。
python3 stats.py
设置开机自动启动
创建目录/opt/stats/
mkdir /opt/stats/
将raspi-ups-stats
目录下的PixelOperator.ttf
,stats.py
文件复制到/opt/stats/
目录
切换到raspi-ups-stats
目录,运行以下命令,将脚本文件复制到/etc/systemd/system/
目录下
sudo cp stats.service /etc/systemd/system/
运行命令重新加载
sudo systemctl daemon-reload
sudo systemctl enable --now stats
最后重新启动即可
reboot
安装注意事项
UPS Plus模块必须在树莓派4B的下方
安装顺序:UPS Plus,树莓派,oled屏幕,风扇,冰塔。
使用杜邦线连接风扇、冰塔时,需要注意GPIO的位置
如屏幕引脚对着我,杜邦线的顺序从左→右为黑白灰棕,插入树莓派的位置为:
第2排从右→左:第一个:灰;第二个:黑;第三个:白;第五个:棕。
冰塔的支架是螺丝从下往上拧还是从上往下拧。
- 从下往上这种情况相当麻烦,需要先将树莓派和UPS Plus模块之间的后两个螺丝拧到冰塔上。
- 从上往下这种使用M2X8或者M2X10的往下拧就行,不过单通铜柱需要方向向下,所以UPS Plus模块下方的铜柱需要改成双通铜柱。
脚本注意事项
如果出现执行python3 XXXX报错时看看是不是缺少相关的库,安装即可。
系统启动时oled屏不显示信息,只有在运行stats.py时oled才会刷新信息和跳动,则使用
systemctl status stats
查看
stats
自启动服务状态,如果是**(code=exited, status=203/EXEC)**,则需要在stats.service
中进行修改:ExecStart=/usr/bin/python3 /opt/stats/stats.py
运行
python3 stats.py
时输出/bin/sh: 1: vcgencmd: not found
可忽略,安装vcgencmd
解决。
报错解决
报错 ModuleNotFoundError: No module named ‘ina219’
执行以下命令安装pi-ina219
sudo pip install pi-ina219
报错:ModuleNotFoundError: No module named ‘PIL’
执行以下命令安装:
pip install Image
报错:ModuleNotFoundError: No module named ‘RPi’
执行以下命令安装:
pip install RPi.GPIO
3D打印树莓派4B外壳—内置UPS和统计显示信息相关推荐
- php打印函数console,PHP内置Web Server探究(2)自定义PHP控制台输出console函数
PHP内置Web Server探究(二)自定义PHP控制台输出console函数 我们在开发APP的服务器端,当和APP进行联调时通常需要实时跟踪URL请求和参数的接收情况. 但PHP并没有像Pyth ...
- Windows打印体系结构之Windows内置打印驱动程序
时间是一种很残酷的东西,它只会冲淡能够冲淡的,但也会洗尽铅华帮你留下该留下的. 1.3.4.Windows内置打印驱动程序 现在的Windows下的打印机驱动程序通常分为V4打印机驱动程序(V4 Pr ...
- 解决win10内置自带应用显示语言为英文(包括商店,邮件等)
刚刚买了美版电脑,win10系统.按照网上汉化教程,成功汉化,也就是区域,语言,输入法等能设置成中文的全部设置完成.突然发现自带的应用全部为英文.然后一直上网搜资料尝试.最后总结了以下方法,供大家参考 ...
- Cesium(4):使用cesium内置的图钉样式显示geojson点
1.版本 cesium 1.92.0 2.cesium内置的图定样式 3.方法一 Cesium.PinBuilder:一个实用类,用于生成作为画布元素的自定义贴图接点.它有四个函数: fromColo ...
- 发现一款3D 打印的pcDuino外壳
2019独角兽企业重金招聘Python工程师标准>>> http://www.thingiverse.com/thing:97538 外壳 转载于:https://my.oschin ...
- stc89c52开发板遥控器解码 红外线发射 内置 eeprom 存储 串口显示编码
单片机,大概三年前,就买了一本 <爱上单片机> 最后就学会,用面包板了,编程书上基本没讲. 看原理图,看时序图,看数据手册, 都没讲. 而且书上自带的代码写的很烂. 1,缩近控制不好 2, ...
- Mac 下texstudio内置pdf浏览器不显示中文
机器: MacOS Monterey Texstudio版本:2.12.16 问题:加载ctex宏包后,内建pdf阅读器不显示中文,外部pdf浏览器可以正常显示中文. 解决方式主要参考:知乎 记录一下 ...
- vscode内置浏览器 开发vue 显示网址
最近使用VS Code开发vue项目,需要经常在编辑器和浏览器之间来回切换查看页面效果,感觉特别繁琐!今天就来分享下如何在VS Code中实时预览HTML页面或VUE/React/Angular等页面 ...
- 最小人工智能硬件资源JetsonNano VS 树莓派4B
近年来,人工智能领域发展火热,而在硬件资源开发上也是百花齐放,百花争鸣,2019年NVIDIA公司在NVIDIA GPU大会上发布了JetsonNano套件,在紧凑.易用的平台上提供现代AI最强大的性 ...
- 【Unity】3.1 利用内置的3D对象创建三维模型
分类:Unity.C#.VS2015 创建日期:2016-04-02 一.基本概念 Unity已经内置了一些基本的3D对象,利用这些内置的3D对象就可以直接构建出各种3D模型(当然,复杂的三维模型还需 ...
最新文章
- Maven(八)Eclipse创建Web项目(复杂方式)
- 戴尔-EMC联邦:存储业务该如何处理?
- SAP S/4HANA销售订单的类型建模细节
- windows系统-函数的条件分支实现用汇编语言解释
- 个人项目耗时对比记录表
- linux将文件下载到本地windows,XSHELL下直接下载文件到本地(Windows)
- 快来了解下Snappy Ubuntu是什么
- nsa php版本,mnsa网络
- MATLAB+simulink仿真学习
- 【毕业设计】深度学习指纹识别算法研究与实现 - python opencv
- 步进电机c语言驱动原理,连接PC的步进电机简单驱动电路
- 绝妙一招 教你如何拍出烟雾缥缈的作品
- RedHat7.6 Linux系统图形界面安装教程
- 2017-2018-2 20179209《网络攻防》第八周作业
- Excel中RATE函数的Java实现欢迎加入我的星球
- Ping IPv6在线测试检测 testipv6 加速镜像
- 仿照vue实现双向数据绑定兼容IE6
- 如何输出一个国际象棋棋盘
- g++/gcc compile_options
- ESP8266作为arduino D1 wifi模块应用时引脚序号说明(与UNO对比异同)2.5.0版本开发板库