raspberrypi3 cpu温度を調べる

raspberrypi3は熱を持ちますね。
ちなみに、自宅で測ったら、53度ありました。壊れませんかね?
CPUの温度をコマンドから確認する方法があるようです。
下のコマンドです。

$ vcgencmd measure_temp
#temp=40.1’C

#CPU周波数を表示
$ vcgencmd measure_clock arm
#frequency(45)=700074000

#電圧を表示
$ vcgencmd measure_volts
#volt=1.2000V

#CPU(arm),GPUのメモリ使用量
$ vcgencmd get_mem arm
#arm=448M
$ vcgencmd get_mem gpu
#gpu=64M

raspberry pi3 webiopiにて、LEDをオンオフする。

WEBの遠隔で100Vのコンセントをオンオフできるような仕組みを作る為の方法を残す。

本当は、iphoneからsiriを使うことを考えたが、インターネットから行う事が難しくWiFi環境しか対応してないようなのであきらめた。まだ、時期的にはちょっと早いのかもしれません。raspaiにhomebridgeなるソフトをインストールしてiphoneのアプリから検索することから挙動がおかしくまだまだを感じさせる。

ということで、今回はとにかくWEB上で、スマホから電源のONOFFをやれる仕組みを作った。基本的には、Webiopiを使ってちょっと手を加えただけだ。

webiopiをインストールするまでは、既に掲載したので割愛する。

今回は、/home/pi/joy/htmlをWEBのトップページする為に、/etc/webiopi/config をちょっと修正する。

myscript = /home/pi/joy/python/script.py
doc-root = /home/pi/joy/html

に#をコメントアウトしてスクリプトとHTMLの場所を指定してあげた。

script.pyの内容は下記(2chの場合を想定)
import webiopi
import datetime

GPIO = webiopi.GPIO

LIGHT = 17 # GPIO pin using BCM numbering
LIGHT = 18 # GPIO pin using BCM numbering

HOUR_ON = 8 # Turn Light ON at 08:00
HOUR_OFF = 18 # Turn Light OFF at 18:00

# setup function is automatically called at WebIOPi startup
def setup():
# set the GPIO used by the light to output
GPIO.setFunction(LIGHT, GPIO.OUT)
GPIO.setFunction(LIGHT2, GPIO.OUT)

# retrieve current datetime
now = datetime.datetime.now()

# test if we are between ON time and tun the light ON
if ((now.hour >= HOUR_ON) and (now.hour < HOUR_OFF)): GPIO.digitalWrite(LIGHT, GPIO.HIGH) GPIO.digitalWrite(LIGHT2, GPIO.HIGH) # loop function is repeatedly called by WebIOPi def loop(): # retrieve current datetime now = datetime.datetime.now() # toggle light ON all days at the correct time if ((now.hour == HOUR_ON) and (now.minute == 0) and (now.second == 0)): if (GPIO.digitalRead(LIGHT) == GPIO.LOW): GPIO.digitalWrite(LIGHT, GPIO.HIGH) 時間でオンオフ機能を使う場合は、パーツを追加する。今回はLightだけタイマー機能を使う事にしている。 # toggle light OFF if ((now.hour == HOUR_OFF) and (now.minute == 0) and (now.second == 0)): if (GPIO.digitalRead(LIGHT) == GPIO.HIGH): GPIO.digitalWrite(LIGHT, GPIO.LOW) # gives CPU some time before looping again webiopi.sleep(1) # destroy function is called at WebIOPi shutdown def destroy(): GPIO.digitalWrite(LIGHT, GPIO.LOW) GPIO.digitalWrite(LIGHT2, GPIO.LOW) index.htmlの内容。



WebIOPi | Light Control



起動させる。
sudo /etc/init.d/webiopi start
これで、http://決めたドメイン(IP):8000
で大きなボタンが2つ出現して、オンオフできるようになる。

自動起動させる為に、
sudo update-rc.d webiopi defaults

にて、リブートしても自動起動することになる。

Raspberry Pi3 Model B 初期設定(追記)

NOOBSってのを使ってインストールしようとしたら、3回も失敗して、Windowsのdiskpartをつかってパーテーションの解放をした。

メモリの相性がっていう書き込みがあったので、メモリを2種類購入して実験しようとしましたが、そういえば、前回はやったときは、DDとかいうソフトをつかったな~~~ってことで、ダメだったメモリで再度チャレンジ。結果は見事に起動成功

つまり、
RASPBIAN JESSIE

ってほうをダウンロードして、解凍して、DD.exeってのを使ってメモリに書き込めば問題ないようだ。

