手作りガジェット研究所のキョンまです。
ラズパイで24H稼働する自宅マイクラサーバーを作ります。
サムネの装備だと数万円かかりますが、実際必要なのはラズパイ4だけなので一万円以下でできます。
※動画で作ったサーバーは今月いっぱい(2025年1月中)解放してます。
興味のある方はアクセスしてみてください。何もありませんが。
サーバー名:※お好きな名前を
サーバーアドレス:kyonma-minecraft.mydns.jp:25565
●動画で使った主な材料です。
ラズパイ4
https://amzn.to/4fP45AQ
ラズパイ4用ヒートシンク
https://amzn.to/4fRphqb
ラズパイ用ラックマウント
https://amzn.to/4fIHfuQ
19インチサーバーラック
https://amzn.to/3C8OMFp
ラズパイ4用USB-C電源ケーブル
https://amzn.to/3DUXYhl
※Amazonのアソシエイトとして、【DIY】手作りガジェット研究所は適格販売により収入を得ています。
●電源ON時のサーバー自動起動のコードです。
【shellscript】
#!/bin/bash
cd ~/minecraft
source ~/myenv/bin/activate
java -Xms2048M -Xmx3060M -jar server.jar nogui
【systemD】
[Unit]
Description=Minecraft Server
After=network.target
[Service]
User=kyonma
WorkingDirectory=/home/kyonma/minecraft
ExecStart=/bin/bash /home/kyonma/minecraft/start.sh
Restart=on-failure
[Install]
WantedBy=multi-user.target
●OLEDモニタのCPU温度表示のコードです。電源ON時に自動起動します。
【python】
import time
import board
import busio
from adafruit_ssd1306 import SSD1306_I2C
# I2Cの初期化
i2c = busio.I2C(board.SCL, board.SDA)
# OLEDディスプレイの初期化
WIDTH = 128
HEIGHT = 32
oled = SSD1306_I2C(WIDTH, HEIGHT, i2c)
def get_cpu_temp():
# CPU温度を取得
with open("/sys/class/thermal/thermal_zone0/temp", "r") as f:
temp = f.read()
return float(temp) / 1000 # ミリケルビンを摂氏に変換
while True:
# OLEDをクリア
oled.fill(0)
# CPU温度を取得
cpu_temp = get_cpu_temp()
# CPU温度を表示
oled.text("CPU Temp:", 0, 0, 1) # 1行目
oled.text(f"{cpu_temp:.2f} C", 0, 16, 1) # 2行目
# OLEDに描画を反映
oled.show()
# 1秒待機
time.sleep(1)
【systemD】
[Unit]
Description=CPU Temperature Display on OLED
After=network.target
[Service]
User=kyonma
WorkingDirectory=/home/kyonma
ExecStart=/home/kyonma/myenv/bin/python /home/kyonma/cpu_temp_oled.py
Restart=always
Environment=DISPLAY=:0
StandardOutput=inherit
StandardError=inherit
SyslogIdentifier=cpu_temp_oled
[Install]
WantedBy=multi-user.target