地味すぎてわかりづらいおうちハック、6日目です。
コードがあるので今日はqiitaに書きます。
今日の分は「何かに使った」という形に至らなかったのですが、パーツとして後々使えそうなので、忘れないように書き留めておきます。
なお余談ですけれども、秋葉原の千石電商のM5コーナーに寄るたびに何か買っていたところ、先日ついにすでに持ってるHATの2個目を間違えて買ってしまいました。
300円ちょっとだから別にいいや、という感覚でよく見ずに。。。
ブックオフでゴルゴ31の未読巻をゲットしたと思ったら、すでに持ってるやつだった、という現象によく似ていますね!(^o^) ほんまや!
作ったもの
人感センサーを使い、近くで何かが動いたら、
Ambientに書き出してグラフ化する。
部品、開発環境
部品:
M5StickC ¥1980
M5STickC用PIR Hat (AS312搭載) ¥286
開発環境:
Mac Book Air 11-inch (Mac OS = High Sierra )
Arduino IDE 1.8.9
作り方
-
Ambientのアカウントを作成する
(参考:Ambientを使ってみる) -
M5StickCの開発をするためのArduino IDEのセットアップ
(参考にさせていただいたサイト「くらつきねっと」様) -
Arduino IDEにAmbientのライブラリをインストール
(Ambient公式ブログを参考に) -
M5StickCにコードを書き込む
Arduino IDE>ファイル>スケッチ例>M5StickC > HAT > PIR のコード
Ambient公式ブログの「M5StickCで小型環境センサ端末を作る」>「Wi-Fi に接続して、データをクラウドに送信する」
を参考に書きました。
#include <M5StickC.h>
#include "Ambient.h"
#define uS_TO_S_FACTOR 1000000 /* Conversion factor for micro seconds to seconds */
#define TIME_TO_SLEEP 1 /* Time ESP32 will go to sleep (in seconds) */
WiFiClient client;
Ambient ambient;
const char* ssid = "自分の使うWifiのSSIDをここに書く";
const char* password = "上記のパスワードを書く";
unsigned int channelId = 100; // 自分のAmbientのチャネルIDに置き換える
const char* writeKey = "abcdefgh"; // 自分のAmbientのライトキーに置き換える
void setup() {
// put your setup code here, to run once:
M5.begin();
M5.Lcd.setRotation(3);
M5.Lcd.fillScreen(BLACK);
M5.Lcd.println("PIR TEST");
pinMode(36,INPUT_PULLUP);
}
void loop() {
M5.Lcd.setCursor(60, 20, 4);
M5.Lcd.println(digitalRead(36));
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.print("WiFi connected\r\nIP address: ");
Serial.println(WiFi.localIP());
ambient.begin(channelId, writeKey, &client); // チャネルIDとライトキーを指定してAmbientの初期化
// 人感センサーの値をAmbientに送信する
if (digitalRead(36) == 1) {
ambient.set(1,digitalRead(36));
}
ambient.send();
esp_deep_sleep(TIME_TO_SLEEP * uS_TO_S_FACTOR);
}
動作状況
Ambientに書き出したグラフ
1=周囲に動くもの有り
0=なし
気づき
Ambientに書き出す代わりに、IFTTTのwebhookをリクエストしたり、MQTTのパブリッシャーを叩くと、いろんなアクションに繋げられそう(^o^)
今日はここまで。明日は技術書典8のvoiceflow本の原稿に専念するため、「年末年始 #地味すぎてわかりづらいおうちハック」連続投稿は一旦おやすみしますー。