あれ、なんかIoTっぽいことしてなくない?
なんかこう、IoTってスマホやパソコンから指示を出したらその結果が通知されたり、家電が動いたりするっていうイメージがあるじゃないですか?(あると思います)
「HAGUKUMU」ではその辺の機能ってないなーと思ったので、番外編①では、LINE Notifyを使って水耕栽培の現在の状況を知らせる機能を作る。
実装してみる
実装に当たって必要なのはLINE Notifyの登録とGASでプログラムすること。
まあ大体のやり方はここの記事にあるのでそれを見ながら実装する。
function lineAssigned() {
var lastRow = dsheet.getLastRow();
var table = dsheet.getRange(lastRow,1,1,D_DUM).getValues();
array = {
"date":table[0][0],
"temp":table[0][1],
"humi":table[0][2],
"weth":table[0][3],
"lat" :table[0][4],
"lon" :table[0][5],
"mage":table[0][6],
"sunr":table[0][7],
"suns":table[0][8],
"batt":table[0][9],
"img" :table[0][10],
"gimg":table[0][11],
"heit":table[0][12],
"lswh":table[0][13],
}
var content = '\n\n川上ちりやが今の状況をおしらせします!'
+ '\n' + array.date + 'の環境情報は以下になります。'
+ '\n気温:' + array.temp
+ '\n湿度:' + array.humi
+ '\n天気:' + array.weth
+ '\n植物の高さ:' + array.heit + 'cm'
+ '\n日出:' + array.sunr
+ '\n日没:' + array.suns
+ '\n月齢:' + array.mage
+ '\nライトON/OFF:' + array.lswh + ' (ライトは19時以降点灯、6時に消灯)'
+ '\nMUバッテリー残量:' + array.batt
+ '\n緯度:' + array.lat
+ '\n経度:' + array.lon;
sendHttpPost_lineAssigned(content);
if (array.heit == 'err'){
errmsg = '\n\n植物の高さの数値が異常です。以下の要因が考えられます' +
'\n\n・植物が植えられていない' +
'\n・植物が計測可能なサイズではない' +
'\n・サーボモーターの異常' +
'\n・サーボモータのジャンパピンが刺さっていない';
sendHttpPost_lineAssigned(errmsg);
}
}
function cron_lineAssigned() {
var now = new Date();
lineAssigned(now);
}
function sendHttpPost_lineAssigned(content){
var token = ["yout_token"];
var options =
{
"method" : "post",
"payload" : "message=" + content,
"headers" : {"Authorization" : "Bearer "+ token}
};
UrlFetchApp.fetch("https://notify-api.line.me/api/notify", options);
}
こんなかんじ。
それではご覧いただこう
できた。
ちなみに高さが計測できていない場合は
このようにエラー通知してくれる。
前回:⑫完成
次回:番外編②ライト操作機能