知的好奇心 for IoT

IoT関連の知的好奇心を探求するブログです

(Arduino Cloud Agentが動かないときのための)Arduino CloudのプログラムをArduino IDEで書き込む方法

この4月に入ってから、Arduino Cloud Agentが動かなくなった(常駐しなくなった)のに気づいた方いらっしゃいますか?

(mac版のアイコン)

 

Arduino Cloud Agentは、Arduino Cloudで作られたプログラムをブラウザ経由でPCに繋いだマイコンに書き込むために使用する小さな常駐プログラムです。

 

仕組みの説明として、アーキテクチャー図がサイトに載っていましたので拝借しました。

実際にはブラウザとの通信の他に、Arduino Cloudとも通信を行っているようです。

 

で、冒頭でお話した通り、このプログラムが4月に入ってから起動するとすぐに終了してしまう現象が起こっていて、Arudino CloudのプログラムがUSB経由でマイコンに書き込めなくなっていたんです。(7日の午後に回復)

 

これが、どういう影響を及ぼすかと言うと、無料プランではプログラムが一切書き込めなくなり、有料プランでも一度書き込んでいないとOTAが使えないために、新規のプロジェクト(Things)のプログラムが書き込めなくなります。

 

今回発生していた問題は過去にも起こっていたようで、直接プログラムを実行したときに表示されるエラーメッセージと同じメッセージの書き込みがありました。

(macだとターミナルで次のコマンドを実行すると表示されます。)

/Applications/ArduinoCloudAgent.app/Contents/MacOS/Arduino_Cloud_Agent

この書き込みでは、PCの時間が合っていないせいでは...みたいな感じでしたが、前回もクラウド側の問題だった可能性の方が高いように思います。

 

Arduino CloudのプログラムをArduino IDEで書き込む

Arduino Cloud Agentが動かなくなるなんて思っていなかったため忘れていましたが、クラウドのIoTプラットフォームの部分をArduino IoT Cloudと分けて名乗っていた頃に、Arduino IDE用のライブラリが提供されていたことを思い出したんです。

そのライブラリが使えるかなと思って調べてみたら、今でも昔の名前で提供されていたので使えるかどうか実際に確かめてみました。

 

Arduino Cloud側の作業

普通のIoTプロジェクトを作るのと同じようにThingsを作って、スケッチを書き込むところまで作業します。

 

Arduino IDE側の作業

ライブラリのインストール

ライブラリマネージャーで、入力欄に「arduinoiotcloud」と入力すると「ArduinoIoTCloud by Arduino」が見つかるのでインストールします。

他にライブラリを使っている場合は、そのライブラリもインストールします。

 

スケッチのコピー

新規スケッチを作成して、Arduino Cloudのスケッチをコピーします。

 

thingPropertiesのコピー

赤枠で囲った3点リーダーをクリックして「新しいタブ」を選び、「thingProperties.h」という名前を付けます。

 

新しく作ったthingProperties.hに、Aruino CloudのthingProperties.hの内容をコピーします。

 

8行目から10行目までの「SECRET_SSID」・「SECRET_OPTIONAL_PASS」・「SECRET_DEVICE_KEY」を、Arduino Cloudの「Sketch Secrets」タブの各Valueの値で置き換えます。

※置き換えた値の前後に"を書くのを忘れないでください。

※6行目の記述も含めて、これらの値は秘密にするものなので他人に知られないようにしてください。ここに載せている値はダミーです。

 

これで、Arduino CloudのプログラムをArduino IDEで書き込むことができます。