【ToitでIOT】 esp32の新言語 Toit を使うには?
グーグルで長年V8エンジンを開発してきた技術者が新たに開発した新言語とは?esp32に特化した新言語–Toitは従来のIOTの世界を変える力を秘めています。
最初のChromeV8エンジン
最初の頃のChromeは開いたタブが多くなるとフリーズすることもありました。
Toitの創設者は、GoogleChrome用のV8JavaScriptエンジン を開発することでそれを無くすことに成功しました。
更にchromeの高速化も成し遂げた後、数名のチーム(全員がgoogleの開発部門)で新たな会社を立ち上げ500 KBのRAMを搭載した非常に小さなMCUで動作するソフトウェアプラットフォームを開発しました。
これがToit と呼ばれるものです。
googlesheetに書き込めない
カズの「esp32でgooglesheetに書き込む」という記事は多くのアクセスがあり人気記事の一つでした。
しかし、googleのセキュリティ強化によりOAuth認証が必要となりウエブからの書き込みは出来るもののesp32などの外部デバイスからの書き込みは認証を得ない限り出来なくなりました。
そこでGCP(グーグル クラウド プラットホーム)でサービスアカウントを作成し認証情報を得るのですがjsonファイル形式なのでesp32には荷が重すぎます。
では多くの方はどのように対応したかと言うとラズパイとpythonの組み合わせではなかったのかな?と思われます。
ソニーが国産ラズパイの生産を始めたことからもこれからの需要を見越してのことだったのでしょう。
このような流れの中で登場したのがわずか500KBのMCU(Micro Controller Unit)でデバイスを制御出来る Toit と呼ばれるソフトウエアプラットフォームです。
開発者はesp32について
価格とパフォーマンスのメリットが気に入っている
と述べています。
カズもWifiに接続出来て1000 ~ 2000円程で入手出来るEspressif社の ESP32-DevKitC-32D が気に入っています。 ^^;
Toit は無料で利用できる!
esp32など小さなデバイス用に新たに開発された Toit プラットフォームはもちろん大規模な商用利用を前提にしているのですが、グーグルクラウドやアマゾンウエブサービスなどのように無料利用枠が設けられています。
10個のデバイスまで永久無料
無料利用枠はいろいろなサービスで導入されています。
例えば IFTTT
IFTTT は当初無料で利用できる枠が多かったのですが最近かなり限定されIFTTT離れが進んでいるようです。
利用したものの無料枠が突然縮小されては反感も芽生えますよね。
Toitは10個までのデバイスは 永久無料 を掲げています。
個人で趣味やIOTを学ぶための利用であれば十分とも思える無料利用枠ですよね。
esp32であれば10個登録出来ます。(ファームウエアIDで管理してるようです)
カズはesp32は4個しか保有してないので全然足りません。 ^^;
優れた実行速度
toitについてはシリーズでお届けする予定ですが、実際プログラムを書いてみると、とても少ない記述で済むことに驚きます。
microPythonに比べて実行速度は20倍ということですが、確かに感覚的にも速いですね。
Toitを利用するには?
Toitのクラウドサービスを利用するには最初にここからサインアップします。
登録はgoogleアカウント、githubアカウント、それにEmailで登録出来ます。
メールアドレスで登録する場合にはEmailとパスワードを入力すると確認メールが届きますのでメール記載のURLを開き、再度パスワードを入力することで登録となります。
esp32を接続する
次に使用するesp32を登録します。esp32が手元にない方は ここから 入手出来ます。
esp32を登録するにはPCとesp32をUSBケーブルで接続します。
Setup esp32 又はReadyをクリックするとシリアル通信のコントローラが表示されるので選択して次に進むとシリアル接続されたデバイスがtoit環境に適合するかのチエックが行われます。
デバイスはesp32の他にM5Stackも利用できます。
ネットワークの設定
デバイスのチエックが終わるとWIFIの設定に移ります。
ここではSSIDとパスワードを入力します。
ブラウザの利用環境はgoogle Chrome及びMicrosoft Edge に限定されています。
IEバージョンでは動作しないので注意が必要です。
Provision(準備)
WiFI情報を入力して次に進むと接続したesp32でtoit のクラウド接続が出来るように準備されます。
esp32にファームウエアもインストールされます。
ファームウェアはtoitクラウドとesp32プログラムの橋渡しの役目を担っています。
一つのesp32にファームウエアは一つですがプログラムは複数書き込むことが出来ます。
また、ブロック構造のため、プログラムでファームウエアを書き換えることは出来ません。
ファームウエアはインストールされたプログラムの実行を制御します。
IOTで大事なのがセキュリティ対策ですがtoitは構造・仕組みで従来の組み込みデバイスの概念を大きく変えてしまいました。
クレーム ?
日本語でクレームと言うと文句や抗議といったイメージがありますがここでは権利・請求権といった意味でしょうか?
10個のデバイスまで永久無料ですので(当然の権利として)このesp32でToitクラウドを使いますという主張・宣言みたいな意味のようです。
その権利が認められ双方向で通信可能な状態になりました。
このファームウエアはプログラムを書き込んでもWiFi情報などが上書きされることはありません。
Toit の仕様書ではファームウエアと個々のプログラムは分離・独立していて一つのプログラムにミスがあってもファームウエアや他のプログラムには影響しない(システムダウン・フリーズしない)そうです。
なんだか小さなデバイスー大きな未来(どこかのCM ? ^^; )と思えて来ませんかぁ〜?
esp32 で Toit を使うには? まとめ
esp32でgooglesheetにビニールハウスの温度や湿度、水耕栽培の液肥のEC値などを時系列で記録していましたが、いつの間にか書き込みが出来なくなりました。
googleのセキュリティ強化によるOAuth認証が必要になったことがその要因ですが、ここで新たな問題が生じてしまいました。
esp32はメモリ容量が少なくOAuthのアクセストークンを実装するのが難しいということです。
AWSなども試してみましたが….難しい…
しかし、esp32に特化した新言語toitはサーバー上で動作するのでこの問題を解決してくれました。
ToitはgooglesheetのAPIスクリプトに似ているところがありますね。
元google開発部門のスタッフですから当然かも知れません。
このメモはesp32にファームウエアをインストールまでですが、最終的にgooglesheetに書き込むまでをメモしていこうと思います。