ESP32C3からGoogleスプレッドシートへ湿度データを記録:その2

経緯

  • 初めて家庭菜園でマルチを張りました。土が直接見えないため、乾き具合が分かりにくく、土壌湿度センサーを使って記録する方法を考えています。
  • 前回は、湿度センサーの値を Google スプレッドシートへ記録する方法を手動(エディタ)で試してみました yshigu.net

  • 登録今回は使用する湿度センサーとマイコンの選定を進めながら、マイコンでGoogle スプレッドシートへに登録してみます。

ハード選定

センサー

マイコン

プログラミング

スプレットシート書き込みテスト

XIAO ESP32-C3のソースコード

#include <WiFi.h>
#include <HTTPClient.h>

// ------------設定値-----------------------------------
const char* ssid    = "#####";
const char* password  = "#####";
//デブロイのURL
const String url = "https://script.google.com/macros/s/AKfyc#######/exec";


void setup() {
  Serial.begin(115200);

//--WiFi設定
  WiFi.mode(WIFI_STA);
  WiFi.disconnect();
  if ( WiFi.begin(ssid, password) != WL_DISCONNECTED){
   ESP.restart();
  }
  while( WiFi.status() != WL_CONNECTED){
    delay(1000);
    Serial.print(".");
  }
  Serial.println("Connected to the WiFi network!");
}


void loop() {
    
  //仮に土壌湿度を設定
  int humidity = 33;
  
  String urlFinal = url + "?humidity=" + String(humidity);

  HTTPClient http;
  http.begin(urlFinal.c_str());

  http.setFollowRedirects(HTTPC_STRICT_FOLLOW_REDIRECTS);
  int httpCode = http.GET();

  if (httpCode == HTTP_CODE_OK) {
    String body = http.getString();
    Serial.print("HTTP_CODE_OK: ");
    Serial.println(body);
  } else if (httpCode <= 0) {
    Serial.println(http.errorToString(httpCode));
  }

  http.end();

  delay(60000);
}

Googleスプレットシート書き込み結果

Apps Script

前回から変更しましたので記載しておきます

function doGet(e) {
  const url = "https://docs.google.com/spreadsheets/d/1h#########mpY/edit?gid=0#gid=0";
  const ss = SpreadsheetApp.openByUrl(url);
  const sheet = ss.getSheets()[0];
  const params = {
    "timestamp": new Date(),
    "humidity": e.parameter.humidity
  };
  sheet.appendRow(Object.values(params));
  return ContentService.createTextOutput('sccess');
}

土壌湿度の計測(長くなってきたので次回にします)

それと、屋外で使うので、防水方法を考えていきます

プライバシーポリシー |ページトップへ

`