実現したいこと
M5sticksPlus2で取得した三軸加速度センサーのデータをAmbientに送りたいです。
ArduinoIDEを使っています。
色々記事を読んでコードを書きました。
発生している問題・分からないこと
エラーは出ないのですが、Ambientの方に反映されません。
エラーメッセージ
error
1エラーメッセージは出ません。
該当のソースコード
#include "M5StickCPlus2.h" #include "Ambient.h" // Ambientのヘッダーをインクルード Ambient ambient; // Ambientオブジェクトを定義 WiFiClient client; unsigned int channelId =****; // AmbientのチャネルID const char* writeKey = "*****"; // ライトキー void setup() { Serial.begin(115200); auto cfg = M5.config(); StickCP2.begin(cfg); StickCP2.Display.setRotation(0); StickCP2.Display.setTextColor(GREEN); StickCP2.Display.setTextDatum(middle_center); StickCP2.Display.setFont(&fonts::FreeSansBold9pt7b); StickCP2.Display.setTextSize(1); ambient.begin(channelId, writeKey, &client); // チャネルIDとライトキーを指定してAmbientの初期化 } void loop(void) { auto imu_update = StickCP2.Imu.update(); if (imu_update) { StickCP2.Display.setCursor(0, 40); StickCP2.Display.clear(); // Delay 100ms 延迟100ms auto data = StickCP2.Imu.getImuData(); data.accel.x; // accel x-axis value. data.accel.y; // accel y-axis value. data.accel.z; // accel z-axis value. Serial.printf("ax:%f\r\n",data.accel.x); Serial.printf("ay:%f\r\n",data.accel.y); Serial.printf("az:%f\r\n",data.accel.z); StickCP2.Display.printf("IMU:\r\n"); StickCP2.Display.printf("X:%0.2f\r\n",data.accel.x); //数字を小数点第 1 位まで切り上げる StickCP2.Display.printf("Y:%0.2f\r\n",data.accel.y); StickCP2.Display.printf("Z:%0.2f\r\n",data.accel.z); ambient.set(1, data.accel.x); ambient.set(2, data.accel.y); ambient.set(3, data.accel.z); ambient.send(); } delay(100); }
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
wifiの設定が必須なのかなとおもいチャレンジしましたがうまくいきませんでした。wifiの設定をしないとAmbientは使えませんか?パソコンはWifiにつながっているし、マイコンとパソコンもつなげてます。ArduinoIDEのシリアルモニタに表示されている値をAmbientに送りたいんです。。。
補足
特になし
> wifiの設定をしないとAmbientは使えませんか?
使えません。まぁ、有線LANのアダプタを別途設けているとかいうならそれはそれですが。
> パソコンはWifiにつながっているし、マイコンとパソコンもつなげてます。
ESP32から見てWiFiがデータの経路として使えないと意味がありません。友達と手を繋いだ状態で友達がお菓子を食べてもあなたのおなかは膨れない、というようなものです。