Back

幫PM2.5偵測器加上LINE通知

Menu
路過的訪客
#1
2016-12-03 08:03:33
先註冊line notify跟IFTTT,然後在IFTTT上開通2項服務MAKER跟LINE,
IFTTT就是IF This Then That的縮寫,
它的原理就是:如果(if)MAKER收到PM25的訊號(this)就(then)LINE通知(that)

詳細申請與設定步驟可參考網路文章 http://k12cc.tw/tools/page/show_page.php?page_url=%2FSite%2Fkc12266%2Fdir_AKFdZq%2Farticle_qsXqz6.html

MAKER在設定好後,會得到一組APIKEY,與自訂的啟動指令,跟資訊中心提供的資料庫介接方法很類似,
以GET或POST把這串帶有APIKEY與自訂指令的網址送出後,MAKER收到就會啟動LINE通知,
不過上面的教學大章使用的是scratch,要送出https的網址比較簡單,我們的ESP8266就複雜一些,得再修改一下原本的程式碼

MAKER是以https接收,所以多引入一個#include <WiFiClientSecure.h>
接著仿照原本程式30分鐘傳回資訊中心資料庫的寫法,
多設一組計時器,把時間間隔加大到1小時或更久,才不會空氣品質不好時,LINE半小時就叮咚一次
<pre>
  if(abs( millis() - updateStart2) > updateInterval2 && T>=54 ) { 
   
   WiFiClientSecure client;
    if( !client.connect("maker.ifttt.com", 443 ) )
    {
         return;
    }
    else
    {
        String getStr_line = "GET /trigger/自訂指令/with/key/MAKER的APYKEY  HTTP/1.1\r\n";
        client.print( getStr_line );
        client.print( "Host: maker.ifttt.com\n" );
        client.print( "Connection: close\r\n\r\n" );
        client.stop();
        updateStart2 = millis();    
        }  
   }
</pre>

把修改好的程式碼再燒錄回ESP8266,
資訊中心已有提供貼紙,產生貼紙時會自動去抓取資料庫裡最新的一筆資料,
我覺得這超讚的,在送回MAKER的資料就不用加上PM2.5的數據了
直接在LINE通知的貼圖填入網址
http://pm25.tn.edu.tw/xoops/uploads/tn_pm25/學校代碼_貼紙種類.png
這樣就大功告成了




第一頁 上一頁 1 下一頁 最後頁

幫PM2.5偵測器加上LINE通知

Menu
要先登入才能發表。
全部 錯誤訊息 (9) 已棄用 (0) 資料庫語法 (15) 區塊 (0) 額外資訊 (2) 計時(3)
錯誤訊息
未知: Array and string offset access syntax with curly braces is deprecated 在檔案中的第 /include/functions.encoding.php 列 40
未知: Array and string offset access syntax with curly braces is deprecated 在檔案中的第 /include/functions.encoding.php 列 40
未知: Array and string offset access syntax with curly braces is deprecated 在檔案中的第 /include/functions.encoding.php 列 73
通知: Undefined index: bootstrap 在檔案中的第 /modules/tadtools/class/Utility.php 列 844
通知: Undefined variable: dir 在檔案中的第 /modules/tad_discuss/pda.php 列 266
通知: Undefined variable: width 在檔案中的第 /modules/tad_discuss/pda.php 列 266
通知: Undefined variable: main 在檔案中的第 /modules/tad_discuss/pda.php 列 293
通知: Undefined variable: form_data_edit 在檔案中的第 /modules/tad_discuss/pda.php 列 337
通知: Undefined variable: title 在檔案中的第 /modules/tad_discuss/pda.php 列 771
已棄用
資料庫語法
0.000071 - SET SQL_BIG_SELECTS = 1
0.000769 - SELECT * FROM config WHERE (`conf_modid` = '0' AND `conf_catid` = '1') ORDER BY conf_order ASC
0.000306 - SELECT sess_data, sess_ip FROM session WHERE sess_id = '8h2fis0c4mtdpeadtbbspjer65'
0.000378 - SELECT * FROM modules WHERE dirname = 'tad_discuss'
0.000584 - SELECT COUNT(*) FROM group_permission WHERE (`gperm_modid` = '1' AND (`gperm_groupid` = '3') AND `gperm_name` = 'module_read' AND `gperm_itemid` = '13')
0.000406 - SELECT * FROM config WHERE (`conf_modid` = '13') ORDER BY conf_order ASC
0.000356 - SELECT * FROM modules WHERE dirname = 'tadtools'
0.000329 - SELECT * FROM config WHERE (`conf_modid` = '4') ORDER BY conf_order ASC
0.000363 - select * from tad_discuss where DiscussID='66'
0.000330 - SELECT COUNT(*) FROM group_permission WHERE (`gperm_modid` = '13' AND (`gperm_groupid` = '3') AND `gperm_name` = 'forum_read' AND `gperm_itemid` = '1')
0.005531 - update tad_discuss set `Counter`=`Counter`+1 where `DiscussID`='66'
0.000325 - select * from `tad_discuss_board` where `BoardID` = '1'
0.000542 - select * from tad_discuss where DiscussID='66' or ReDiscussID='66' order by ReDiscussID , DiscussDate
0.000403 - select * from tad_discuss where DiscussID='66' or ReDiscussID='66' order by ReDiscussID , DiscussDate LIMIT 0, 20
0.000397 - select * from `tad_discuss_files_center` where `col_name`='DiscussID' and `col_sn`='66' order by sort
總計: 15
區塊
總計: 0
額外資訊
包含檔案: 104 檔案
使用記憶體: 4669208 bytes
計時
XOOPS 使用 0.061 秒來載入。
XOOPS Boot 使用 0.030 秒來載入。
Module init 使用 0.032 秒來載入。