【未経験向け】CCNA(200-301)とは? NW未経験が1ヶ月で合格した際に使用した魔法の学習教材、サイトを紹介!!!

【構築手順】ラズパイを使用した簡易的な室内温湿度の判定システムを構築!

ポートフォリオ

以前Raspberry piにセンサーを取り付け、ラズパイで室内の温湿度を取得できるようにしました。
そして、単に温湿度を取得するだけではなく、取得した温湿度にSLAを規定し、範囲外の値を取得した際は管理者へ通知を行うような温湿度管理システムを構築したいと考えていました。

サードパーティ制の管理ツールを使用する手も考えましたが、折角ラズパイを購入してまで温湿度センサーを作りましたので、温湿度管理システムも自身で一から作ろうと考えました。

作成自体はシェルスクリプトとAWSを使用した簡易的なものになりました。

今回はその温湿度管理システムの紹介をします。

スポンサーリンク

概要

今回作成したものは、温湿度センサ モジュール(AM2302)を使用した温湿度センサーにて取得した温湿度値をシェルスクリプトにて判定し、AWS CloudWatchから通知を行う温湿度管理システムになります。

本記事では、システムの構築手順に沿って各項目をご紹介させていただきます。

システム概要

● システム概要
・以下内容のシェルスクリプトを作成し、cronに登録(15分毎実行)。
(温湿度取得Pythonスクリプトを実行、温湿度判定、ログ出力)
(実行ログのログロ-テート)
・CloudWatch Logsにてスクリプトの実行ログを取得する
・CloudWatchアラームとメトリクスを作成し、ログの出力内容に応じて管理者へメール通知を行う

● 構築手順
① 温湿度取得Pythonスクリプトを作成(simpletest.pyでも可)
② 温湿度取得、値判定、ログ出力シェルスクリプトを作成 & cron登録
③ OSにCloudWatch Agentをダウンロード & 起動
④ CloudWatch アラートを作成

システム構成図

本管理システムの構成図イメージを以下に記載します。

温湿度センサー (モジュール – AM2302) について

事前に作成した温湿度センサー (モジュール – AM2302) については、以下記事でご紹介していますので事前にご覧いただければと思います。

・Raspberry Pi Zeroを使用した温湿度センサーシステムの作成
※ 諸事情によりリンクが機能していません(2021 09/20時点)

温湿度取得プログラムの作成

Adafruit_DHTパッケージの測定用プログラムを作成します。
といってもパッケージ内にデフォルトでサンプルプログラムが入っています。
新しくプログラムを作成するのも面倒ですので、サンプルプログラムをちょこっと編集して使用しましょう。

本プログラムはパッケージインストールディレクトリに以下ネームで存在します。
プログラム名:simpletest.py

ファイルをコピーして、日付も一緒に出力するように中身を修正します。
修正後のスクリプトコードは以下になります。

#!/usr/bin/python

# Copyright (c) 2014 Adafruit Industries
# Author: Tony DiCola

# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:

# The above copyright notice and this permission notice shall be included in all
# copies or substantial portions of the Software.

# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
import datetime
import time
import Adafruit_DHT
import sys

now = datetime.datetime.now()
filename = now.strftime('%H:%M  ')
sys.stdout.write(filename)
# Sensor should be set to Adafruit_DHT.DHT11,
# Adafruit_DHT.DHT22, or Adafruit_DHT.AM2302.
sensor = Adafruit_DHT.DHT22

# Example using a Beaglebone Black with DHT sensor
# connected to pin P8_11.
#pin = 'P8_11'

# Example using a Raspberry Pi with DHT sensor
# connected to GPIO23.
pin = 23

# Try to grab a sensor reading.  Use the read_retry method which will retry up
# to 15 times to get a sensor reading (waiting 2 seconds between each retry).
humidity, temperature = Adafruit_DHT.read_retry(sensor, pin)

# Note that sometimes you won't get a reading and
# the results will be null (because Linux can't
# guarantee the timing of calls to read the sensor).
# If this happens try again!
if humidity is not None and temperature is not None:
    print('Temp={0:0.1f}*C  Humidity={1:0.1f}%'.format(temperature, humidity))
else:
    print('Failed to get reading. Try again!')

シェルスクリプトの作成