だたし、DDってのが、メモリを認識してくれないっていう落ちもあったが、exeファイルを右クリックして、互換性を(windowsXPSP3)にして起動したら、認識した。

あとは、やきこんで、Raspbrry pi3 に差し込めば何もしなくても起動してGUI画面が出た。

Raspberry Pi3 Model B 初期設定など。

前回2の時にOSのインストール方法などを記載したとおもいましたが、忘れたようです。

それともこの備忘録は勝手にきえるのか!?

とにかく、3を買って、今回も面白い事をやろうとしているので忘れないように書いておきます。

まずはOSのインストール。

あるページを見ると、OSをダウンロードしてから、DDWin.exeにてマイクロSDカードにイメージを書き込みなさいというようなアドバイスがあったが、まったく違うようだ。手順は以下のとうり。

(1)OSになるデータをダウンロード

NOOBS

のページから、NOOBSをZIPでダウンロード解凍

(2)その解凍したファイルをSDカードに全てコピー

(3)Raspberry pi3 を起動すると勝手にインストール画面がでる。

(4)言語を選択して、一番上の Raspbian を選択して install をクリック

追記)
OSのインストール方法は次の2つの方法があります。
NOOBSを使用してインストール
OSイメージからインストール
NOOBSは様々な種類のOSがパッケージされており、Raspberry Piを起動してインストーラーからインストールしたいOSを選択するだけの簡単なツールです。

ってことです。

Linux softether Client 設定

※NICを追加するときに、エラー31?ってのがでた。結局結論は、LINUXのVPNクライアントは素人には難しすぎる設定だってことですかね。

 

linuxをsoftetherVPNサーバーにする方法は沢山情報が見つかるのだが、クライアントにする方法がない。なんとか、その法方を見つけたので記載しておく。

まず、softetherのクライアントのダウンロードwgetでコマンドからやる方法もあるのだが、最新版をダウンロードするのに、手入力が面倒。なので、linuxのGUIからダウンロードして、とりあえず解凍して、ディレクトリごと移動

/usr/local/vpnclient

そして、make

エラーが
/usr/bin/ld: cannot open crt1.o: No such file or directory
この他にも沢山でてきたが割愛します。

調べるとライブラリがないとかのエラーらしい。さらに調べて
ライブラリのインストールすればいいらしい。
やったこと

apt-get install libglib2.0-dev
apt-get update しないとインストールできない場合があるので、これをやってからの方がいいかもしれません。

その後 make

●softetherの設定

# ./vpnclient start
# ./vpncmd

1. VPN Server または VPN Bridge の管理
2. VPN Client の管理
3. VPN Tools コマンドの使用 (証明書作成や通信速度測定)

1 – 3 を選択:2
接続先の VPN Client が動作しているコンピュータの IP アドレスまたはホスト名を指定してください。
何も入力せずに Enter を押すと、localhost (このコンピュータ) に接続します。
接続先のホスト名または IP アドレス:

VPN Client “localhost” に接続しました。

VPN Client>

●仮想NICを作成し、それに接続する仮想HUBへの接続設定

VPN Client>NicCreate
NicCreate コマンド – 新規仮想 LAN カードの作成
仮想 LAN カードの名前: test

コマンドは正常に終了しました。

VPN Client>AccountCreate
AccountCreate コマンド – 新しい接続設定の作成
接続設定の名前: test-vpn

接続先 VPN Server のホスト名とポート番号: xxx.xxx.xxx.xxx:443

接続先仮想 HUB 名: DEFAULT

接続するユーザー名: test

使用する仮想 LAN カード名: test

コマンドは正常に終了しました。

VPN Client>AccountPasswordSet
AccountPasswordSet コマンド – 接続設定のユーザー認証の種類をパスワード認証に設定
接続設定の名前: test-vpn

パスワードを入力してください。キャンセルするには Ctrl+D キーを押してください。

パスワード: ********
確認入力 : ********

standard または radius の指定: standard

コマンドは正常に終了しました。

VPN Client>AccountConnect test-vpn
AccountConnect コマンド – 接続設定を使用して VPN Server へ接続を開始
コマンドは正常に終了しました。

VPN Client>AccountStartupSet test-vpn
AccountStartupSet コマンド – 接続設定をスタートアップ接続に設定
コマンドは正常に終了しました。

●接続確認

VPN Client>AccountList
AccountList コマンド – 接続設定一覧の取得
項目 |値
——————-+—————————————
接続設定名 |test-vpn
状態 |接続完了
接続先 VPN サーバー|xxx.xxx.xxx.xxx:443 (直接 TCP/IP 接続)
仮想 HUB 名 |DEFAULT
仮想 LAN カード名 |test
コマンドは正常に終了しました。
とりあえず設定を完了し、ifconfigで確認する。
しかし、IPが設定されていないので、ifconfig で仮設定を行う。

