ラズパイ(43) 再インストール3回目とpyenvのインストール

再インストール3回目です。

早速記録をまず最新版のRaspbianのimgファイルをダウンロードします。
ダウンロード時間は結構かかる。

というようにバージョンがアップしてました。

sshから設定をしました。

書いたとおり、touch コマンドでsshという名前のファイルを作れば、sshできます。
詳しくはリンク先。
$sudo raspi-config
でローカルの設定などをしました。

これはgitを使ってみたかっただけです。

アップグレードしますが、時間が長かったです。
コマンドは
$sudo apt-get update
$sudo apt-get upgrade

pyenvをインストール(詳細はリンク先)


numpy とmatplotlib をインストール。今回はpipですんなりできた。

sudo pythonとすると、バージョンが違う。ユーザーの環境変数の設定が違うためらしい。

psコマンドとkillコマンド

プログラムを間違ってるプロセスが終了しないままの場合があったので
killコマンドとpsコマンドのメモ。

  プログラムのプロセス番号を調べる。
$ps

$ps aux|grep プログラム名
で調べるのと探しやすいようです。
オプションについては、リンク参照願います。

  プロセス終了
$kill PSID

Killコマンドを間違えると大変。
$kill -l で利用できるシグナルの一覧が確認できる。
強制終了
$kill -9 PSID
これもオプションについては、リンク参照願います。

KURO
Killコマンドの使用は慎重に!!

written by gatamix

Python shebangとenvコマンド

PyQt5でpythonスクリプトが実行エラーになっていた原因がshebang(シバン)の書き方だったのでメモします。
shebangを
#!/usr/bin/pythonと記入していたのが原因。
PyQt5はanacondaでインストールしているので、
#!/usr/bin/env python
とするのが正解だった。
envコマンドを使うことで環境変数にあるpythonコマンドを実行できるようです。
以下のサイトの説明が詳しかったです。


KURO
シバンは#!から始まる1行目

written by gatamix

コマンドのPATHを調べる

コマンドのPATH を調べる方法についてメモします。

  環境変数のPATHを表示
$echo $PATH
環境変数のPATHを表示します。(PATHは大文字で。)

  コマンドのPATHを表示
$which コマンド
コマンドのPATHを環境変数のPATHにあるコマンドから調べる。

例
$which ruby
/usr/bin/ruby

$whereis コマンド
whereisは/usr/bin:/bin:/usr/sbin:/sbinにあるコマンドから調べる。

例
$whereis ruby
/usr/bin/ruby

なのでwhereisではPATHが表示されない場合があるということです。
whichを使う機会のほうが多くなりそうです。
複数あった場合は、環境変数を$echo $PATHで表示した左側(先頭)にあるコマンドが優先的に表示される。実行される順番も同じ優先度です。

  環境変数の設定の仕方

 gatamixblog 
gatamixblog
http://www.gatamix.com/article/449121446.html
Just another WordPress site

KURO
筆者は whichコマンドをPythonで複数環境がある場合にどちらが有効かを確認する際に使ったよ。

written by gatamix

ラズパイ(42) ホームページにmysqlからグラフ作成

Gatamixです。

mysqlに取り込んだデータをlocalhostのホームページにグラフとして描画してみようと思います。
java script のライブラリーを使って描画します。
使うのは、morris.jsです。

phpを事前に導入しておいてください。私は、Raspberry pi上に構築しました。
(当初、ページが描画されなかったので、色々ためしたみたので、必要ではないパッケージもインストールしているかもしれないので、詳細は省略します。phpのインストールの詳細について自信がありません。)

  メタ変数
foo :ユーザー名
passwd : パスワード
hoge :データベース名
fuga :テーブル名

  コード

  グラフ(参考までに)

  参考にしたページ

written by gatamix

ラズパイ(41) センサーの値をmysqlに書き込む

Gatamixです。
温度センサー(lps25h)の値をデータベースに書き込んでみます。

python ライブラリーのインストールをします。

$sudo apt-get install python-dev
$sudo apt-get install libmysqlclient-dev
$sudo pip install MySQL-python

メタ変数は以下です。
foge:データベース名
huga:テーブル名
foo:ユーザー名
passwd:パスワード

書き込み用のpythonコードです。

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
 
import smbus
import time
import sys
import datetime
import MySQLdb

Device_add = 0x5d 
 
#通信確認
whoami = smbus.SMBus(1).read_byte_data(Device_add, 0x0f)
if whoami != 0xbd:
    print('接続できません')
    sys.exit()

#レジスタ切り替え(モード変更)
smbus.SMBus(1).write_byte_data(Device_add, 0x20, 0x90) 
time.sleep(1)

#データ読み込み

buff = [0 for i in range(5)]
buff[0] = smbus.SMBus(1).read_byte_data(Device_add, 0x28)
#print("buff[0]=%x" % buff[0])
buff[1] = smbus.SMBus(1).read_byte_data(Device_add, 0x29)
#print("buff[1]=%x" % buff[1])
buff[2] = smbus.SMBus(1).read_byte_data(Device_add, 0x2A)
#print("buff[2]=%x" % buff[2])
buff[3] = smbus.SMBus(1).read_byte_data(Device_add, 0x2B)
#print("buff[3]=%x" % buff[3])
buff[4] = smbus.SMBus(1).read_byte_data(Device_add, 0x2C)
#print("buff[4]=%x" % buff[4])

Data = [0 for i in range(2)]

"""---------------------------
圧力データ24bitデータ
8bitデータをシフトして結合
---------------------------"""

Data[0] = (buff[2] << 16 | buff[1] << 8 | buff[0])

"""---------------------------
温度データ16bitデータ
8bitデータをシフトして結合
---------------------------"""

Data[1] = (buff[4] << 8 | buff[3])

"""------------------------
圧力データの計算
Pout(hPa) = PRESS_OUT / 4096
-------------------------"""

Data[0] = float(Data[0]) / 4096

"""---------------------------
マイナスデータの補正と
温度データの計算
T(°C) = 42.5 + (TEMP_OUT / 480)
----------------------------"""

if Data[1] & 0x8000:
    Data[1] = -((Data[1] - 1) ^ 0xffff)
Data[1] = float(Data[1]) / 480.0 + 42.5

#出力-------------------------

print("Pressure %.2f hPa" % (Data[0]))
print("Temperature %.2f degree" % (Data[1]))

connector = MySQLdb.connect(host="localhost", db="hoge", user="foo", passwd="passwd", charset="utf8")
cursor = connector.cursor()
 
str_tmp = "%6.2f" % Data[1]
sql = u"insert into fuga values(now(), %s)" % str_tmp
cursor.execute(sql)
 
connector.commit()
 
cursor.close()
connector.close()

確認
$sudo mysql -u foo -p
>use hoge;
>select * from fuga;

written by gatamix