白旗製作所

Raspberry Piの初期設定

Raspberry Piの初期設定方法を記載します。
既に色々な方が記事にしているので今さらですが、自分の環境ではそのままだと使えなかったものが多数あったので自分用にまとめておきます。
ちなみに、使用しているRaspberry PiはModel A+ V1.1です。

①Raspberry PiのOSイメージの用意
 4GB以上のMicroSDカードを用意。
 https://www.raspberrypi.org/downloads/raspbian/
 からイメージを落として、
 Win32DiskImagerで焼く。


②起動
 MicroSDカードをRaspberry Piに入れて、キーボード、HDMIケーブルを指して起動。
 普通に起動すればOK。OSによってGUIかCUIかが異なる。
 初期ユーザIDとパスワードは
 ID: pi,
 pass: raspberry
 パスワードの変更は
 passwdコマンドで行う。
 
 
③日本語設定
 ターミナルから、sudo raspi-configで初期設定画面に入る。
 4. localisation optionsのChange Localeで、jp EUC-JPと、jp UTF-8をスペースで選択してOK。デフォルトはen.GB-UKにしておく。
 Change TimezoneでAsia Tokyoを選択。
 Change Keyboard Leyoutで105のJapaneseのデフォルトを選択して再起動しておく。

 (ネットに繋いだ後)
 sudo apt-get install ttf-koch-gothic xfonts-intl-japanese xfonts-intl-japanese-big xfont-kaname
 sudo apt-get install uim uim-anthy
 sudo apt-get install jfbterm
 を行い、フォントを導入してから、再起動。

④SSHの有効化
 5. Interfacing OptionsのSSHをEnableにする。
 (7. Advanced Optionsにはいっていることもあり。OSのバージョンに寄る)

⑤WiFi接続
 PLANEX 無線LAN子機 (USBアダプター型) 11n/g/b 150Mbps MacOS X10.10対応 GW-USNANO2A
 をUSBコネクタに指す。

 GUIでSSIDがステルスでなければ右上のアイコンからWiFi接続出来る。
 ステルスの場合、
 sudo sh -c "wpa_passphrase [SSID] [PASS] >> /etc/wpa_supplicant/wpa_supplicant.conf"
 でconfファイルを作った後、
 sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
 でwpakeyの下に
 scan_ssid=1を追加して保存して終了(Ctrl+xでYes(y), Enter)
 ifconfig wlan0で接続されたか確認。接続されなければ再起動する。

 コンソールの場合、
 sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
 の最終行に
 network={
  ssid="[SSID]"
  psk="[PASS]"
 }
 を追加して保存
 
⑥ IPアドレスの固定
 sudo nano /etc/dhcpcd.confで
 interface wlan0
 static ip_address=192.168.0.X/24
 static routers=192.168.0.1
 static domain_name_servers=192.168.0.1
 を末尾に追加して再起動
 注意:IPアドレスを確認する場合はifconfigを使う
 
⑦ セキュリティ設定
 raspberry piのアップデート
 $ sudo rpi-update
 $ sudo reboot
 rootへのパスワード設定
 $ sudo passwd root
 ユーザー名の変更
 $ sudo usermod -l [新ユーザー名] pi
 sshのポート番号変更して再起動
 $ sudo vi /etc/ssh/sshd_config
 $ sudo /etc/init.d/ssh restart

⑧DNSサーバの指定
 Err http://mirrordirector.raspbian.org/raspbian/ jessie/main cu armhf 1.07-20.1
  Could not resolve 'mirrordirector.raspbian.org'
 とかエラーがでたら、DNSの名前解決ができていない。プロバイダから提供されたDNSサーバか、LAN内のルータアドレスを調 べ、
 sudo nano /etc/resolv.confの1行目に
 nameserver 192.168.0.1
 と記入しておく。

⑨リモートデスクトップ接続出来るようにする
 sudo apt update sudo apt upgrade→時間がかかる
 sudo apt install tightvncserver
 sudo apt install xrdp sudo reboot する。
 tightvncを入れないとだめっぽい

⑩コマンドラインからのLチカ
 $ sudo su
 $ echo 25 > /sys/class/gpio/export
 $ echo out > /sys/class/gpio/gpio25/direction
 $ echo 1 > /sys/class/gpio/gpio25/value
 $ echo 0 > /sys/class/gpio/gpio25/value
 $ echo 25 > /sys/class/gpio/unexport
 25をexportしてoutに設定し、Hにする、Lにする、その後unexportして開放する。
 →開放しないとその後使えなくなるので注意。
 ピン配置はこの辺を参照
 http://nejiketa.seesaa.net/article/414258096.html

