1. ホーム
  2. 塾の紹介
  3. Raspberry Piで温湿度センサー1
  4. 同2
見附市000塾
中学生、高校生のための理系個人塾。新潟県見附市。

Raspberry Piを温湿度センサーに(続き1)

§Wi-Fi接続

さて、Wi-Fi接続をしましょう。 このセクションの内容は、参考文献[1]に詳しく記載してあります。

STEP.1設定ファイルの作成

無線LAN子機(USBアダプター型)をUSBポートに差し込んでください。 以下のコマンドを入力してください。 "ESSID"はWi-FiルータのSSIDに、"pass"はパスワードに書き換えてください。 "(ダブルクォーテイション)は記載しません。

        pi@raspberrypi:~ $ sudo wpa_passphrase "ESSID" "pass" | sudo tee -a /etc/wpa_supplicant/wpa_supplicant.conf
        
        pi@raspberrypi:~ $ sudo vim /etc/wpa_supplicant/wpa_supplicant.conf
      

以下のようなconfファイルが作成されていれば、問題ありません。

        ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
        update_config=1

        network={
          ssid="ESSID"
          #psk="pass"
          psk=123abc456def789ghi0
        }
      

このファイルを以下のように書き換えます。iキー。

        ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
        update_config=1

        network={
          ssid="ESSID"
          key_mgmt=WPA-PSK
          proto=RSN
          pairwise=CCMP
          group=CCMP
          #psk="pass"
          psk=123abc456def789ghi0
        }
      

今度は"(ダブルクォーテイション)は残します。 Escキー、「:wq」記述、Enterキーで保存します。 通信方式で多少記述が異なるようです。

STEP.2IPの設定

以下のコマンドを入力し、ファイルを表示します。

        pi@raspberrypi:~ $ sudo vim /etc/network/interfaces
      

このファイルを以下のように書き換えましょう。iキー。

        auto lo
        iface lo inet loopback

        #auto eth0
        allow-hotplug eth0
        iface eth0 inet manual

        auto wlan0
        allow-hotplug wlan0
        #iface wlan0 inet manual
        iface wlan0 inet dhcp
        wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

        iface default inet dhcp
      

Escキー、「:wq」記述、Enterキーで保存します。

        pi@raspberrypi:~ $ sudo reboot
      

再起動をかけて設定終了です。

STEP.3Wi-Fi接続してみる

再起動が終了したら、実際にWi-Fi接続してみましょう。 ところが、今までのIPアドレスとWi-FiでのIPアドレスは別(MACアドレスではないので)になっているはずです。 そこで、1度有線でログインし、以下のコマンドを入力してください。

        pi@raspberrypi:~ $ ifconfig
      

メッセージが表示されます。wlan0の中に、

        inetアドレス:192.168.xxx.xxx
      

というような4つの数字が並んでいれば、Step1, 2が成功していることになります。 もし数字ではない場合はStep1, 2に問題があるはずなので戻りましょう。 成功していた場合は、

        pi@raspberrypi:~ $ exit
      

で1度ログアウトし、今度はWi-Fi接続でログインしてみましょう。 IPアドレスはifconfigで表示されたものを使用します。 セキュリティ警告という窓が出れば、Wi-Fi接続成功になります。 LANケーブルは必要なくなったので、抜いてもらってもかまいません。

STEP.4ifconfigの結果を自動送信

Step.3まででWi-Fi接続は完了です。 本Stepを実行するかどうかは任意です。 しかしこのままでは、使用サーバの環境によって、IPアドレスが変更されてしまう可能性があります。 そのたびにIPアドレスを調べるのは面倒かもしれません。 そこで、起動されるたびにifconfigの結果をメールで自動送信するという方法があります。 この方法をとれば、IPアドレスが変更されても1度Raspberry Piのコンセントを抜いてもう1度起動させれば、自動的にメールでIPアドレスを教えてくれるので安心です。

この方法は参考文献[2]に詳しく記載してあります。 まずはプログラムを束ねるディレクトリを作成し、その中に[2]で公開されたpythonファイルを作成します。

        pi@raspberrypi:~ $ mkdir program
        // programという名前のディレクトリを作成。
        pi@raspberrypi:~ $ ls -l
        // ディレクトリ内の一覧を表示。programという名前のフォルダがあれば成功。
        pi@raspberrypi:~ $ cd program
        // programという名前のフォルダへ移動。
        pi@raspberrypi:~/program $ sudo vim ifconfig_mail.py
        // ifconfig_mail.pyという名前のpythonプログラムを作成。
      

