M5StickCでスプレッドシートにデータを書き込む話
最近、マイコンを使って遊ぶことを勉強を始めました。
そもそもマイコンとはなんぞや?という方のために簡単に説明。
マイコンとは要するに、ちっちゃいコンピュータのことで、ラズパイやM5stackといったものが代表として挙げられる。
今、自分は参考書片手にM5StickCを教材に勉強しています。ここではあくまでも、勉強したことに対するアウトプットを記入していこうと思います。当然、いま自分が記入しているプログラムというのは、あくまでも参考書ベースになることから、プログラムの詳細については一切触れず、自分が躓いたところだけをブログという形で残していきたいと思います。
教材
まずは、いま自分が参考書として使用させている本がこちら
M5&Arduino童貞の自分でも、順を追っていけば何とかなるくらいに丁寧に書かれている本。本当にありがたや。
今回はこの本に記載されている「データをクラウドに送信しよう!」の部分について記載します。
やりたいこと
今回、やりたいこととしては、M5StickCでカウントアップ&ダウンをするプログラムを作成し、一定の操作を行い、スプレッドシートにカウント数を飛ばすというもの。
これを行えるようにするためには、大まかではありますが、このような流れとなります。
①:カウント数を記載するスプレッドシートの作成
②:スプレッドシートデータ記入先のスプレッドシートより「apps script」を開き、プログラムを記入・紐づけ
③:スプレッドシートにデータを飛ばせるように、ライブラリ[arduino json]を追加
④:Wifi接続・スプレッドシートとの紐づけ・カウントアップ&ダウンをまとめたプログラムを作成し、M5StickCに書き込む。
っといった流れ。
悩んだところ
教科書通りにapps scriptとarduinoにコードを記載したけど、一向にスプレッドシートにデータが飛ばず・・・。
M5StickC側からスプレッドシート側にデータが飛んだ際に、M5の液晶に「送信完了♪」的な表示が出るはずなのだが、一向に出ない・・・・。
そこで、ネットサーフィンをして原因を探ると「プロキシ設定」に問題があるらしい・・・。
とりあえず、arduino側
「ファイル」→「環境設定」→「ネットワーク」タブを開く。
デフォルトだと「プロキシ設定を自動検出」となっているので、「プロキシ無し」に変更する。
設定変更後にマイコンボードへと書き込む・・・。
できん・・・・!!!( ;∀;)
なぜだ・・・。なぜだ・・・。
完全に詰んだ・・・。っと思い、ぼけーっとコードを眺めていると・・・。
// スプレッドシートURL
const char *host = "スプレッドシートのURLを貼り付ける";
この一文・・・。「スプレッドシートのURLを貼り付け」となっているから、スプレッドシートのURLをダイレクトに貼り付けていたわ。
簡単にいうとこんな感じ
誤:https://docs.google.com/spreadsheets/~~
正:https://script.google.com/macros/~~
apps scriptでコード書いているくせに、apps script側のURLを貼り付けていないというオチ。冷静に考えてみれば、当たり前の話よね。
だって、データの流れとしては・・・
M5StickC→apps script経由→スプレッドシート
なのに、いきなり間を飛ばしてスプレッドシートへのリンクを貼っても何にも記入されないっすよね・・・。(;^ω^)
プロキシ設定とURLの書き換えを行い、マイコンへ書き込みしたら、無事にできましたっとさ。
うまくデータが飛ばない原因は二つありましたが、ひとつは完全なる凡ミス、もう一つは設定ミスでした。
ひとつ勉強になりましたとさ。