温湿度取得スクリプト

温湿度の取得から判定、ログ出力まで行ってくれるシェルスクリプトを作成します。

● スクリプトの説明
・温湿度取得プログラムの実行
・取得した温湿度値を判定
・実行結果をログに出力

以下、シェルスクリプトになります。

#######################################################################################
#
# <スクリプト名>
# 温湿度情報判定スクリプト
#
# <概要>
# 取得した温湿度情報をログ出力を行う
#
# <更新履歴>
# 20210906 - 新規作成
#
#######################################################################################
#!/bin/bash


#####################################################################
## 事前設定
#####################################################################

# 今日の日付を取得
today=$(date "+%Y%m%d")

# 現在の時刻を取得
time=$(date '+%Y/%m/%d %T')

# カレントパスを取得
current_path=$(cd $(dirname $0); pwd)


######################################################################
# パラメータ設定
######################################################################

# ログ・ファイル
log_FILE="/var/log/temp_humi.log"

# 一時ファイル
sla_tmp_FILE="${current_path}/temp_humi_sla.log"

# CSVファイル
CSV_FILE="/var/log/temp_humi_${today}.csv"


#####################################################################
## 事前処理
#####################################################################

# ログ・ファイルがなかったら作成する
if [ ! -e log_FILE ]; then
  sudo touch ${log_FILE}
fi

# CSVファイルがなかったら作成する
if [ ! -e CSV_FILE ]; then
  sudo touch ${CSV_FILE}

fi


#####################################################################
## 温湿度を取得
#####################################################################

# 室内の温湿度を取得
python_kekka=`python <スクリプト存在パス>`
# 処理が成功しているか確認し、失敗していたら再トライする
if echo $python_kekka | grep Failed ; then
  python_kekka=`python <スクリプト存在パス>`
fi


######################################################################
## 関数:取得した温湿度情報から必要事項を各変数に格納
######################################################################
# -- 設定パラメータ情報 --
# [str_time] = 時刻
# [str_temp] = 温度
# [str_humi] = 湿度
#
#######################################################################

# 取得成功時の処理
function success_str_sed() {
  # 複数のスペースを1つに変換
  python_kekka=`echo $python_kekka | sed -e 's/(space)(space)*/(space)/g'`
  #python_kekka=`echo $python_kekka | sed -e "s/   / /g"`
  #python_kekka=`echo $python_kekka | sed -e "s/  / /g"`
  #python_kekka=`echo $python_kekka | sed -e "s/  / /g"`
echo $python_kekka
 # 配列に格納
  ary=(`echo $python_kekka`)
  # 配列から要素を抜き出す
  str_time=`echo ${ary[0]}`
  str_temp=`echo ${ary[1]}`
  str_humi=`echo ${ary[2]}`

  ### 取得した情報を整形 ###
  # 湿度値を整形
  str_temp=`echo $str_temp | sed -e "s/Temp=//g"`
  str_temp_long=`echo $str_temp | sed -e "s/*C//g"`
  str_temp_long=`echo $str_temp_long | awk '{printf("%d\n",$1)}'`
  # 温度値を整形
  str_humi=`echo $str_humi | sed -e "s/Humidity=//g"`
  str_humi_long=`echo $str_humi | sed -e "s/%//g"`
  str_humi_long=`echo $str_humi_long | awk '{printf("%d\n",$1)}'`
  echo $str_humi_long
}

# 取得失敗時の処理
function failed_str_sed(){
  failed_str=`echo $python_kekka | sed -e 's/(space)(space)*/(space)/g'`
  #failed_str=`echo $python_kekka | sed -e "s/   / /g"`
  #failed_str=`echo $failed_str | sed -e "s/  / /g"`
  failed_str=`echo $failed_str | sed -e "s/Failed//g"`
  failed_str=`echo $failed_str | sed -e "s/to//g"`
  failed_str=`echo $failed_str | sed -e "s/get//g"`
  failed_str=`echo $failed_str | sed -e "s/reading//g"`
  failed_str=`echo $failed_str | sed -e "s/Try//g"`
  failed_str=`echo $failed_str | sed -e "s/again!//g"`
}


