スキップしてメイン コンテンツに移動

ラズベリーパイのリンゴ風味 (Raspberry pi & Mac : HomeKit Siri で家電を操作したい) その5(Siri で Lピカ)

さていよいよ LED の点滅を Raspberry Pi で制御し、それを Siri で動かしてみることになります。
私はブレッドボードという簡単な回路の試験をする基盤を持っていますので、それを利用します。
ネットを「Lチカ」とか「Lピカ」で検索すると色々見つかると思います。
ひとまず手元にある「自動点滅」のLEDと電流制限用の抵抗を使って試験です。

写真の右に写っている穴開きのボードに部品やコードを刺して回路を作って行きます。
ブルーの LED  の足元に小さく写っているのが抵抗。これを適当に選ばないと過電流で LED が壊れます。
他のウェブサイトなどを参考にして下さい。
私は昔試験した部品の余りなので、詳細な事が分からないので部品番号などは差し控えておきます。
全部揃えても数百円の単位です。LED や抵抗などは5個とか100本などの単位で売られています。
むしろボードと、配線用のピンケーブルが一番高いかな?

これを Raspberry Pi の GPIO という端子につなぎます。
端子は、こんな配線となっています。
参照ウェブサイト:https://www.raspberrypi.org/documentation/usage/gpio/README.md



写真の方は別の機種の写真なので、ピンの横に写っている部品が異なっています。

ピンの番号は上記の通りになります。
今回は GPIO の2番(任意で良い)とGPIO の3番の上の黒丸、Ground:アース の二本を使います。
2番のピンに+5Vの電圧が掛かれば、抵抗を通して LED そしてアース(マイナス)へと電流が流れ、LED は点灯します。
2番のピンに電圧が掛からなくなれば電流は流れず、LED は消灯するというわけです。

しかし、まだ何もしていないのに LED は点灯してしまいます。
デフォルトでは5Vの出力があるようですね。

で、Raspberry Pi のターミナルから(私の場合は SSH の画面から)以下のコマンドを入力して行きます。

先ずは、どの GPIO の端子を使うかの宣言。

$ echo 2 > /sys/class/gpio/export

2番のピンを使う宣言ですね。
で、この2番のピンを入力用にするか、出力ようにするかを宣言します。
今回は出力ようなので、

$ echo out > /sys/class/gpio/gpio2/direction

この時点で LED が消灯しました。
いよいよ制御のコマンドです。
$ echo 1 > /sys/class/gpio/gpio2/value
$ echo 0 > /sys/class/gpio/gpio2/value

値を1に設定すると5Vが出力され、0に設定すると電圧がかかりません(0V)。
このコマンドを交互に叩くと LED がついたり消えたり。
って今回の LED は自動点滅なので、勝手に点滅してくれてます。

さてさてここまではパソコン(Linux)の世界の話。
ここからようやく iPhone の出番・・・・ とその前にまだ、iPhone から Raspberry Pi にアクセスする準備が残っています。
もう少しだけ Linux(Raspberry Pi)の話が続きます。

色々なサイトを確認すると、何故か make をインストールしなおす必要があるようです。
Raspberry Pi には make が標準でインストールされていないのは不思議な気がしますけど、まあインストールしましょう。
ってよくよく見たら、nodejs(Java Script)のインストールですね。
何故か make のインストールと書かれているウェブサイトが多い様な。
その後にインストールする HomeBridge で利用するんですね。

$ wget https://nodejs.org/dist/v4.0.0/node-v4.0.0-linux-armv6l.tar.gz
$ tar -xvf node-v4.0.0-linux-armv6l.tar.gz
$ cd node-v4.0.0-linux-armv6l
$ sudo cp -R * /usr/local/

と4つもコマンドを叩く必要がありました。
で、今度は HomeBridge というプログラム。
これが、iPhone と Raspberry Py を結び付けてくれます。

$ sudo npm install -g homebridge
$ sudo npm install -g homebridge-cmd

で、インストール出来たら、環境設定を行います。
ログインしたホームディレクトリに「.homebridge」という隠しファイルを作成します。

$ mkdir .homebridge

で、この中に「config.json」というファイルを作ります。
$ cd  .homebridge
$ vi config.json

中身は、

{
    "bridge": {
        "name": "Homebridge",
        "username": "12:34:56:78:9A:BC",
        "port": 51826,
        "pin": "012-34-567"
    },

    "description": "This is an example configuration file with one fake accessory and one fake platform. You can use this as a template for creating your own configuration file containing devices you actually own.",

    "accessories": [
        {
            "accessory": "CMD",
            "name": "LED",
            "on_cmd": "echo 1 > /sys/class/gpio/gpio2/value",
            "off_cmd": "echo 0 > /sys/class/gpio/gpio2/value"
        }
    ]
}


