LoginSignup
0
0

More than 1 year has passed since last update.

Minecraft Java版 に MCreator Link を入れて Raspberry Pi とやりとりしてkintoneにPOSTする

Last updated at Posted at 2021-09-05

Minecraft Java版 と Raspberry Pi に MCreator Link を入れて、 Minecraft と Raspberry Pi で通信できるようにする方法です。
(最後におまけで、Minecraftの操作でkintoneにPOSTできるようなコードもあるよ。)

MCreator Link の環境構築の手順としてはコチラに書いてある通りに進めます。

Minecraft (Java版) 側の設定

PC側の設定からやっていきましょう👀

MCreator Link をダウンロードする

↓コチラからお好みのMinecraft Java版のバージョンに合った MCreator Linkをダウンロードします。

バージョン1.16.5 ならこのDownloadボタン
image.png

Forgeをインストールする

↓コチラの手順通りにインストールしました。

MCreator Link(MCreator Link 1.3 [1.16.5].jar) を mods フォルダに移動する

↓ダウンロードしたMCreator Link 1.3 [1.16.5].jarをコチラを参考に移動させました。

Raspberry Pi の設定

MCreator Link のインストール

Java8がインストールされていない場合は、こちらでのコマンドでJava8をインストールします。
$ sudo apt-get install openjdk-8-jdk

Rassberry Pi に ssh接続して下記のコマンドを実行します。
$ curl -sL https://mcreator.net/linkpi | sudo bash

しばらく待つとMCreator Linkがインストールされます。
インストールが終わったら、Ctrl + Cなどを押してbashに戻ります。

Python

RPi.GPIOパッケージをインストールします。

$sudo pip install rpi.gpio

コードを書きます。
1秒ごとに Raspberry Pi の18番ピン(Minecraftからは1番ピンのことを指しているみたい)を読み取って
1だったら0に書き換えるだけのプログラムです。test.pyというファイル名で保存しておきます。

import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BCM)
GPIO.setup(18, GPIO.OUT)
for i in range(0, 60):
    print GPIO.input(18)
    if GPIO.input(18) == 1:
        GPIO.output(18, 0)
    time.sleep(1)
GPIO.cleanup()

Minecraft の操作

先程のMod導入済みの起動構成で立ち上げ、
タイトル画面が表示されたら「L」キーを押します。

するとMCreator Link のdevice設定画面が表示されます
IP Connect ボタンをクリックします。

image.png

Raspberry Pi のIPアドレスを入力して、Connect ボタンをクリックします

image.png

完了ボタンをクリックします

image.png

コマンドを入力

Minecraft 側と Raspberry Pi 側でコマンドを入力します。

Minecraftの準備

接続デバイスの確認
/link device

image.png

pinmode を output にします。
/link pinmode output

image.png

ここまでできたら、Raspberry Pi で先程のPythonのコードを実行します。
python test.py

Pythonが動いている間に

Minecraft側のコマンドで1ピンに1を書き込みます
/link digitalwrite 1 1

image.png

Minecraft側で1を立てたらRaspberry Pi側で0に戻しているのが分かるかと思います。

kintone に応用してみる

さきほどのコードですが、下記のように書き換えると
Minecraftで1ピンに1を立てたらkintoneにPOSTするという仕組みが作れたので紹介しておきます。

kintoneとRaspberry Piの連携については↓まずはこちらご参照ください。

コマンドブロックやレッドストーン回路を組み合わせて
出退勤システムなどが作れそうです。(はたして需要はあるのか)

import RPi.GPIO as GPIO
import time
import requests
import json

GPIO.setmode(GPIO.BCM)
GPIO.setup(18, GPIO.OUT)
for i in range(0, 60):
    print GPIO.input(18)
    if GPIO.input(18) == 1:
        GPIO.output(18, 0)
        url = 'https://【kintoneのサブドメイン】.cybozu.com/k/v1/record.json'
        payload = {'app':'【アプリID】', 'record':{'test':{'value':'from_RaspberryPi'}}}
        headers = {'content-type': 'application/json', 'X-Cybozu-API-Token':'【APIトークン】'}
        r = requests.post(url, data=json.dumps(payload), headers=headers)
        print r.text
    time.sleep(1)
GPIO.cleanup()

参考リンク集

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0