###################################################################
## 関数:SLA判定
####################################################################
# -- 設定パラメータ情報 --
# <温度SLA>
# MAX = 30  MIN = 15
# <湿度SLA>
# MAX = 70  MIN = 30
#
#####################################################################

# SLAを判定
function SLA() {
  # 判定用の数値
  i=1
  # 温度を判定
  if [[ $str_temp_long -gt 15 ]] || [[ $str_temp_long -lt 30 ]] ; then
    i=2
    temp_logger
  fi
  # 湿度を判定
  if [[ $str_humi_long -gt 30 ]] || [[ $str_humi_long -lt 70 ]] ; then
    i=2
    humi_logger
  fi
  # SLAに合格した時の処理
  if [[ $i -eq 1 ]]; then
    success_logger
  fi
}


#####################################################################
## ログ出力
#####################################################################

### 失敗時のログ出力 ###
function failed_logger() {
  echo -n $time | sudo tee -a $log_FILE
  echo -n "   " | sudo tee -a $log_FILE
  echo -n "Error_Code=[103]" | sudo tee -a $log_FILE
  echo -n "   " | sudo tee -a $log_FILE
  echo -n "Error=[GetFailed]" | sudo tee -a $log_FILE
  echo -n "   " | sudo tee -a $log_FILE
  echo -n "Massage=[Failed to get reading. Try again!]" | sudo tee -a $log_FILE
  echo "   " | sudo tee -a $log_FILE
}

### 温度異常検知時の処理 ###
function temp_logger() {
  echo -n $time | sudo tee -a $log_FILE
  echo -n "   " | sudo tee -a $log_FILE
  echo -n "Error_Code=[101]" | sudo tee -a $log_FILE
  echo -n "   " | sudo tee -a $log_FILE
  echo -n "Error=[TemperatureFailed]" | sudo tee -a $log_FILE
  echo -n "   " | sudo tee -a $log_FILE
  echo -n "Massage=[An abnormal value was detected in the temperature value]" | sudo tee -a $log_FILE
  echo -n "   " | sudo tee -a $log_FILE
  echo -n "Value=[" | sudo tee -a $log_FILE
  echo -n $str_temp | sudo tee -a $log_FILE
  echo "]" | sudo tee -a $log_FILE
}

### 湿度異常検知時の処理 ###
function humi_logger() {
  echo -n $time | sudo tee -a $log_FILE
  echo -n "   " | sudo tee -a $log_FILE
  echo -n "Error_Code=[102]" | sudo tee -a $log_FILE
  echo -n "   " | sudo tee -a $log_FILE
  echo -n "Error=[HumidityFailed]" | sudo tee -a $log_FILE
  echo -n "   " | sudo tee -a $log_FILE
  echo -n "Massage=[An abnormal value was detected in the Humidity value]" | sudo tee -a $log_FILE
  echo -n "   " | sudo tee -a $log_FILE
  echo -n "Value=[" | sudo tee -a $log_FILE
  echo -n $str_humi | sudo tee -a $log_FILE
  echo "]" | sudo tee -a $log_FILE
}

### SLA合格時の処理 ###
function success_logger() {
  echo -n $time | sudo tee -a $log_FILE
  echo -n "   " | sudo tee -a $log_FILE
  echo -n "Error_Code=[100]" | sudo tee -a $log_FILE
  echo -n "   " | sudo tee -a $log_FILE
  echo -n "Error=[Success]" | sudo tee -a $log_FILE
  echo -n "   " | sudo tee -a $log_FILE
  echo -n "Massage=[Processing completed successfully]" | sudo tee -a $log_FILE
  echo -n "   " | sudo tee -a $log_FILE
  echo -n "Value=[ " | sudo tee -a $log_FILE
  echo -n $str_temp | sudo tee -a $log_FILE
  echo -n " & " | sudo tee -a $log_FILE
  echo -n $str_humi | sudo tee -a $log_FILE
  echo " ]" | sudo tee -a $log_FILE
}



#####################################################################
## 温湿度情報一覧の作成
#####################################################################

### 成功時のCSVファイルへ取得情報を追記する処理 ###
function writeing_csv_success() {
  echo -n $str_time | sudo tee -a $CSV_FILE
  echo -n "   " | sudo tee -a $CSV_FILE
  echo -n $str_temp | sudo tee -a $CSV_FILE
  echo -n "   " | sudo tee -a $CSV_FILE
  echo $str_humi | sudo tee -a $CSV_FILE
}



