ここのところ、Webラジオばかり作ってきたので、たまには違う物を作ってみたい。
本屋で電子工作の本を立ち読みしてたら、無料のクラウドサーバーにデータをアップしてどこからでも確認できるよ、みたいなのが有ったので、おじさんも試してみることにする。
まずは、下準備。
だいぶ前にPico Wで作ったこれ↓をSeeed ESP32C3に移植する。
なんでPico Wのままじゃないのか?というと、Pico Wが大きすぎて扱いにくいから。
温度、湿度、CO2濃度、気圧を測定して表示できる。
また、CO2濃度に応じてフルカラーLEDが青 → シアン → 緑 → 黄 → 赤と徐々変化する。
今回の回路図はこちら
で、ブレッドボードに組んで、前のソフトをESP32C3用に移植して動かしてみる
すると、
あれれ?、なんか変。
CO2センサーのSCD40の値がまともに読めてない。
むむむ・・・
でも、よく見るとCO2を読むタイミングでOLEDとLEDが少し暗くなっている。
そういえば、ずいぶん前にSCD40はピークで100mAくらい流れる↓というのを思い出した。
どうやら、Seeed ESP32C3の内部レギュレーターはそんなに流せないっぽいのである。
と、いうことで周辺モジュール電源は、5Vから3端子レギュレーターで3.3Vを作って供給することにした。同時に330uFコンデンサで安定化も図った。
今度はちゃんと動く
ずいぶん時間がかかってしまったが、ようやく下準備が出来た。
--------------------------------------
後で分かったのだが、単に配線の接触が不十分なだけだった。
3端子レギュレータは不要です・・ orz
--------------------------------------
次に、いよいよ本題に入るのである。
無料のクラウドサービスと接続方法をGeminiに訊いてみた。
すると、お勧めの 無料クラウドサービスを挙げてくれた。
その中でも、特にAmbientがおすすめだという。
1日3,000件まで送信可能で、 シンプルにグラフ化してくれるらしい。
さっそく試してみる。
まず、Geminiが示す手順でサーバー側の準備
1.Ambient(ambidata.io) にアクセスし、無料アカウントを作成。
2. ユーザー登録、ログイン後、「チャネル創出」 をクリックして新しいチャネルを作成。
3. 発行された 「チャネルID」 と 「ライトキー(Write Key)」 をメモします(プログラム側で使用)。
しかし、なぜか、Ambientのユーザー登録が出来ない
登録しようとすると「メールアドレスが既に登録されています」になる。それじゃぁ、パスワード忘れたから教えて、と、そのメールアドレスを入れると、そのメールアドレスは登録されていません、になる。
どうなっとんのじゃ?
仕方がないので、Ambientはあきらめることにする。
他のお勧めを訊いたら ThingSpeakが有るらしいので、こっちを試してみる。
Geminiの指示は以下
-------------------------------------------------------
1. アカウントの作成
①ThingSpeak公式サイト にアクセスし、画面右上または中央の 「Get Started For Free」 または 「Sign Up」 をクリックします。
②MathWorksアカウントの作成画面が表示されるので、メールアドレスや国(Japan)、パスワードを入力してアカウントを作成します。
③ 登録したメールアドレス宛に確認メールが届くので、メール内のリンクをクリックしてアカウントを有効化します。
④ 有効化完了後、ログインします。
2. チャンネル(データ保存場所)の作成
ThingSpeakでは、センサーデータを保存する場所を「チャンネル」と呼びます。
① ログイン後、上部メニューの 「Channels」 > 「My Channels」 をクリックします。
② 「New Channel」 ボタンをクリックします。
③ 各項目を以下のように入力します:
Name: 任意のチャンネル名(例: XIAO_Sensor_Monitor)
Field 1: Temperature (温度)
Field 2: Humidity (湿度)
Field 3: CO2 (CO2濃度)
Field 4: Pressure (気圧)
(※必要に応じてFieldにチェックを入れ、名前を設定します)
④ページ下部の 「Save Channel」 をクリックして保存します。
3. APIキー(書き込み用キー)の確認
データをマイコンから送信するために必要なキーを確認します。
①チャンネルが作成されると、ダッシュボード画面が表示されます。
② 上部タブの 「API Keys」 をクリックします。
③ 「Write API Key」 (例: XXXXXXXXXXXXXXXX のような英数字)をメモしておきます。
これがプログラム側で必要になります。
④ また、ページの右上付近にある 「Channel ID」 (数字)もメモしておきます。
---------------------------------------------------------
今度はうまく登録できた。
登録したChannel IDと、Write API Keyを使ってプログラムに組み込む。
やり方は・・
ThingSpeak.hをインクルード
setup()内で初期化
60秒に1回データをセットして送信
たったこれだけ。
さっそく動かしてみた。
ブラウザでまた、ThingSpeakのページを開き、My Channelsから登録したchannelを開くと、このように、送信したデータをグラフ化して表示してくれる。
1分に1回送信だと細かすぎるかも。1日の推移を見たいなら30分に1回程度で十分な気がする。
今回のコードはこちら。興味のある方はご自由にどうぞ。
(WiFi設定と、Channel IDと、Write API Keyはご自身のものに書き換えてください。)
ああ、今回も変なところでつまづいて時間がかかってしまった。
でも、まぁ、今回も何とかなって良かった。
「だいぶ苦労したようだニャ。おいらも起き上がるのに苦労するのニャ」
それって、かなりやばくないですか?