この中の「username」の後ろの「:」で区切った数値はあなたの Raspberry Pi のネットワークの「Mac アドレス」になります。
Mac アドレスは

$ ifconfig

のコマンドで表示されます。
Wi-Fi ならば wlan0 、有線LANならば eth0 のところに表示されるアドレスの英文字を大文字にして入力します。

また「pin」の数字はあなたの Raspberry Pi を認識する番号です。
好きな数字(8桁をハイフォンで区切る)にしてください。
複数の Raspberry Pi を使うのであれば、個々に違う数字が必要です。

最後に

$ homebridge

で実行します。
コマンドの結果がずらっと表示され、最後に pin でした数字が灰色の背景で表示されます。
これで Raspberry Pi の方は準備完了です。

やっと iPhone の設定です。
まずは App Store からホームキットを動かすアプリをダウンロードします。
幾つかあるようですが、今回は「insteon+」と言うものを使います。
起動するとこんな画面になります。



まずは「New Account」でユーザ登録をします。
新規登録を済ませたら、今度は先ほど設定した「LED」を此処に登録して行きます。
「Home」をタップし、
右上の「+」をタップします。


次にデバイスを探すのですが、ここで画面下の「HomeBridge」をタップします。



勝手に登録したコマンドというか、アクセサリというかなので、当然「認定」なんて受けていませんので、「自己責任」において「このまま追加」をタップします。
何故かカメラが起動しますが、物によってはバーコードかなんかが使えるんでしょうかね?
今回はそのまま画面下の「コードを手動で入力」の文字をタップします。
先ほどの「pin」コード(例:012-34-567)を入力します。



登録されたら「Done」をタップ。





こんな感じになります。



LED をタップするとオン/オフのスイッチとその中間に現在のステータス(オンかオフか)が表示されています。
もちろんこのままこのスイッチで LED をオン/オフ出来ます。

ここで「ホーム」ボタンを押してホーム画面へ移動し、さらに今度は「ホーム」ボタンの長押しで「Siri」を起動します。
「LED をオンにして」または「LED を点けて」と言えば、「LED をオンにしました」という返事と共に LED が点灯(今回は点滅)します。
同じように「LED をオフにして」または「LED を消して」と言えば、LED は消灯します。

言葉で何かが動くって、やってみるとなかなか面白いです。

ちなみに、ホームの下にルームを作ってやったり、個々の機器に適当なアイコンをつけたりできます。
「俺の部屋のエアコンを点けて」と「リビングのエアコン点けて」とか、同じエアコンでも部屋とかを分けて設定できるんですね。
パソコン部屋があるイメージでアイコンを選択してみました。


次回は、自分の装置の赤外線リモコンを学習させて、スタンドとかエアコンのオン/オフに挑戦する予定です。

コメント

このブログの人気の投稿

Apple ID の変更方法

2017/06/10 :追記

Apple ID の変更方法が変更されました。
以下の最新情報をご確認下さい。

アップルIDの変更

Apple ID をキャリアのメールアドレスなどで作成し、その後にキャリアのメールアドレスを変更してしまい、困っている方が多い様です。
皆さん Apple ID に利用しているメールアドレスを変更すれば、iPhone に使用している Apple ID のメールアドレスも自動的に変更されるものと、勘違いしている様に思います。

また、Apple ID はキャリアのものと勘違いしているのか、キャリアを変更したのだから、Apple ID もそのまま、次のキャリアメールのアドレスになると思っている方も、おられるようです。

Apple ID はあくまでもAppleが発行するIDです。
キャリアとは無関係で、キャリアにそのIDに関する情報が渡ることもありませんし、キャリアの情報がAppleに渡ることもありません。

IDに使用するメールアドレスを変更したいのであれば、自分でAppleのウェブサイトで手続きする必要があります。

https://appleid.apple.com/ja_JP

にアクセスすると、「Apple ID を管理」というボタンがあります。
そこで、現在の(あるいは勝手に変更してしまう以前の)メールアドレスでログインし、手続きをします。
ここで、新しく利用したいメールアドレスを追加すると、本人確認のメールがそのメールに届くので、メールに記載されているURLにアクセスすると、承認されます。
メールアドレスが承認されると、そのメールアドレスをIDに登録し直せます。

最終的にIDのメールアドレス変更直前に、iPhone(該当 iOS 機器やMac 全て)の iCloud と iTunes & App Store から一度ログアウトしてください。
その際に、iPhone にデータを残す必要はありません。
新しいメールアドレスの ID でログインすればまた同期されてデータが戻ります。
残してしまうと、再同期の際に間違ってマージしてしまい、データが二重登録される可能性があります。
もっとも再同期の際に間違えて、iPhone の(何もない)データで、iCloud を上書きすると、全てのデータが失われるので、それよりはマシですけど。