#####################################################################
## メイン処理
#####################################################################

### pythonスクリプトの出力結果によって処理を分岐する ###
if echo $python_kekka | grep Failed ; then
  # 取得失敗時の処理
  failed_str_sed
  failed_logger
else
  # 取得成功時の処理
  success_str_sed
  SLA
  writeing_csv_success
fi

ログローテートスクリプト

本スクリプトは上記スクリプトで出力した実行ログをローテートするスクリプトになります。

● スクリプトの説明
・ログ・ファイルを前日日付にリネームしコピー
・コピーしたoldログファイルをZip圧縮

以下、シェルスクリプトになります。

#######################################################################################
#
# <スクリプト名>
# 温湿度情報ログローテーションスクリプト
#
# <概要>
# 温湿度情報ログのローテーション処理を行う
#
# <更新履歴>
# 20210906 - 新規作成
#
#######################################################################################
#!/bin/bash

#####################################################################
## 事前設定
#####################################################################

# 日時取得
data=`date "+%Y%m%d"`

#####################################################################
## パラメーター設定
#####################################################################

# ログファイル
origin_FILE=/var/log/temp_humi.log

# ログ取得設定
LOGFILE=/var/log/temp_humi_${data}.log

# zipパス
LOGZIP=/var/log/temp_humi_${data}.zip


#####################################################################
## ローテーション処理
#####################################################################

exec >> ${LOGFILE} 2>&1
### ログローテート処理 ###
if [ -e ${origin_FILE} ]; then
  # ログファイルをoldログへ変換
  sudo mv ${origin_FILE} ${LOGFILE}
  # 新しいログファイルを作成
  sudo touch ${origin_FILE}
  # 移動したログファイルを圧縮
  sudo zip -j ${LOGZIP} ${LOGFILE}
  # 移動したログファイルを削除
  sudo rm -f ${LOGFILE}
else
  # スクリプトの終了
  exit
fi

Cron登録

上記2スクリプトを決められた時間に定期実行されるようにcronに登録します。

スケジュール
humidity_Temperature_get.sh – 毎日15分毎に実行
logrotate_temp_humi_log.sh – 毎日0:10に実行

● crontab追記コード

# 毎日15分毎
*/15 * * * * bash /home/chibiharu/chibiTools/temp_humi_script/humidity_temp_get.sh
# 毎日0:00
0 0 * * * bash /home/chibiharu/chibiTools/temp_humi_script/logrotate_temp_humi_log.sh

OSにCloudWatch Agentをダウンロード & 起動

続いて、スクリプトによって出力した実行ログをCloudWatch Logsに送るように設定します。
手順としては以下になります。

● 手順
1:Agentのダウンロード & インストール
2:設定ファイルの作成
3:サービスの起動

CloudWatch Agentのダウンロード

LinuxOS(オンプレ)にAgentのセットアップスクリプトをダウンロードします。
以下コマンドを実行し、カレントディレクトリに Agentのセットアップスクリプト [awslogs-agent-setup.py]が存在することを確認します。

$ # Agentのダウンロード
$ curl https://s3.amazonaws.com/aws-cloudwatch/downloads/latest/awslogs-agent-setup.py -O
$ # スクリプトの確認
$ ls
~~~ awslogs-agent-setup.py ~~~

設定ファイルの作成

ダウンロードしたセットアップスクリプトを起動し、ログの取得設定を行います。
以下コマンドを実行し、各項目に従いパラメータを設定してください。

$ # Agentのセットアップ
$ sudo python ./awslogs-agent-setup.py --region <リージョン名>
Launching interactive setup of CloudWatch Logs agent ...
 
Step 1 of 5: Installing pip ...DONE
 
Step 2 of 5: Downloading the latest CloudWatch Logs agent bits ... DONE
 
### aws アクセスキー情報は適切なものを入力する
# --only-generate-config オプション入れれば再度confファイル作り直せる。
 
Step 3 of 5: Configuring AWS CLI ...
AWS Access Key ID [****************XXXX]:
AWS Secret Access Key [****************XXXX]:
Default region name [ap-northeast-1]:
Default output format [None]:
 