# ifconfig vpn_test 192.168.0.1 netmask 255.255.255.0
ifconfigでいちいち設定するのも面倒ですので、/etc/network/interfacesを編集してDHCPからIPを取得

# vi /etc/network/interfaces
allow-hotplug vpn_test
iface vpn_test inet dhcp

●なぜか、dhcpがうまく取得できなかったので、

# dhclient vpn_test

これで接続できた。しかし、再起動したらどうなるのだろうか?

RaspberryPi mjpg-streamer自動起動

ちょっと時間が経過すると、インストールした場所も起動方法もわすれる。さらに、このmjpg-streamerってのは、起動オプションが長すぎるってことで、自動起動設定法方を記載する。

その前に、Webiopiの起動も面倒なので、

sudo update-rc.d webiopi defaults

で自動起動に設定。このJOY備忘録にも書いてある。

そして、 /etc/rc.localをviで編集っていきたいところだが、どうしても使い辛い。GUIになれている私としては、なので、リモートで接続したGUI画面から、直接編集。

exit 0の前に、

cd /home/pi/mjpg-streamer
./mjpg_streamer -i “./input_uvc.so -f 8 -r 320×240 -d /dev/video0 -y” -o “./output_http.so -w ./www -p 8080”

をいれて、保存。そして、全体を再起動してみて、自動起動を確認した。

これで、電源をいれるだけで、WEB上から、タンクの画像をみて、コントロールすることができるようになった。

RaspberryPi mjpg-streamer 動画配信

sudo apt-get update

sudo apt-get install subversion libjpeg-dev imagemagick

MJPE-streamerのソースファイルの取得とコンパイル

sudo svn co https://svn.code.sf.net/p/mjpg-streamer/code/mjpg-streamer mjpg-streamer

cd mjpg-streamer

make

make は、10分ほど時間がかかります。

MJPG-streamer を起動

sudo ./mjpg_streamer -i “./input_uvc.so -f 10 -r 320×240 -d /dev/video0 -y -n” -o “./output_http.so -w ./www -p 8080”

パラメーターは必要に応じて変更します。
-f : frame rate : ストリーム動画のフレームレート(1秒あたりのフレーム数)を指定します。(例:-f 10)
-r : resolution : ストリーム動画の解像度を指定します。(例: -r 320×240)

※Raspberry Pi の次回以降の起動後は、mjpg-streamerフォルダに移動後にコマンドを実行

cd mjpg-streamer
sudo ./mjpg_streamer -i “./input_uvc.so -f 10 -r 320×240 -d /dev/video0 -y -n” -o “./output_http.so -w ./www -p 8080”

動作確認 Webブラウザを起動し、Raspberry Pi のポート8080で動画がみれる。

stream_simple.htmlは、「/home/pi/mjpg-streamer/www」フォルダにあるファイルで、ソースは以下



MJPG-Streamer – Stream Example






RaspberryPi FTP接続

ラブパイにファイルを転送するのに、ftpサーバを立てて、接続する方法を記載する。

まず、ラズパイへのftpサーバのインストール

–Vsftpdインストール
$ sudo apt-get update
$ sudo apt-get install vsftpd

–vsftpd.conf の編集、とりあえず書き程度を修正すれば接続できるようになる。

—- 変更箇所
anonymous_enable=NO #匿名ユーザー(anonymous)のログイン禁止

local_enable=YES #ローカルユーザーを許可

write_enable=YES #書き込み許可

local_umask=022 #ファイル作成時のパーミッション755

サービスのスタート
service vsftpd start ※stop restart で停止、リスタート

これで接続しようとしたが接続できない。調べるとラズバイのルートでは接続できないようだ。ということでユーザーを追加

$ sudo useradd User_name
$ sudo passwd User_name
Enter new UNIX password:
Retype new UNIX password:

このユーザーでLinuxBean fileZillaで接続できた。

RaspberryPi WebIOPiインストール

目的が、WEBから遠隔操作することなので、WEBサーバーやその他のプログラム言語をインストールしなければならないんだろうなってことで、ネットで探しまくっても一向に決断できない。ならば、簡単にオールインワンでできるようなものは無いかとさがしたらすぐにでてきたのが、WebIOPiっていう単語。それなに?ってことで調べてみると、ま、いろいろとつまったRaspberryPiをwebでコントロールできるソフトのようです。

http://webiopi.trouch.com/

