見出し画像

もんく [とある南端港街の住人になった人]

MQTTで受信してデータベースに書き込み

MQTTで受信したデータをデータベース(Pythonに付いているSQLite)に書き込む事ができるようになった。

世間にあまり例が無かったのでちょっと苦心した。

今回やってみてわかった事。
1) 送信元が複数の時にどうするか。

paho.mqttの関数のsubscribe()の中にtopicを1つづつ入れて全部並べておく。
そんな事だったのか...

2) MQTT受信したデータの扱い。

適当に区切って変数に入れる。
....まあ、そうだろうとは思ったが、通常MQTTはloopで回っているので他に取り出し難かった。変数に入れたらすぐにデータベース書き込みの関数に渡してしまえば良い。グローバル変数にして後で処理は難しくするだけ。

3) データベースへの書き込み。

REPLACE INTOを使うとデータベースの中の表に無かったデータ(主キー)がまだ無いデータは新しい行を作って入れてくれる。もし主キーが既にあればアップデートされる。
今回は主キーをMQTTで使ったtopicにしたので、同じデバイスから送られてくればデータが無限に増える事なく、常に新しいデータに更新する事になる。(過去データを貯めないつもりだから。貯めたい場合は別のやり方が必要。)




ところで、PyCharmでデータベースファイルを見ると文字化けしていた。設定からエンコードを変更しても直らなかった。ここでいろいろやってみるのも面倒臭いので、DB browser for SQLiteと言うフリーソフトで見る事にしたら、ちゃんとデータがデータベースに入っている事が判明。よかった。



さあ、次はデータベースからデータを取り出してWeb表示するところ。来週にしようかな?
名前:
コメント:

※文字化け等の原因になりますので顔文字の投稿はお控えください。

コメント利用規約に同意の上コメント投稿を行ってください。

 

  • Xでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

最新の画像もっと見る

最近の「マレーシアでニャー2019」カテゴリーもっと見る

最近の記事
バックナンバー
人気記事