WordPressにbokehのグラフをのせる(備忘録)

bokeh、pandas-bokehはインタラクティブなグラフを作成することができるが、これをWordPressに添付するのも割と簡単であったので、のせておきます。

1.bokehグラフのhtmlコードを取得する

bokehのプログムをrunさせるとrunさせたディレクトリにhtmlファイルが生成されます。これをIDE(私はVisualStudioCode)で開いて、クリップボードにコピーする。

2.WordPressにコピーする

ブロック挿入ツールのウィジェット中に「カスタムHTML」があるので、これを選択し、ダイアログ中にコピーしたhtmlをペーストして、出来上がり

プレビューすると、しっかりbokehのグラフを表示することができます。マウスでドラッグやピンチもできます。

Bokeh Plot

MySQLデータをpandas-bokehでグラフ化(備忘録)

毎日暑いので、エアコンの効いた部屋でノンビリPCいじってます。今日は、先日サーバーを入れ替え、自宅温度などをESP32からMySQLに取り込み、これをグラフ化するところまで備忘録にしておきます。

必要モジュールのインストール

今回はpandas-bokehとsqlalchemyをインストールしました。それぞれpipを用いてインストールします。

pip install pandas-bokeh
pip install sqlalchemy

全体のコードは以下のとおりです。

import pandas as pd
import sqlalchemy as sa
import pandas_bokeh

user='esp32'
password='*******'
host='192.168.1.**'
db='esp_data'
port=3306

url = f'mysql+pymysql://{user}:{password}@{host}:{port}/{db}?charset=utf8'
engine = sa.create_engine(url,echo=False)

query = "select reading_time,temp from SensorData order by reading_time desc limit 1000"
#query="select * from SensorData order by reading_time desc limit 10"
df = pd.read_sql(query,con=engine,index_col='reading_time')
#print(df)

df.plot_bokeh()

たったこれだけのコードです。16行目のindex_col=’reading_time’でX座標が時間軸になり、ソートはdescですが、プロットするときは経時的に描画されます。

Bokeh Plot

ESP32 複合センサBME680

先日お知らせしたBME680による温湿度気圧、ガス濃度の分析です。

SCLは21ピン、SDAは23ピンにつなぎました。

今回は秋月電子のセンサを用いていますが、同じようにAdafruitでも同様のセンサキットを用意しており、GithubにてMicroPython用に用意されているAdafruithttps://github.com/robert-hh/BME680-Micropythonのモジュールを用います。

まずはモジュールです。

このモジュールを用いますと簡単に測定できます。Adafruitで用意しているテスト用プログラムを使用し、毎度のプルアップをソフト的に行います。

あっという間に出来上がりです。

C:\Users\>ampy -p com3 run c:\micropython\bmetest.py
Warning: I2C(-1, ...) is deprecated, use SoftI2C(...) instead
15.30285 45.3333 1031.108 269211
15.31457 45.40735 1031.111 116460
15.33859 45.47064 1031.105 124723

次回はこれを用いて、DBにつなぎます。

Windows pip update

Pythonパッケージのインストールにはpipが使用されるが、久しぶりに使用したので、pip自体のアップデートを行った。

C:\Users\>python -m pip install --upgrade pip
Collecting pip
  Downloading https://files.pythonhosted.org/packages/fe/ef/60d7ba03b5c442309ef42e7d69959f73aacccd0d86008362a681c4698e83/pip-21.0.1-py3-none-any.whl (1.5MB)
    100% |████████████████████████████████| 1.5MB 51kB/s
Installing collected packages: pip
  Found existing installation: pip 19.0.2
    Uninstalling pip-19.0.2:
      Successfully uninstalled pip-19.0.2
Successfully installed pip-21.0.1

もともと入っていたpipのバージョン19.0.2から21.0.1までアップデートしました。相当サボっていたのがわかります。