⑪ python のインストール
 Raspberry Piにはpythonが標準でインストールされているが,
 python3系など使いたい場合,バージョン管理がややこしいのでminicondaやpyenv等を使う.
 ここではminicondaの導入方法を記載.
 Anaconda on the Raspberry Piを参考に minicondaを導入.
 まずminicondaのダウンロードとインストール(2系と3系好きな方を.)
 $ wget http://repo.continuum.io/miniconda/Miniconda-3.5.5-Linux-armv6l.sh
 $ wget http://repo.continuum.io/miniconda/Miniconda3-latest-Linux-armv7l.sh
 $ /bin/bash Miniconda-3.5.5-Linux-armv6l.sh
 $ /bin/bash Miniconda3-latest-Linux-armv7l.sh
 でインストールできる.あとはpathの設定.
 /home/piで
 $ sudo nano .bashrc
 最終行に
 export PATH="/home/pi/miniconda3/bin:$PATH"
 を追加して再起動
 $ sudo reboot

残りはおいおい記事を追加していきます.
スポンサーサイト
  1. 2017/07/23(日) 14:24:52|
  2. Raspberry Pi
  3. | トラックバック:0
  4. | コメント:0

RaXino+RaspberryPiで家の電力見える化

タイトルの通り、家の電力使用状況を見えるようにするため、電力計を作ってみました。

全体の構想としてはこのスライドのものがほとんどそのままです。
RaXino+Raspi 

カレントトランスで分電盤の電流値を検出し、マイコンのA/Dコンバータで読み込んでRaspberryPiでWeb上に可視化します。この方法だと電圧は計測しないので、位相差がわからず計測した電力は有効電力ではなく皮相電力になりますが、まあ大きな差は出ないと思います。
今回は分電盤のうち各部屋に分配された電力も読み取ることにし、6ch用意します。6chもあるのでチャンネルごとの回路を簡素化するために、アナログの回路側はこのページを参考にして作成し、下側半波は読み取らない形をとりました。 この辺は以下の記事に詳しく書きました。 RaXino+RaspberryPi電力計の電力計測部分の製作 また、マイコンも相応のチャネル数と処理能力を持つもの、ということで、購入後に少しだけさわって放置していたRaXinoを使います。

RaXinoはRX62Nを積んだマイコンボードで、RXduinoというArduinoライクのライブラリを合わせて使えるものです。RaXinoであればEthernetに繋げるのでこれだけでも良かったのですが、
・わざわざ無線LANコンバータ買ってくるのが面倒だった
・RTCで時刻を刻ませないといけない
・Ethernetにつなげるとは言え高機能なことが出来るわけでもなくPCからのアクセスが面倒
なのでRaXinoで計測したデータを一度RaspberryPiに送って保存し無線で飛ばします。


RaXinoをさわるのが久しぶり過ぎて、まずは環境構築から行いました。
RXduinoライブラリは、現在はFreeRXduinoという名前で無料で提供されています。
使用方法として、GCCでコンパイルする方法と、ルネサスの統合開発環境であるHEWやCS+(旧CubeSuite+)で使えるサンプルプロジェクトが用意されています。最初はGCCでコンパイルをしようとしていたのですが、RaXino基板にmakefileを合わせるとinvectの問題でエラーが出てしまったので、結局CS+をインストールして使いました。

やりたいことは1kHz以上で6chのA/Dコンバータを1サンプルずつして電流の瞬時の大きさを記録し、1秒ごとくらいで実行値(RMS)を計算してRaspberryPiに渡すことです。
モジュールとしては1kHzタイマ、A/Dコンバータ、シリアル通信を使います。タイマ割り込み関数でA/D変換して、データがたまったら1秒ごとにメインループ実行値計算させます。
とりあえず以下のコードがあれば最低限OKです。

コード例

シリアル通信はRX.TXの結線をしないといけないかと思っていたのですが、USB端子のシリアルをRaspberryPiに指すとそのまま認識したので、これで行きます。認識後にポート名をdmesgコマンドで取得します。

Raspberry Piでは、Pythonを使ってシリアル通信でデータ取得し、時刻とともにCSVで保存しておきます。
Pythonでシリアル通信するにはpySerialというライブラリがあれば簡単に使える様なので、早速インストールします。と思ったらpipすらインストールしてなかったので、ついでにpipも入手しておきます。
$ sudo apt-get install python-pip
$ pip install pyserial

シリアルのポート名は/dev/ttyACM0だったので、それを使ってシリアル通信するスクリプトを記述します。

コード例

これで時刻付きCSVが保存できるようになったので、SCPでとってくればいつでも見られるようになりました。

あとは、別個でWebから見えるインターフェースを用意して、当日の電力推移とデータをとってこれるようにしたいなと思っています。とはいえWebの知識があまりないので、まずはpythonでmatplotlibをつかってグラフ描画する感じになりますかね。
また、せっかく電力を計っているので、どの機器がどのくらい電力を消費するか分析し、節電の方策を立てようと思っています。

参考ページ:
FreeRXduino
自作電子小物/簡易電力計/7チャネル版
自作電子小物/簡易電力計/7チャネルGUI版
Python, RaspberryPi, Arduinoで作る消費電力モニタリングシステム
Raspberry Pi 3でエアコン一体型パソコン「airpi」を作る!
python/pandas/matplotlibを使ってcsvファイルを読み込んで素敵なグラフを描く方法(Mac/Raspberry Pi)

  1. 2017/07/23(日) 01:01:00|
  2. マイコン
  3. | トラックバック:0
  4. | コメント:0