![見出し画像](https://assets.st-note.com/production/uploads/images/26312176/rectangle_large_type_2_bffb31554b4f5b5704e0a47587222287.jpg?width=1200)
iPhoneからRaspberry Piのプログラムを実行しよう
この記事ではiOSに標準装備されている「ショートカット」アプリを用いてRaspberry PiとSSHで接続する方法を説明しています。
必要なもの
Raspberry Pi
これに関しては特にモデルは関係ないかと思います。ただしiPhoneと同じネットワークを利用して接続を行うため、ラズパイがネットワーク環境下にあることが条件です。この記事ではRaspberry Pi 2 model b を有線LANで接続したものを用いて行います。
iPhone,iPad
筆者はAndroid端末を持っていないのでiPhone,iPadを用いて行います。筆者の環境ではiPhone Xs max,iPad Pro 2020から接続を試みますが、それ以外の端末でもシステムバージョンがiOS13であれば問題なく作動するかと思います。
iPhoneにショートカットアプリをダウンロード
iOS13からiPhone購入時に標準で搭載されていますが、頻繁に使わない方は削除してしまったかもしれませんし、それ以前のバージョンを使っている場合はダウンロードされていないかもしれません。その場合はApp Storeから再度ダウンロードしましょう。
ショートカットとは?
ここでのショートカットはアプリ、またはこのアプリを用いて行われるプログラムのことを指します。簡単に説明すると、複数の作業を自動化、集約することができます。詳しくは別の記事、またはショートカットの活用法を解説したYouTubeなどがたくさんありますのでそちらを参考にしてください。
こちらのサイトではショートカットの使い方などを詳しく説明されていたのでよかったら参考してください。
また、ショートカットアプリには既に様々なショートカットが用意されており、アプリ起動時のの画面右下にあるギャラリーから見ることができます。
いろいろなショートカットがありますがこれらを自分で作成することも可能です。左下のマイショートカットから「ショートカットを作成」を押してみます。新規ショートカットが構築されます。今回はここからSSH接続を用いてラズパイにコードを送るプログラムを作成していきます。
Raspberry Pi側の準備
前回用いたLEDの点滅プログラムを用います。詳しくは前回の記事を参考にしていただきたいのですが、LXterminalからコードを実行することで、ブレッドボード上のLEDが点滅する仕組みを作りました。今回はこのコードをiPhoneから実行させます。
前回作成したプログラムのコードは以下のものです。
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setup(14,GPIO.OUT)
GPIO.output(14,1)
GPIO.output(14.0)
GPIO.cleanup()
これをled.pyという名前で保存して、LXterminalにて
pi@raspberry:~$ sudo python led.py
と入力することで14番ピンに出力を送りました。
ラズパイの環境のみでLEDを点滅させることができたら次に進みましょう。
Raspberry PiでIPアドレスを確認する
IPアドレスは、ネットワーク上の機器を識別するために割り当てられていて、インターネット上での住所のような役割を担っています。このIPアドレスを用いてiPhoneからラズパイのネットワークを特定、接続するので、ラズパイのIPアドレスを調べてあげる必要があります。
この記事ではIPアドレスの固定の方法は書きませんが、もし無線LANを用いる場合などで不具合がおきたときは固定することを検討するとよいかもしれません。
ラズパイに接続しているLANのIPアドレスを調べるには、LXterminal上で以下のコードを入力します。
pi@raspberry:~$ ifconfig
実行結果として以下のようなものが得られました。実況環境によって表示される内容が異なるかもしれませんが、この中の192.168~で始まるものがIPアドレスであることが多いです。
筆者の環境ではIPアドレス192.168.0.21であることが確認できました。
iPhone側の準備
ショートカットアプリを開いて、マイショートカットから新しいショートカットを作成します。
Appおよびアクションを検索から「ssh」で検索しましょう。
「SSH経由でスクリプトを実行」というアクションが出てくるのでそれをタッチ、すると以下のような表示になります。
「表示を増やす」から詳細の設定をしていきます。
ここにラズパイの情報を入力していきます。
「ホスト」には先ほど調べたIPアドレスを、「ユーザ」には普段ラズパイでログインするときのユーザーネームを、「パスワード」も同様にラズパイで設定しているものです。設定した覚えがない場合はデフォルトのものを入力すればよいです。ラズパイではデフォルトのユーザとパスワードはそれぞれ、"pi"と"raspberry"です。
最後に「入力」からラズパイにコードを送ります。ここに入力する内容はLXterminalに入力する内容と同じです。
それ以外は特に変更しなくても大丈夫です。
スクリプトを実行してみる
iPhone上の画面右下にある実行ボタンを押してみましょう。最初の起動時には警告が出ますが問題なさそうなら接続しましょう。
これでラズパイ側に出力できていたら接続は成功です。筆者の場合、LEDの点滅を確認できました。
実行環境を整える
ここまでの手順だと、1.ショートカットアプリを開く、2.作ったショートカットの実行ボタンを押す、の流れが必要です。
他のアプリと違うショートカットアプリのいいところはiPhoneのホーム画面に簡単に追加することができるところです。LINEやカメラアプリのようにアプリのアイコンを1タップするだけで実行することができます。
まずは先ほど作ったショートカットから「次へ」を選択、適当に名前を付けて保存します。
作成したショートカットの右上をタップして詳細を確認、実行ボタンの左にある「共有」からホーム画面に追加を選択します。
これでホーム画面に追加されました。
1タップでLEDの点滅を確認できました。
まとめ
今回はショートカットアプリを用いました。これを用いて他にもいろいろショートカットを作成できますし、身近にあるiPhoneから様々な処理を行えるRaspberry piへと接続できるため、様々な可能性を感じます。
今後はiPhoneにもっと複雑な処理をさせてみようと思います。