Help us understand the problem. What is going on with this article?

M5StickC +PIR HATで動体検出してAmbientに書き出す

地味すぎてわかりづらいおうちハック、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

作り方

  1. Ambientのアカウントを作成する (参考:Ambientを使ってみる)
  2. M5StickCの開発をするためのArduino IDEのセットアップ
    (参考にさせていただいたサイト「くらつきねっと」様)

  3. Arduino IDEにAmbientのライブラリをインストール
    (Ambient公式ブログを参考に)

  4. M5StickCにコードを書き込む
    Arduino IDE>ファイル>スケッチ例>M5StickC > HAT > PIR のコード
    +
    Ambient公式ブログの「M5StickCで小型環境センサ端末を作る」>「Wi-Fi に接続して、データをクラウドに送信する」
    を参考に書きました。

PIR.ino
#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に書き出したグラフ

image.png

1=周囲に動くもの有り
0=なし

気づき

Ambientに書き出す代わりに、IFTTTのwebhookをリクエストしたり、MQTTのパブリッシャーを叩くと、いろんなアクションに繋げられそう(^o^)

今日はここまで。明日は技術書典8のvoiceflow本の原稿に専念するため、「年末年始 #地味すぎてわかりづらいおうちハック」連続投稿は一旦おやすみしますー。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした