こんな感じで遊べる。

HttpClient (portformio だと id=66) の使いかたで微妙にハマった。

こんな感じの GrowthForecastClient クラスをつくっておいて、

HttpClient とホスト名や認証情報を渡して

WiFiClient wifiClient;
HttpClient http(wifiClient);
GrowthForecastClient gf(http, GF_HOST, GF_USER, GF_PASS);

https://github.com/cho45/esp-wroom-02-sketch/blob/master/src/main.cpp#L24

post する

	float temp = adt7410.read();
	Serial.print("adt7410 = ");
	Serial.println(temp);
	gf.post("/home/test/temp", (int32_t)(temp * 1000));

https://github.com/cho45/esp-wroom-02-sketch/blob/master/src/main.cpp#L165

GF は整数しか扱えないので、1000倍してpostして、GFのグラフの設定で ÷ 1000 を選択する。

HttpClient 以外はとくにハマりどころはない。適当にグラフ化するならこれ以上簡単なものはない。

ただ、結構 post に時間がかかる。特に request body にパラメータを書こうとするとあまりにも遅いのでクエリパラメータにしている。なんかどっかですごい効率が悪いことをしていそうだがよくわからない。

  1. トップ
  2. tech
  3. ESP8266 から GrowthForecast へセンサーデータをPOST

cmake で CGI (blosxom クローンぽいやつ) を書きました。(実用のためというわけではないです)

cmake は -P をつけるとスクリプトモードになるので、それでふつうにCGIのコードを書くだけです。

データ型として文字列しかないのがつらい感じです。リストみたいなのも使えるけど、これもセミコロン区切りの文字列をリストとみなすという仕様になっている。シェルスクリプトのノリに近い。

ただ、正規表現がある程度使えるので、文字列操作は割と楽に書くことができる。

なお、cmakeで普通使うような命令を使わない(使えない)のでまったく通常ユースのためのノウハウはほとんど溜まらず、学習という意味ではあんまり意味がないというオチでした。

  1. トップ
  2. tech
  3. cmake で CGI を書く