ATOM Liteでマイ アメダスを作ろう ~ 結果はAmbientへ送る

2023年4月30日

amedas1

自分の住む街の気温を知るのに大変便利なアメダス。しかし、アメダスの計測装置がある場所と自分の家がある場所が離れていて、気温が違ってしまう場合も少なくありません。私の家の場所も、アメダスより2~3度低いことが多いです。

普通はそんな些細なことはどうでも良いのかも知れませんが、自分は結構気になるタイプです。そこで、ATOM Liteを使って、アメダスのように気温を計測してみることにしました。

本物のアメダスは精密な計測機器で構成されますが、自分での計測は簡易的なものになります。

1.ハードウェア

Ambient5

気温の測定は、BME 280を使用します。以前、M5StickC用に作ったHatを使用します。以前の記事を参考にしてください。

ただし、今回はHatATOM Litegroveケーブルで接続します。よって、使うGPIOの番号が違います。

SDA GPIO 32
SCL GPIO 26

となります。

2.ソフトウェア

Ambientの登録

ATOM Lite用のプログラム作成は当然必要ですが、計測した気温を記録しなければなりません。その記録は、WebサービスのAmbientを使用します。よって、Ambientに加入してください。

加入したら、データ書き込み先のチャネル新規作成します。「チャネルを作る」を押して、チャネルを新規作成してください。

チャネルIDライトキーを今回のプログラムで使います。

次に、AmbientにはM5StackRaspberry Piなどに対応するライブラリが用意されています。そのライブラリを使用することによって、Ambientに簡単にデータを送ることができます。

Ambient公式で用意されている「ドキュメント」を元に、ライブラリArduino IDEインストールしてください。

プログラム

Ambientへは、気温のみ送信します。送信間隔は10分とします。

#include <M5Atom.h>
#include <Wire.h>
#include "Adafruit_Sensor.h"
#include <Adafruit_BME280.h>
#include <math.h>

Adafruit_BME280 bme;

#include "Ambient.h"

// Wi-Fi環境
const char* ssid = "XXXXXXXXXX";
const char* password = "XXXXXXXXXX";

WiFiClient client;

Ambient ambient;
unsigned int channelId = 12345 ; // AmbientのチャネルID
const char* writeKey = "ABCDEFG123456"; // ライトキー

void setup() {
  // put your setup code here, to run once:
  M5.begin(true, false, true);
  Wire.begin(32,26);
  
  M5.dis.drawpix(0, 0x00ff00);

  if (!bme.begin(0x76)){  
      Serial.println("Could not find a valid BME280 sensor, check wiring!");
      while (1);
  }

  // Wi-Fiの接続
  WiFi.begin(ssid, password);
  while(WiFi.status() != WL_CONNECTED){
    Serial.print('.');
    delay(500);
  }
  Serial.println("\nWi-Fi connected");
  M5.dis.drawpix(0, 0x0000ff);

  ambient.begin(channelId, writeKey, &client);
}

void loop() {
  // put your main code here, to run repeatedly:
  float temp;

  temp = (float)bme.readTemperature();

  Serial.print("\nTemp = ");
  Serial.print(temp);
    
  // Ambient
  ambient.set(1, String(temp).c_str());
  ambient.send();

  delay(600000); // 10分毎

}

Ambientへの送信結果

チャネル名をクリックすると、詳細画面に移動します。

7時間ほどログを取りました。d1が気温で、d2が気圧です(気圧も取ってみた)。グラフでは、時間が経つにつれ気温が下がり、気圧が上がっています。このグラフから、天気が回復傾向であることが分かります。

グラフは折れ線以外も用意されています。

amedas3

Ambientの管理画面から、計測結果をダウンロードできます。(※湿度も取っています)

このように、csvファイルで取得できますので、自分の好きな用途で使用できます。

3.住む場所の気温を把握しよう

amedas2

アメダスの設置する場所によって、その街の気温が大きく左右されます。私が住む街の冬の最低気温は、周囲のアメダスよりも5度から10度くらい高いことが多いです。近年、北見市の気温がとても低いですが、アメダスが移転するまでは、私の街とそれほど変わりませんでした。それが、郊外へアメダスが移転されたことで、一気に気温が下がったのです。

このように、自宅周辺の気温を知っておくことは大事だと思います。アメダスの計測機器と違って作成したシステムは2,000円でお釣りがくるほど格安ですから、ぜひ作成してみてください