みなさん、こんにちは。
本日2025年6月1日は、小田原の日本先端工科大学(仮称)1号館で「MSX DEVCON11小田原」が開催されます。
残念ながら私は参加できませんが、西和彦氏からMSXの未来について話されると伺っているので、ぜひオンラインで聴講したいと思っています。
ところで、このDEVCONに合わせて、私もMSX0で何か面白いことをやってみようと思い立ち、MSX0を使った「熱中症アラート」プログラムを作成してみました。梅雨が明ければすぐに猛暑の季節がやってきます。特に高齢者や小さなお子さんがいるご家庭では、熱中症対策が非常に重要ですよね。
このプログラムのソースコードはGitHubリポジトリで公開していますので、興味のある方はぜひご活用ください。
https://github.com/taoman26/sendalert_for_msx0
MSX0熱中症アラートプログラムとは?
このプログラムは、MSX0と温湿度センサーを使って室内の環境を監視し、熱中症の危険レベルに達したときにGoogle Home / NEST 経由で音声アラートを発する便利なシステムです。温度・湿度データはクラウドサービス「Ambient」に自動送信されるため、外出先からでもスマートフォンなどで確認できます。
主な機能
- DHT温湿度センサーから温度と湿度データをリアルタイムで取得。
- 収集したデータをAmbientへ定期的に送信。
- 危険な条件(温度28℃以上かつ湿度60%以上)を検知するとGoogle Home / NEST から音声アラートを発話。
- MSX0のバッテリー残量もAmbientで監視可能。
- 一定時間後に自動再起動するモードと継続動作モードを選択可能。
必要な機材
- MSX0
- DHT温湿度センサー(Seeed Grove Beginner Kit for ArduinoのDHT20で検証済み)
- インターネット接続環境
- Google Home / NEST 端末
- Google Home Notifierが設定されたサーバー
セットアップは簡単!
MSX0のセットアップ自体は非常に簡単で「ALERT.BAS」というプログラムファイルを数カ所修正するだけで使い始められます。
CH$="xxxxx" 'Ambientのチャンネルコード
WK$="xxxxx" 'Ambientのライトキー
GA$="xxx.xxx.xxx.xxx" 'Google Home NotifierサーバーのIPアドレス
この部分をご自身の環境に合わせて変更するだけです。
なお、Ambientは無料で使えるIoTデータ可視化サービスで、セットアップ方法は以下の記事で解説しています。
また、Google Home Notifierは、Raspberry Piなどの小型コンピューターで動かすことができ、セットアップ方法は以下の記事で解説しています。
プログラムの仕組みと工夫
プログラムの動作は至ってシンプルです。
まず、MSX0がDHTセンサーから温度と湿度を読み取り、Ambientサーバーにデータを送信します。次に、温度28℃以上かつ湿度60%以上という条件をチェックし、該当する場合にはGoogle Home NotifierサーバーへHTTPリクエストを送信します。すると、Google Home / NEST 端末から「温度はXX度で、湿度はXXパーセントです。熱中症に注意してください」という音声アラートが流れます。
MSX BASICはかなり昔からある言語ですが、これをMSX0の新しいIoT機能(_IOTPUT
や_IOTGET
コマンド)と組み合わせることで、こうした現代的なアプリケーションが実現できるのは非常に面白い点です。
MSX BASIC用の工夫
このプログラムには、MSX BASICで快適に動作させるための工夫がいくつか施されています。
- 日本語処理の対応
MSX0での日本語処理に制限があるため、音声メッセージをローマ字で表現しています。GM$="ondo wa "+STR$(D1)+" de, shitsudo wa "+STR$(D2)+"% desu. Ne-chuushou ni chuui shite kudasai."
- HTTPリクエストの正確な構築
ヘッダーとボディの間に空行を入れるなど、正しいHTTPリクエスト形式を確保しています。 - 接続の安定性向上
Google Home Notifierへの接続は、最大3回まで自動リトライする機能を実装し、安定性を高めています。 - デバッグモード
センサー値取得・Ambient送信をスキップし、Google Home / NEST 通知のみをテストできるモードを搭載しています。
実用性と応用
このプログラムの面白いところは、単なる技術的な実験で終わらず、実際に役立つ実用的なシステムであることです。高齢者のいるご家庭や、赤ちゃんがいる家庭での熱中症対策として活用できます。温度・湿度の閾値も簡単に変更できるので、環境に応じた設定が可能です。
さらに、このプログラムを基に、他のセンサーを接続して異なる種類のアラートシステムを作ることも可能です。たとえば、二酸化炭素センサーを接続して「換気アラート」や、火災センサーを接続して「火災警報」なども同じ仕組みで実現できるでしょう。
そして、MSX0を単独で動作させるのではなく、システムの一部として他のIoTデバイスと連携させ、より高度なスマートホームシステムを構築している点も注目してほしいポイントです。IoTシステムは単体で完結するものではなく、他のデバイスやサービスと連携することで真価を発揮します。
まとめ
古き良きMSX BASICと最新のIoT技術を組み合わせたこのプログラムは、懐かしのパソコンに新たな命を吹き込む素晴らしい例です。レトロコンピューティングの楽しさと現代技術の実用性を兼ね備えた素晴らしいプロジェクトだと思います。
気温の高い日が続くこの季節、熱中症対策は本当に大切です。このようなプログラムを活用して、ご家族の安全を守りましょう。
ぜひ皆さんも、MSX0を使って自分だけのIoTプロジェクトに挑戦してみてください。
本日も最後までお読みいただき、ありがとうございました。
それでは、よいMSXライフを!
ピンバック: レトロな魅力とIoTの融合 – MSX0について語る - ビューローみかみ