概要
簡単なIoTシステムを組みたいときWebAPIをたたいて、MQTTのメッセージの送受信をしたいときがあります。
今回は、素早くWeb API環境を整えるWebフレームワークにFastAPIがあり、これをトリガーとして、MQTT送受信するFastApi-MQTTの使用感を確認しました。
準備
環境にあわせて、FastApi-MQTT
をインストールします。
python3.8.6ではライブラリ依存により入らなかったのでpythonを3.10.6に引き上げてからインストールしました。
試したソース
FastApi-MQTT
公式のサンプルを試すだけなのですが、2022年9月4日現在、コードの入力ミスがあり、
そのままでは実行できません。コードを以下のように変更します。
|
|
実行した内容
test
フォルダに上記のソースの入ったmain.py
を配置します- 以下のコマンドを実行しサーバーを立てます
python3 -m uvicorn main:app --port=8000 --host=0.0.0.0 --reload
あるいは
uvicorn main:app --port=8000 --host=0.0.0.0 --reload
- mqttのpublishが発行されることを確認するために以下のコマンドを実行します
mosquitto_sub -h localhost -t /mqtt
- クライアントPCのPOSTMANから以下のURIをGETのメソッドで発行します
http://YOUR_SERVER_URI:8000/
ちなみにGETメソッドのresponseは以下のような値が返ります
{
"result": true,
"message": "Published"
}
- mqttのメッセージが以下のように受信されていれば成功です
Hello from Fastapi