そして、サイトからダウンロードしてインストール

WebIOPi-0.7.1.tar.gzっていうファイルをダウンロードして解答して、そのディレクトリまで移動して、

sudo ./setup.sh でインストールが始まる。そして、10分くらいで終わる。

って先輩方のサイトをみるとかいてあるのに、途中でYes/Noって何回か聞かれた。最初は、Yesしておけば間違いないだろうと思ってやっていたが、何やらユーザーidとパスワードを聞いてくる。そして、なにやら、怪しげなurlの記載がある。怖くなり、一旦強制終了して、再度インストール。アンインストールの仕方もわからないので、試しに起動コマンドを打ってみたが、faildのメッセージ。(後々インストールできていた可能性が高いことがわかった。コマンドが違っていた。)

3度目の正直でNoにしたら、idを聞かれることなく普通にインストール終了した。
たぶんであるが、internet overってでてたので、たぶんダイナミックdnsを使わせて、nat越えの接続をさせるための選択かと判断する。ルータのポートなどをいちいち開けなくて済む点はいいのだが、怖いので使わない。

そして、起動コマンド

sudo /etc/init.d/webiopi start

エラーがでて起動できない。No such file ファイルがない???調べてみると、

sudo webiopi -d -c /etc/webiopi/config

※オプション-d デバッグモードでコマンドラインに進捗がでる。

で起動できた。そして、192.168.11.00:8000(自分の環境に合わせること)

アパッチの入室制限窓のようなものがでたので、

webiopi
Raspberry

で無事にログインできた。

WebIOPiアプリケーションは、Ctrl + Cで終了になる。

自動起動は、

WebIOPi をサービスを自動開始(Raspberry 起動時に開始)するには、以下のコマンドを実行

sudo update-rc.d webiopi defaults

WebIOPi のサービスの自動開始を解除するには、以下のコマンドを実行。

sudo update-rc.d webiopi remove

RaspberryPi WiFi設定

様々なサイトを参考にさせて設定をしているがなかなかWiFi接続ができなかった。
やっとの思いで接続できたようにみえたが、ネットが見えなかったり。

UBSタイプのバッファローの無線子機を接続して使っている。セットアップした日が以前なので、記憶から消えてしまっているが、たぶん差しただけで認識をしたのだと思う。

その後、ディスクトップかSSIDの設定をして、接続っていう簡単な手順だったと記憶する。
しかし、環境を変えて接続しようとしたら、接続はしているようだが、ネットがみれない。そこからばたばたとやった。結局は、下記のようにしたら接続できた。

/etc/resolv.confにネームサーバーの登録。通常はルータが勝手にネームサーバー代わりになってくれるので、ゲートウエイのIPを登録
nameserver 192.168.11.1
※後にこの設定は必要ないということになる。自動で設定になるようだ。

次に、さまざまなページを見ると無線LANのセキュリティ関係を設定とあり
/etc/wpa_spplicant/wpa_supplicant.conf

を編集しようとしたら、ディスクトップ上では、権限がないよって弾かれた。rootでターミナルからはいりViで編集する覚悟で中身をみたが、ディスクトップでSSIDを検索して設定したpwなどの情報がすでに記載されていた。これは触らなくても問題なさそうである。

あとは、/etc/network/interfaces

の設定だった。

突然、デバイスが起動しなくなり、困ったが、結局1行を付け加える事で解決した。

auto lo
iface lo inet loopback

iface eth0 inet static
address 192.168.11.10
netmask 255.255.255.0
gateway 192.168.11.1

auto wlan0
allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface wlan0 inet static
address 192.168.11.10
netmask 255.255.255.0
gateway 192.168.11.1

※dhcpを使うときは、
iface wlan0 inet dhcp

なかなかうまく行かなかった1行は、auto wlan0であった。みなさま先輩のレクチャーページ見てもこの1行は掲載されてなかった。私の環境では、この1行がないと、デバイスがオフのままであり、接続できなかったのです。

 

 

再度つながらくなった。いろいろと試して下記のようにしたらつながった。
いろいろと試して、無線LANカードの省電力モードが影響しているのかとパワーマネジメント機能をきるために、 8192cu.confを設置してみたりしたが、ネットには接続している電波マークはでているが、実際にDNSが引けてないような症状。あるお客様のところでの、省電力モードによるルータと子機との接続がうまくいかなかった症状ににている。

そして、結局問題は、単純なことだった。コメントアウトがコメントアウトになってなかったようだ。つまり、

#iface default inet dhcp  ダメ

# iface default inet dhcp OK

スペースが入ってないだけの問題だったようだ。