MSX0 x Ambient | BASICで手軽に温度・湿度データをクラウド送信!

みなさん、こんにちは。

前回のブログで「MSX0」を使って画面に温度、湿度を表示させることができました。

 

今回は、取得した温度や湿度データをAmbientに送信するサンプルプログラムをご紹介します。

MSX0は、現代のテクノロジーとMSX BASICの魅力が詰まったユニークなプラットフォームです。ぜひ皆さんもその可能性を体験してみてください。

 


 

MSX0でAmbientにデータ送信

 

Ambientは、IoTデータを手軽に可視化できるクラウドサービスです。以前、M5StickCを用いたAmbientでの環境データ可視化手順を解説しました。

 

Arduino IDEの設定やスケッチの加工、書き込みなど、M5Stackを素で使う場合はAmbientへデータを送信するまで、それなりに手間がかかりました。しかし、MSX0からは非常にシンプルです。

まず、MSX0を立ち上げてSAMPLE.BASのディスクをセットします。その後、以下のコマンドを実行してください。

load "SEND2NET.BAS"
list 140-170

すると、以下のような画面が表示されます。

サンプルプログラム

 

140 CH$="AmbientのチャンネルID"
150 WK$="Ambientのライトキー"

140行目のCH$にはAmbientのチャンネルIDを、150行目のWK$にはAmbientのライトキーをそれぞれ設定します。これらの情報はAmbientのウェブサイトで取得可能です。取得方法は以前の記事にも掲載されていますので、そちらを参考にしてください。なお、Basicプログラムを編集したい場合は、行番号を指定し、該当行を全文入力しなおせば、上書きされます。

編集が完了したら、以下のコマンドでプログラムを実行します。

run

これだけで5分ごとに温度、湿度、バッテリーレベルのデータがAmbientに自動的に送信されるようになります。Ambientのグラフでリアルタイムにデータを確認できるのは非常に便利ですよ。

ambient_chart
Ambientのチャート

 


 

プログラムの編集と転送

 

MSX0本体でプログラムを編集するのは、画面やキーボードの小ささから非常に大変だと感じるかもしれません。そこで、編集したプログラムをリモート転送する方法をご紹介します。

Tera Termmsxtermといったターミナルソフトを使えば簡単に実現可能です。使い方はそれぞれのサイトを参照してほしいのですが、MSX0本体のIPアドレスとポート2223を指定して接続するだけです。現在は暗号化通信には対応していない点だけはご注意ください。

これにより、PC側で自由にファイルを編集し、MSX0へアップロードできるため、開発の柔軟性が格段に向上します。

 


 

MSX0でIoTする意義

 

ところで、M5StackをベースにしたMSX0をあえて使うことに、どのような意味があるのでしょうか?

M5Stackを素の状態で使うのと比較して、MSX0の大きなメリットは「リモート接続してプログラムを改修できること」にあります。

M5Stackに直接プログラムを書き込んでしまうと、一度書き込んだプログラムは基本的にそのまま使うことが前提となり、リモートからの編集はできません。しかし、MSX0であれば、環境の変化に合わせてプログラムをリモートで書き換えることが可能です。これは、長期的な運用や、設置場所での微調整が必要なIoTデバイスにおいて非常に重要な利点となります。

 


 

Raspberry Pi Zero WHとの比較

 

一方で、「それならLinuxが動作するRaspberry Pi Zero WHなどで良いのでは?」という疑問も当然出てくるでしょう。確かに、コスト面だけを比較すればRaspberry Pi Zeroの方が圧倒的に安価です。

しかし、センシングの時だけ起動し、値を取得して送信を繰り返すような用途であれば、MSX0を使うメリットがあります。それは、起動が速く、低消費電力で動作するMSX0は、間欠的にデータ取得を行うIoTデバイスにより適しているからです。

それ以外の用途、例えば、常時稼働させるような高度なIoT用途では、現状、Raspberry Pi Zeroの方が優位な点が多いかもしれません。

そのような用途においてもMSX0のメリットが生きる場面は、「プラグアンドプレイでBASICから簡単にセンサーが扱いたい」場合です。いちいちセンサーのドライバーをロードする必要があるLinuxベースのRaspberry PiよりもMSX0を選んだ方が利便性が高いでしょう。

MSX0はBASICからプラグアンドプレイで簡単に使えるセンサーはデバイスツリーとして保持する設計になっているようです。残念ながら、その数はまだ多くありません。ファームウェアのアップデートによってBASICから簡単に呼び出せるセンサーの種類が増えていくと思いますので、今後のセンサー対応の拡充に大いに期待したいところです。

現状でも、必要であればMSX0でi2c通信自体は可能ですので、別途プログラムを用意さえすればi2c通信に対応したセンサーの値取得は可能です。ただ、複雑なプログラミングが必要なのであれば、生産性の高いRaspberry Piを選択する方が良いかもしれません。

 


 

まとめ

 

MSX0は、レトロとモダンが融合した魅力的なデバイスであり、IoTの世界に新たな可能性をもたらしてくれることでしょう。今後の発展に注目し、さらに活用できる場面が増えることを楽しみにしましょう。

 

今回も最後までお読みいただきありがとうございました。

それでは、よいMSX0ライフを!

「MSX0 x Ambient | BASICで手軽に温度・湿度データをクラウド送信!」への1件のフィードバック

  1. ピンバック: レトロな魅力とIoTの融合 – MSX0について語る - ビューローみかみ

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

上部へスクロール