見出し画像

【GASでIoT】GASで「ラズパイ Pico W」から、Googleスプレッドシートへ の読み書きにトライ!(その2)

タイトルは替えましたが、以下の記事の続きになります。

エクセルのクラウド版ともいうべき、Googleスプレッドシートは、単にPC画面から操作するばかりでなく、ネットを介して様々なデバイスからの読み書きが可能です。

この利点をうまく利用すると、レスポンスは悪いものの、スプレッドシート上の情報を基にLEDを点灯させたり、外部のデバイスからスプレッドシートに情報を記録するなど、「お手軽IoT」を実装することができます。

以下の記事は外部デバイスとして「ラズベリーパイ Zero W」を使って、「お手軽IoT」を実装した例です。

”お手軽”を狙って、通信デバイスには、比較的安価で、アマチュアにも動作が理解しやすい「ラズベリーパイ Zero W」を利用しましたが、昨今の半導体不足で価格が高騰したため、代替デバイスとして「ラズベリーパイ Pico W」の利用にトライました。

この記事では、「ラズベリーパイ Pico W」から、ネットを介してスプレッドシートを読み書きすることにトライした内容をご紹介するものです。

「ラズベリーパイ Pico W」は、まだ日本で発売されて日が浅いため、参考資料が少なく、中でも、本記事で狙った「WiFi通信」をクライアント側として使い、「HTTPS」にアクセスさせた例は非常に少ない印象です。

この記事は、一介のアマチュアが、断片的な手がかりを寄せ集め、試行錯誤しならがら行った記録です。

失念による「手順の記載もれ」、たまたま上手くできた条件を見逃している「前提条件の未記載」、誤認や理解の浅さによる「誤り」を含んでいる可能性が大いにあります。

うまく再現できない場合があることをご了承頂き、自己責任、自己解決を前提にお読み頂くことをお願いします。


まずPicoの開発環境に触れる・・・定番の「Lチカ」でまずつまづいた

「ラズベリーパイ Pico W」には、「Zero W」と違って、ハードウェア寄りの裏方作業をバックアップしてくれるOSがありません。

OSが裏方で行ってくれていた制御をプログラムで記述する事が多くなるため、コードは長く複雑になりがちです。

 

写真は、ピンヘッダが取付けられた商品

また、こうしたOSの無い「マイコン」には、たいていプログラムをデバイスに書き込むための「開発環境」ソフトウェアが必要であり、こうしたソフトウェアの操作に慣れる必要もあります。

そこで、いきなりWiFi通信を試すのではなく、まずは基盤上に装着されているLEDの点灯、所謂「Lチカ」を試す事にしました。

コアチップである「RP2040」は、プログラム言語に「MicroPython」と「C」をフォローしている

ラズパイPico W は、コアチップに「RP2040」を採用しており、このチップは開発言語に「MicroPython(マイクロ・パイソン)」と「C」をフォローしています。

ネット上の情報は、圧倒的に「MicroPython」に関するものですので、Lチカも「MicroPython」での実装を試みました。

MicroPythonでの実装を試みるも・・・

この MicroPython を扱える開発環境としては、「Thonny(ソニー?)」と「CircuitPython(サーキット・パイソン)」が有名です。


どちらも、アマチュアが容易に使えることを謳っており、(多くは、「W」なしのPico の例ですが)プログラム例や体験談もネット上に豊富にありますので、この言語での実装を試みました。

ところが、結果として、「Thonny」でも「CircuitPython」でも、上手く「Lチカ」できませんでした。

開発環境ソフトのインストールはどちらも問題ありませんでした。

ところが、「Thonny」では「ライブラリ」と呼ばれる専用モジュールの導入が(手順通りのはずなのに)できず失敗、「CircuitPython」では手順の最後の書き込みまで済んだにもかかわらず、全くLEDが点灯しませんでした。

後者は、デバイスの故障も疑って、もう1枚購入したのですが、駄目でした。(開発環境をインストールしたPC環境のせいかもしれませんが、未だによくわかりません)

やむを得ず、「C」での実装を行う


このままでは一歩も進めず、代替となる適当な開発環境も見当たらなかったため、やむなく「C」でLチカを実装することにしました。

「C」の開発環境 「Arduino IDE」

Cでの開発環境では、「Arduino(アルデュイーノ) IDE」を使います。

もともとは、このソフトウェアの名称である「Arduino」や、その亜流である「ESP32」などを開発するためのものですが、アプションで専用モジュールを追加することで、ラズパイPicoや、PicoWを扱うことも可能です。


念ながら、「Arduino IDE」を利用して「C」で開発する事例は、ネット上に少なく、また、各種デバイスを制御するための公式または定番のライブラリもPythonに比べてあまり無いため、開発では不便が多い事が予想されます。

しかし、この環境でようやく「ラズベリーパイ Pico W」で「Lチカ」が実装できました。


幸いに、インストール時には、専用モジュールで、WiFi機能を使ってHTTPSにアクセスするサンプルコードも付随してくるため、大いに助かるという恩恵もありました。

一方で、今回利用したモジュールにはSPI接続のサンプルコードがなく、他のデバイスとの連携では苦労しそうな気がします。

一旦ここで記事を切り、次回、「Arduino IDE」を利用して「C」でLチカを実装した内容をご紹介します。

この記事が気に入ったらサポートをしてみませんか?