見出し画像

気温、湿度、気圧、磁気センサの値をサーバにあげてIoT!

こんにちは!

棚の中に眠っていた、Raspberri Pi2やPi3やM5Stack、ESP等々、、、を生き返らせる試みを行っています。

眠っていたM5Stackに、各センサを接続し、気温、湿度、気圧、磁気を測定できるようにしました。

今日は、これらの値をクラウドサーバにあげてみます。
各センサ値がグラフ推移で見れるようになることが目標!


1.こんな感じ

①M5Stack起動
②気温、湿度、気圧、磁気の値を取得
③自宅Wifiに接続
④気温、湿度、気圧、磁気の値をクラウドサーバに送信
⑤5分間ディープスリープに入る
⑥5分後、起床して①へ。
を、繰り返します。

2.クラウドサーバ

IoTデータの可視化サービス Ambient にします。
https://ambidata.io/

3.プログラム作成

今回から、GitHubにプログラムを載せることにしました。
ここには、メモだけ。。。(手抜きですみません)

3.1 Wifi接続

#include <WiFi.h>として、WIFI用のAPIを使います。
※WとFは大文字だから注意!

WiFi.begin(ssid, password); で接続。

WiFi.status() が WL_CONNECTEDになればOK。

ちなみに、ssid, passwordは、const char*で定義しておけばOK。

3.2 「5分間ディープスリープ」の実装

M5.Power.deepSleep(SLEEP_MIN(5));

を呼べばディープスリープに入って5分後に起きてくれます。

3.3 Ambient にアップロード

こちら参照して作成しました。

簡単な流れは以下です。
・Ambient側
①チャネル生成
②チャネル設定メニューで、チャネル名とアップロードしたいデータ名を登録


③チャネルID、ライトキーを控えておく。

・M5Stack側
①Ambient用Arduinoライブラリ「Ambient ESP32 ESP8266 lib」をインクルード

②ambientライブラリの初期化
   ambient.begin(channelId, writeKey, &client);
   //  チャネルIDとライトキーを指定してAmbientの初期化

  ※channelIdはunsigned int型
          writeKeyははconst char*型

③指定番目データとして指定地をアップロードする設定をする。
 (例) ambient.set(1, 123);  1番目のデータとして123をアップロードしたい
 ちなみに、データ型は、int型かfloat型ならそのまま直接アップロードOK。違う型なら型変換する。

④ambient.send(); でデータ送信。

3.4 その他

その他、LCD表示等細々としたことを追加。

※プログラムはGitHubにアップしました。
   良かったらどうぞ。
 https://github.com/hiyashiame/emv_m5stack

4.実行結果

実行結果は以下です。

表示できたよ!

この記事が参加している募集

つくってみた

この記事が気に入ったらサポートをしてみませんか?