Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

IoTレイヤの設計 #125

Closed
csenet opened this issue Sep 16, 2023 · 2 comments
Closed

IoTレイヤの設計 #125

csenet opened this issue Sep 16, 2023 · 2 comments
Assignees
Labels
enhancement New feature or request hardware ハードウェア関連

Comments

@csenet
Copy link
Member

csenet commented Sep 16, 2023

やること

現状ではStateManagerにおいて全ての状態を管理するという設計にしているが、内部的にはソフトウェアレイヤでの状態と、物理レイヤでの状態の2つが存在している。
ここでは、物理レイヤに注目して最低限のIoTシステムを設計する。

やること

各種ESPとの通信、物理レイヤの状態管理を行うサービスを設計する。
その上で、必要となるサービスを実装する。

実装方法

MQTTでは以下の要素が必要となる。

  • Broker
  • Client

ここで、Brokerは異なるクライアント間でメッセージを調整するサービスであり、自前で実装するのは難しそうなので「Mosquitto」など利用する。

MQTT over TLSなどで暗号化機能をつけることも可能で本来であればそうするべきなのだが、今回の場合はひとまずセキュリティ機構をなしで実装する。

一緒にハードウェア側の仕様も決定しないとまずいかもしれない。

その他

@csenet csenet added the enhancement New feature or request label Sep 16, 2023
@csenet csenet self-assigned this Sep 16, 2023
@csenet csenet added the hardware ハードウェア関連 label Sep 16, 2023
@csenet
Copy link
Member Author

csenet commented Sep 16, 2023

・ESP側の構成の検討
今回のハードウェア側で必要となる要素は以下の通り。

  • サーボモータ(ストップレール、ポイント)
  • 通過検知(スイッチ)
  • 在線検知(NFC)
    このうち、NFCを除いた部分においてはハードウェアを共通化したい。多分できると思う。
    NFCに関しては、 NFCで列車の情報を読み取る仕組みを作る #20 に関連して4台のリーダーを1つのESPで読み取ることができならばより良い。

それぞれのセンサーごとに対応するTopicを用意してあげて、サーボ周りに関してはSubscribe、在線検知に関してはPublishする。ソフトウェアとしては、Configファイルをメモリとかにおいてあげて、それを読み込むような設定にしてあげると良さげな気がする。

@csenet
Copy link
Member Author

csenet commented Nov 8, 2023

#193 にて設計を決定してコードを書けたので終了

@csenet csenet closed this as completed Nov 8, 2023
@github-project-automation github-project-automation bot moved this from 🏗 In progress to ✅ Done in プラレール自動運転プロジェクト Nov 8, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request hardware ハードウェア関連
Projects
Development

No branches or pull requests

1 participant