#### 以降はawslogsでログの検知対象とするログファイルを指定する。
Step 4 of 5: Configuring the CloudWatch Logs Agent ...
Path of log file to upload [/var/log/messages]:
Destination Log Group name [/var/log/messages]:
 
Choose Log Stream name:
  1. Use EC2 instance id.
  2. Use hostname.
  3. Custom.
Enter choice [1]:
 
### 検知するログのタイムスタンプのフォーマット
# ここを間違えるとエラーが出まくるが、あとで書き直せる。
Choose Log Event timestamp format:
  1. %b %d %H:%M:%S    (Dec 31 23:59:59)
  2. %d/%b/%Y:%H:%M:%S (10/Oct/2000:13:55:36)
  3. %Y-%m-%d %H:%M:%S (2008-09-08 11:52:54)
  4. Custom
Enter choice [1]:
 
#### ログのどこから検知してくか?だと思う
# たぶん
#  From start of file :ファイルの最初から →アプリがまだ起動してなくて最初からcloudwatchに投げたい
#  From end of file : ファイルの最後から →アプリがすでに起動してて大量にログが書かれてるから、途中からcloudwatchに投げたい
Choose initial position of upload:
  1. From start of file.
  2. From end of file.
Enter choice [1]:
More log files to configure? [Y]: n
 
Step 5 of 5: Setting up agent as a daemon ...DONE
 
------------------------------------------------------
- Configuration file successfully saved at: /var/awslogs/etc/awslogs.conf
- You can begin accessing new log events after a few moments at https://console.aws.amazon.com/cloudwatch/home?region=ap-northeast-1#logs:
- You can use 'sudo service awslogs start|stop|status|restart' to control the daemon.
- To see diagnostic information for the CloudWatch Logs Agent, see /var/log/awslogs.log
- You can rerun interactive setup using 'sudo python ./awslogs-agent-setup.py --region ap-northeast-1 --only-generate-config'
------------------------------------------------------

また、上記設定は以下設定ファイルに追記されます。
追加でログファイルを追記したい場合、ウィザードから設定を行わなくても設定ファイルに直接追記することができます。

$ sudo vim /var/awslogs/etc/awslogs.conf
~~~ 略 ~~~
# 以下コードを最下行に記載していく
[temp_humi.log]
datetime_format = %Y-%m-%d %H:%M:%S
file = <ディレクトリパス>/temp_humi.log
buffer_duration = 5000
log_stream_name = <ログストリーム名>
initial_position = start_of_file
log_group_name = <ロググループ名>

### テンプレート ###
#[<任意の名前を指定する>]
#datetime_format = %Y-%m-%d %H:%M:%S
#file = <ログファイルのパスを記載する>
#buffer_duration = 5000
#log_stream_name = <ログストリーム名を指定する>
#initial_position = start_of_file
#log_group_name = <ロググループ名を指定する>

サービスの起動

以下コマンドを実行し、Agentを起動(常時起動)します。

$ sudo systemctl enable awslogs
$ sudo systemctl start awslogs
$ sudo systemctl restart awslogs

以上で、CloudWatch Agentの設定が完了しました。
Amazon CloudWatch Logsにて、温湿度ログを確認できるはずです。

CloudWatch アラートを作成

CloudWatch Logsにて取得した温湿度ログのイベントNo.を判定し、特定のイベントNo.を確認したら管理者へメール送信するCloudwatchアラームを作成します。

手順として以下になります。
1:CloudWacth Logs メトリクスの作成
2:CloudWatch アラームの作成

CloudWacth Logs メトリクスの作成

メトリクスを作成することで、CloudWatch Logsで取得しているログにフィルターをかけることができます。
そのフィルターをあけたログをCloudWatchにて検知した時点で後述のアラームで管理者へメール通知する流れになります。

まずはAmazon CloudWatch logs画面にて対象のロググループをクリックし、管理画面へ遷移します。

[メトリクスフィルター]タブをクリックし、メトリクスフィルター管理画面へ遷移します。
画面遷移後、画面右上の[メトリクスの作成]をクリックします。

メトリクス作成画面にて、各項目に従い以下パラメータを設定します。

