ESP8266でMQTTクライアントを動かす(3)

MQTTでデータが送信できるようになりましたので、何かデータを送ってみます。

ここではとりあえずBME280を接続して温湿度気圧のデータを送ってみることにします。

すでにたくさんの方が行われているのですが、今回はこちらのページを参考にさせていただきました。回路としても使用したセンサの基板は異なりますが、センサ自体はBME280ですので、同じ結線です。

次にソフトウェアですが、こちらも同ページを参考にさせていただきました。よって、ライブラリはこちらのものを利用させてもらいました。

“ESP8266でMQTTクライアントを動かす(3)” の続きを読む

ESP8266でMQTTクライアントを動かす(1)

昨日構築したArduino環境でESP8266にてMQTTクライアント(MQTT Subscriber/Publisher)を動かしてみます。接続先はInternet上のMQTTサーバ(MQTT Broker)をターゲットにします。ですので、通信路がSSLで保護されるのが最低条件です。

先日インストールしたAdafruit MQTTライブラリでいろいろ試してみたのですが上手く行かず、異なる方法を模索しました。また、その他のライブラリなども検討したり試してみたりしましたが、一長一短で、結構悩みました。

で、たどり着いた方法はこちらのサイトを参考にさせていただいて、 PubSubClient というMQTTクライアントを使いました。(基本的には、記載されている内容そのままです)

“ESP8266でMQTTクライアントを動かす(1)” の続きを読む

パスワードハッシュを計算する

Flaskを使ってページ単位でBasic認証を設定する際のパスワードリストが前回生のパスワードを直接ファイルに記述していましたが、これをハッシュで記載するように修正します。

python3 の仮想環境作成

今回のPCはOSをインストールし直した環境です。ですので、仮想環境を用意するところから始めます。といっても、説明は省略します。ついでに、今回使うライブラリ(werkzeug)までインストールしてしまいます。

~$ mkdir python
~$ cd python/
~/python$ sudo apt-get install python3-venv
~/python$ python3 -m venv pytest
~/python$ cd pytest/
~/python/pytest$ source ./bin/activate
(pytest) ~/python/pytest$ python -V
Python 3.6.9
(pytest) ~/python/pytest$ pip install --upgrade pip
(pytest) ~/python/pytest$ pip install werkzeug

Werkzeugでハッシュ値を計算する

今回使用するライブラリは werkzeug というものです。wUSGI をインストールすると一緒に入るようですが、手元のPCには wUSGI は入っていないので、インストールする必要がありました。

で、対話的にハッシュ値を計算して、検算してみます。

(pytest) ~/python/pytest$ python3
Python 3.6.9 (default, Jul 17 2020, 12:50:27) 
[GCC 8.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from werkzeug.security import generate_password_hash, check_password_hash
>>> generate_password_hash("GoodPassword")
'pbkdf2:sha256:150000$1AVzDmpB$2687453800736d0569477851b960ea158dc16949a3b3d9c317c8d212fbac4400'
>>> check_password_hash('pbkdf2:sha256:150000$1AVzDmpB$2687453800736d0569477851b960ea158dc16949a3b3d9c317c8d212fbac4400',"GoodPassword")
True
>>> check_password_hash('pbkdf2:sha256:150000$1AVzDmpB$2687453800736d0569477851b960ea158dc16949a3b3d9c317c8d212fbac4400',"BadPassword")
False
>>>

このハッシュ値をパスワードリストに貼っておけばOKです。

WebARENAでUbuntuサーバを立てる(2)

MQTTブローカーである mosquitto をインストールしてみます。インターネット上に見えるMQTTブローカーなので、SSLでの暗号化と接続のための何らかの認証を導入します。
本来ならば、クライアントの正当性を認証するところまでやるべきなのですが、1クライントごとに証明書を生成して管理する必要が出てきます。趣味の世界でそこまでやると大変なので、MQTTブローカーに接続する際にパスワード認証を行うレベルにとどめました。

こちらの記事を参考にしました。

“WebARENAでUbuntuサーバを立てる(2)” の続きを読む

$10のAIエッジデバイス開発ボード

秋月の新商品をずーっと遡っていたら、Sipeed M1n Module AI Development Kit based on K210(RISC-V)という1,450円のエッジAIデバイス開発ボードが目に止まりました。

これ、カメラがついているのにどうやって使うのだろう?

と思って、「Sipeed M1n Development Kit」ぐぐってみたら、こんな動画が引っかかりました。

これを見ていくと、開発ツールのMaxPyIDE上でカメラ画像の表示ができるっぽいです。これであれば、非常に扱いやすそう。