持っているGmailアカウントを利用します。 説明の都合上[2]のファイル参照(ソールファイルのため・・・)します。 問題がある場合は、1度 info@000juku.com 宛までご連絡お願いします。 iキー。次を記述。

        # -*- coding: utf-8 -*-
        import smtplib
        from email.MIMEText import MIMEText
        from email.Utils import formatdate
        import commands

        from_addr = 'xxx@gmail.com'
        to_addr = 'yyy@docomo.ne.jp'
        login_user = 'xxx@gmail.com'
        login_pass = 'password'

        msg = commands.getoutput('ifconfig')
        mail = MIMEText(msg)
        mail['Subject'] = 'Raspberry Pi Notification'
        mail['From'] = from_addr
        mail['To'] = to_addr
        mail['Date'] = formatdate()
        send = smtplib.SMTP('smtp.gmail.com', 587)
        send.ehlo()
        send.starttls()
        send.ehlo()
        send.login(login_user, login_pass)
        send.sendmail(from_addr, [to_addr], mail.as_string())
        send.close()
      

7行目から10行目に送信するアドレスや持っているGmailアカウントのパスワードなどを記述してください。 '(シングルクォーテイション)は記述します。 Escキー、「:wq」を記述、Enterキーを押して保存します。

        pi@raspberrypi:~ $ sudo vim /etc/rc.local
      

先のpythonプログラムが起動時に実行されるように、設定ファイルに次のコマンドを記述する。

        #!/bin/sh -e
        
        _IP=$(hostname -I) || true
        if [ "$_IP" ]; then
          printf "My IP address is %s\n" "$_IP"
        fi
        
        python /home/pi/program/ifconfig_mail.py
        
        exit 0
      

8行目を記述。/home/の後のpiはあなたのusernameを記述してください。保存。 再起動をして、しばらくしてメールが送られて来れば設定成功です。 Pythonのヴァージョンアップをすると送信されなくなってしまうようです。 原因・対策をご存知の方は、教えて頂けたら幸いです。

§リモートデスクトップ接続

Tera Termのリモート接続ではファイルの位置構造を把握しにくいですし、毎回コマンドを打つのも大変なので、リモートデスクトップ接続も行えるようにしましょう。 このセクションの内容は、参考文献[3]に詳しく記載してあります。

        pi@raspberrypi:~ $ sudo apt-get update
        
        pi@raspberrypi:~ $ sudo apt-get install xrdp
        // xrdpのインストール
        pi@raspberrypi:~ $ cd /etc/xrdp/
        // ディレクトリの変更
        pi@raspberrypi:/etc/xrdp~ $ sudo wget http://w.vmeta.jp/temp/km-0411.ini
        // 設定ファイルをダウンロード
        pi@raspberrypi:/etc/xrdp~ $ sudo ln -s km-0411.ini km-e0010411.ini
        
        pi@raspberrypi:/etc/xrdp~ $ sudo ln -s km-0411.ini km-e0200411.ini
        
        pi@raspberrypi:/etc/xrdp~ $ sudo ln -s km-0411.ini km-e0210411.ini
        // ここまでキーボードの配列追加
        pi@raspberrypi:/etc/xrdp~ $ sudo service xrdp restart
        // サービスの開始
      

WebとWindowsの検索からリモートデスクトップ接続を実行します。 「コンピュータ(C):」にはIPアドレスを入力し、「接続」をクリックします。 ユーザ名とパスワードを入力し、アクセスできれば成功です。

§日本語設定

このままでは日本語表示ではありません。 日本語に設定するには、以下のコマンドを入力してください。

        pi@raspberrypi:~ $ sudo apt-get install ttf-kochi-gothic xfonts-intl-japanese xfonts-intl-japanese-big xfonts-kaname
        
        pi@raspberrypi:~ $ sudo apt-get install ibus-anthy
        
        pi@raspberrypi:~ $ sudo reboot
      

もう1度リモートデスクトップ接続しなおして、日本語になっていれば成功です。(参考文献[4]


前のページへ次のページへ

冒頭に戻る

参考文献/URL

  1. tomoyukim's blog
  2. Raspberry Life
  3. ぼんくらケニー
  4. darkred/Raspberry Piメモ