● ステップ1:パターンの作成
===========================================================
フィルターパターンを作成
フィルターパターン = <フィルターパターン(以下例)>
例:”Error_Code=[101]”
===========================================================

● ステップ2:メトリクスの割り当て
===========================================================
メトリクスの詳細
メトリクス名前空間 = <任意の名前を指定する>
メトリクス名 = <任意のメトリクス名を指定する>
メトリクス値 = 1
デフォルト値(オプション) = 0
Unit = <空白>
===========================================================

● ステップ3:Review and confirm
パラメーター値の確認になります。
各項目の値に問題がなければ、画面右下[変更の保存]をクリックし、メトリクスを作成します。

画面遷移後、作成したメトリクスが表示されていることを確認します。

SNSトピックの作成

続いてメール送信用のSNSトピックを作成致します。
SNSに登録したアドレスにアラート通知を飛ばすことになりますので、ここではご自身のメールアドレスをご登録ください。

AWS管理コンソールの検索バーにて、<SNS>と検索し、表示された
[Simple Notification Service]をクリックします。

SNS左ペインダッシュボードのナビゲーションペインにて、[トピック]をクリックし、画面遷移後、画面右上[トピックの作成]をクリックします。

各項目に従い以下パラメータを設定し、画面右下[トピックの作成]をクリックします。

● トピックの作成
===========================================================
詳細
タイプ = スタンダード
名前 = <任意のお名前を指定ください>
表示名 – オプション = <任意のお名前を指定ください>
===========================================================

~~~ 以下パラメータはデフォルトのままで問題ありません ~~~

画面遷移後、SNSトピックが作成されていることをご確認ください。

作成されたトピックをクリックし、トピック管理画面にて、[サブスクリプションフィルター]をクリックします。
サブスクリプションフィルター画面にて、[サブスクリプションの作成]をクリックします。

各項目に従い以下パラメーターを設定し、画面右下[サブスクリプションの作成]をクリックします。

● サブスクリプションの作成
===========================================================
詳細
トピックARN = <ARN>
プロトコル = <Eメール>
エンドポイント = <ご自身のメールアドレス>
===========================================================

~~~ 以下パラメータはデフォルトのままで問題ありません  ~~~

画面遷移後、作成したサブスクリプションが登録されていることを確認します。

CloudWatch アラームの作成

続いてCloudWatchアラームの作成を行います。

先程作成したメトリクスフィルターのログが出力された際に、SNSトピックへメールを通知するようにアラームを作成します。

再度、CloudWatch管理画面に遷移します。

該当ロググループのメトリクスフィルターの[ □ ]にチェックを入れ、[アラームの作成]をクリックします。

各項目に従い、以下パラメーターを設定し、画面右下[次へ]をクリックします。

● ステップ1:メトリクスと条件の指定
===========================================================
— メトリクス —
メトリクス名 = <任意の名前を指定してください>
統計 = 合計
期間 = 15分 ※スクリプトの実行期間に合わせます
— 条件 —
しきい値の確認 = 静的
<メトリクス名>が次の時 = より大きい
…よりも = 0
— その他の設定 —
デフォルト値で問題ありません
===========================================================

● ステップ2:アクションの設定
===========================================================
— 通知 —
アラーム状態トリガー = アラーム状態
SNSトピックの選択 = 既存のSNSトピックを選択
通知の送信先 = <先程作成したSNSトピックを選択>
— Auto Scaling アクション —
— EC2アクション —
— Systems Manager アクション —
<デフォルト値で問題ありません>
===========================================================

● ステップ3:名前と説明を追加
===========================================================
— 名前と説明 —
アラーム名 = <任意の名前を指定してください>
アラームの説明 – オプション = <任意の名前を指定してください>
===========================================================

[ ステップ4:プレビューと作成 ]にて、設定したパラメータが問題なく設定されていることを確認し、画面右下アラームの作成をクリックします。

画面遷移後、アラームが作成されていることを確認します。

まとめ

以上が、温湿度管理システムの紹介、及び構築手順となります。

今後は、エラーの内容によって、室温を自動で調整してくれるようにエアコンやサーキュレータを自動で起動してくれるように調整できるようにしていきたいと考えています。

では本記事は以上になります。

コメント

タイトルとURLをコピーしました