AWS IoT Core + Cloud WatchでRapsberry pi pico w から取得したデータを爆速でグラフ化する
Uhara
Uhara 2023.03.24
(株)フーリエではWebサイトの制作を主な業務として行っていますが、一部ではIoTを活用したシステムの構築にも携わっています。
https://www.fourier.jp/works?service=system特に最近の案件としてもセンサーデータをクラウドにあげて可視化するようなものが多い印象です。
筆者個人としてはWebサイトの制作やサーバーサイドの管理が主な業務であり、ここ数年はマイコンに触れていなかったので、ものづくりしたい欲が高まっているのを感じておりました。
そこで特に業務とは直接関係のない内容となりますが、ものづくり系企画を勝手に進めていこうと思います!
今回はこちらを購入しました。完全初心者向けの便利なスターターキット付き、技適マークもついて安心、そしてコスパ最強のESP32です。
選定基準としては、将来やりたいことに合わせてWi-FiとBluetooth付きのものであることと、音声データを扱いたかったのでメモリが増量されているタイプを選びました。ESP-WROOM-32ですと512KBなので少々心もとない(しかもユーザーが実際使えるのは半分程度、わざわざ外付けするのも大変)ですが、WROVER-Eであれば8MBのPSRAM、4MBのFLASHがのっています。
https://www.amazon.co.jp/gp/product/B09BC1N9LL/ref=ppx_yo_dt_b_asin_title_o00_s00?ie=UTF8&psc=1
マニュアルは英語ですが、これは必ず目を通しましょう。(自戒)
Apply to FNK0060. Contribute to Freenove/Freenove_ESP32_WROVER_Board development by creating an account on GitHub.
https://github.com/Freenove/Freenove_ESP32_WROVER_Board
今回はこの中にある「C_Tutorial.pdf」を見ながら進めます。
手順概要(C言語を使う場合)
付属していたUSBケーブルの先がTypeAだったため、筆者のmacではTypeCへの変換ケーブルが必要になりました。
コードが空の状態で書き込んでみます。
問題なく書き込み完了となりました。これで環境設定は完了です。
以下のようにソースコードを記述し、書き込みボタンをクリックします。
pinMode()でNo5の端子をGPIOとして使います。その端子に対してdigitalWrite()でHIGHまたはLOWをdelay時間を挟んで交互に設定することで点滅させています。
光りました。LEDのカソードとGNDの間には過電流防止のために220kΩの抵抗を入れております。
まずボードに接続した状態で以下の”SerialToSerialBT”というサンプルソースを開きます。
コードを書き込む前に「ツール」 「シリアルモニタ」を表示させ、ボーレートを”115200”に合わせます。
問題なく書き込みが完了すれば「The device started, now you can pair it with bluetooth!」の文字がシリアルモニタ内に出力 されます 。
次にBluetooth接続するためのAndroid端末を用意します。こちらもマニュアルに従って「Serial Bluetooth Terminal」 をgoogle playストアからインストールしておきます。
Android端末のBluetooth接続設定にESP32testというデバイスが出てきましたのでペアリングします。
Serial Bluetooth Terminalアプリを立ち上げて「デバイス」- 「ESP32test」を選択すると以下の画面の様に「Connected」と表示され、接続されたことが確認できました。この状態で文字を入力してみると
Android IDEのシリアルコンソールに文字を送信することができました。逆にシリアルコンソール側から文字を入力するとSerial Bluetooth Terminalに文字が送信されることが確認できました。
次はWi-Fiに接続してLチカを遠隔操作してみます。マニュアルを参照するとしたらWi-FiのAs_Serverという項なのですが、同じ様にシリアルモニタに接続時に文字を送信するだけなので、以下の「SimpleWifiServer」というスケッチを試してみます。これはLEDのON/OFFをすることができるシンプルなWebサーバとなっています。
サンプルコードが開かれますのでSSIDとパスワードを自身の環境に合わせて記載します。
Bluetoothの時と同様にシリアルモニタを表示しておきます。
書き込みすると問題なくWi-Fi接続されるとシリアルモニタに IPアドレスが表示されました。
PCのブラウザでこのIPにアクセスしてると以下のような画面が表示されます。
それぞれ のリンクをクリックすることでLEDのON/OFFが制御できました!
マニュアルも充実していますし、ネットの情報も合わせてここまでは特につまずくことなく進めることができました。簡単にモバイル端末側からも接続できることがわかりましたし、いろいろできそうですね!
Uhara Engineer
SEです。AWSやGCPなどサーバやクラウド周りはお任せください。趣味はギターとカフェ巡り。