白旗製作所

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]"
}
を追加して保存

6 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を使う

7 セキュリティ設定
raspberry piのアップデート
$ sudo rpi-update
$ sudo reboot
rootへのパスワード設定
$ sudo passwd root
ユーザー名の変更
$ sudo usermod -l AAAA pi
sshのポート番号変更して再起動
$ sudo vi /etc/ssh/sshd_config
$ sudo /etc/init.d/ssh restart

⑧リモートデスクトップ接続出来るようにする
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でLチカ
//Todo


16 python のインストール
sudo apt-get install python-pip
sudo apt-get install python3

17 pythonを使ったシリアル通信
sudo pip install pyserial
sudo nano test.py で以下を記述

# -*- coding: UTF-8 -*-
import serial
from datetime import datetime
ser = serial.Serial(port='/dev/ttyACM0', baudrate=38400, timeout=0.5)
file = 'test.csv'
line = ser.read(1000)
#infinity loop
while True:
    if( ser.inWaiting() > 0 ):
        data = ser.read()
        f = open(file, 'a')
        f.write(data)
        print data
        if( '\n' in data ):
            now = datetime.now().strftime('%Y/%m/%d %H:%M:%S, ')
            f.write(now)
            print now

100 windowsでSDカードのフォーマット
cmd diskpartを開く
list disk list volume SDカードのディスク番号を確認する
select disk 1
clean
create partition primary
format quick で再使用可能になる。
スポンサーサイト
  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