なお、使用…

iPhone を日常使う上での注意(ちょっとした不具合を解消するには)

先日はバックアップの重要性について書きましたが、今日は日常の注意を書いて見たいと思います。
まずは充電の方法から。 皆さん、充電時にはどんなことに注意していますか?
充電は、できるだけバッテリーを使い切るぐらいまで行わず、できれば80〜90%で終了させましょう・・・・なんてやっていませんか?
以前にも充電について書きましたが、基本的には「気にする事は無い!」です。
好きな時に充電をし、好きな時に終えれば良いです。
上記の注意は「ニッケル系」のバッテリー、つまり市販の単三型などの充電式バッテリーについての注意です。昔はニッケルカドミウム、今ではニッケル水素のバッテリーですね。
これは、時々リフレッシュさせる必要があります(昔の人工衛星も年に2回ほどリフレッシュ運用というものを行っていました)。
しかし、現在携帯電話に使用しているリチウムイオン系のバッテリーでは其の様な事は必要ありません。
と言うより、ニッケル系の様なリフレッシュ運用はかえってバッテリーの寿命を縮める(充放電回数を無意味に増やす)だけです。
バッテリー一般の注意である、充電中に熱を持たない様に注意する(寝る時に布団や枕に覆われた状態で充電するなど)こと、電子機器一般の注意である日向や暖房機の前に放置しない、などを守れば十分です。
何故かは良く分かりませんが、昔の iOS では充電時のマークが、稲妻マーク(充電中)とプラグマーク(充電器に接続されているが充電はされていない:充電は終了している)に分かれていました。
今は同じ稲妻マークだけですが、ひょっとしたらプラグマークになるとあわてて充電器から外そうとする人がいるのを懸念しての仕様変更かもしれません。
基本的に「充電器に接続されている」「Wi-Fi に接続されている」「スリープ状態にある」という三つの条件を満たしていれば、1日に一回「iCloud による自動バックアップ」が実行されます。
一番条件の揃いやすいのは就寝時ですよね?
つまり少なくとも寝る前に充電を開始して、朝まで放置しましょうというのがアップルの考え方。その間にバックアップしておきますよという事ですね。

さてその寝る前にあなたは何かしていますか? 私はほぼ毎日、寝る前には動作しているアプリを全て終了させています。
「何のため?」それは
「メモリを解放するため」です。 メモリを解放するアプリ…

同期とバックアップ

どうも iPhone や iPod Touch 、 iPad などで iTunes や iCloud との同期設定をきちんと行わず、バックアップなども行っていない方が多く居られる様です。
また、同期やバックアップすると、メールの設定や連絡先などのデータが無くなる、とかいうデマに振り回され、怖がっている方も多い様です。
そこで出来るだけ簡単に、その必要性とやり方を、書いておこうと思います。


まずバックアップの必要性。 これは何も言う事は無いはずです。
万が一 iPhone が故障したり、紛失したりした場合、このバックアップが無いと、全てのデータを失います。
バックアップが有れば、新しい iPhone でも、バックアップ時点の状態に戻せます。
バージョンアップ時も同じですし、新型への機種変の時も同じです。
バックアップが無ければ、初期状態から設定し直さなければいけません。
しかしバックアップを取った後に、受信したMMSメールや写真は、失います。
なので、出来るだけこまめにバックアップをする必要があります。
理想的には毎日行うことです。

次に同期。CDから iTunes に入れた音楽、逆に iPhone で購入した音楽、アプリなどは同期作業によって iPhone に入れたり iTunes にバックアップしたりします。
写真や動画なども同じです。
好きなものを持ち歩いたりするのであれば、同期は必要ですね。
同期の作業は、その始めのステップとして、バックアップを行いますから、バックアップのためにも、必要な作業となります。


現在は iCloud のサービスもあり、同期も重要項目です。
同期とは二つ以上のものを、同じ状態に保つ作業です。
現在の iPhone であれば、iCloud をその同期の中心にし、個々の機械(パソコンや iPhone )が同期を取ります。

iCloud は常に最新の状態が保たれます。
必要であれば、パソコンから iCloud のウェブサイトにアクセスして、利用することもできます。
しかしなぜか、iOS 機器からは、通常の iCloud のウェブ利用はできません。

連絡先などは、iCloud を利用する事で、グループ分けなどが簡単に出来ます。
こちらもなぜか iOS 上では、グループ分けの作業は出来ないのですが、iCloud で行ったグループ分けは利用出来ます。
ウェブサイト上で…