:::

9. Thingspeak + ifttt程式

 

/*
OpenJumper WebServer Example
[url] http://www.openjumper.com/ethernet/ [/url]
  
顯示室內照度+開關燈控制
通過手機、平板、計算機等設備訪問
Arduino Server,就看到當前室內光線照度
在A0引腳連接光敏模塊,用於採集室內光線;在2號引腳連接LED模塊。
  
奈何col 2014.12.25
ng344 2018.05.09
*/
  
#include <SPI.h>
#include <Ethernet.h>
#include "DHT.h"
 
#define DHTPIN 2     // what digital pin we're connected to
#define DHTTYPE DHT21   // DHT 22  (AM2302), AM2321
DHT dht(DHTPIN, DHTTYPE);
 
byte mac[] = {  0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xBB  };
byte gateway[] = { 203, 68, 102, 254 };                   // internet access via router
byte subnet[] = { 255, 255, 255, 0 };                  // 24bit Subnet Mask
byte dns1[] = {163,26,1,1};
IPAddress ip(203, 68, 102, 15);
EthernetServer server(80);
EthernetClient client;
 
// ThingSpeak Settings
char thingSpeakAddress[] = "api.thingspeak.com";
String APIKey = "8DCBP9LV67D6FMJP"; // enter your channel's Write API Key
const int updateTSInterval = 20 * 1000; // 20 second interval at which to update ThingSpeak
 
// ifttt
char iftttAddress[] = "maker.ifttt.com";
String tttKey = "bbsf5MMxHbSQ3IbRNfXRbx";
String tttEvent = "tttt";
const int updateiftttInterval = 30 * 1000; // 20 second interval at which to update ifttt
 
// Variable Setup
long tslastCT = 0;
long tttlastConnectionTime = 0;
  
void setup() {
  Serial.begin(9600);
  //初始化Ethernet通信
  Ethernet.begin(mac, ip, dns1, gateway, subnet);
  server.begin();
  dht.begin();
  Serial.print( "Server is at " );
  Serial.println(Ethernet.localIP());
}
  
void loop() {
  float h = dht.readHumidity();
  float t = dht.readTemperature();
  if (isnan(h) || isnan(t)) {
    Serial.println("Failed to read from DHT sensor!");
    return;
  }
  // 監聽連入的客戶端
  client = server.available();
  if (client) {
    Serial.println( "new client" );
 //   boolean currentLineIsBlank = false ;
    while (client.connected()) {
      if (client.available()) {
          SendHTML(h,t);
          break ;
      }
    }
    delay(1);
    client.stop();
    Serial.println( "client disonnected" );
  }
 
  // Update ThingSpeak
  if ((millis() - tslastCT) > updateTSInterval) {
    Serial.println( "Update ThingSpeak" );
    updateThingSpeak("GET /update?api_key="+APIKey+"&field1="+String(t)+"&field2="+String(h));
  }
 
  // Update ifttt
    if ((millis() - tttlastConnectionTime > updateiftttInterval)) {
    Serial.println( "Update ifttt" );
    updateifttt("GET /trigger/"+tttEvent+"/with/key/"+tttKey+"?value1="+String(t)+"&value2="+String(h)+"  HTTP/1.1\r\n");
  }

}
  
// 用於輸出HTML文本的函數
void SendHTML(float h, float t)
{
  client.println( "HTTP/1.1 200 OK" );
  client.println( "Content-Type: text/html" );
  client.println( "Connection: close" );
  client.println();
  //client.println( "<!DOCTYPE HTML>" );
  //client.println( "<html><head><meta charset=\"UTF-8\"><title>Arduino Web Server</title>" );
  //client.println( "</head><body>" ); 
 
  client.println("<prtg>");
  client.println("<result><channel>Humidity</channel>");
  client.print("<float>1</float><unit>%</unit><DecimalMode>2</DecimalMode><value>");
  client.print(h);
  client.println("</value></result>");
  client.println("<result><channel>Temperature</channel>");
  client.print("<float>1</float><unit>degree</unit><DecimalMode>2</DecimalMode><value>");
  client.print(t);
  client.println("</value></result>");
  client.println("</prtg>");
 
  //client.println( "</body></html>" );
}
 
void updateThingSpeak(String tsData) {
  if ( !client.connect("api.thingspeak.com", 80)) {
        Serial.println( "connection failed" );
        return;
  } else {
    client.print(tsData);
    Serial.println(tsData);
    client.print("Host: api.thingspeak.com\r\n");
    client.print("Connection: close\r\n\r\n");
    client.stop();
    tslastCT = millis();
  }
}
 
void updateifttt(String tttData) {
  if ( !client.connect("maker.ifttt.com", 80)) {
        Serial.println( "connection failed" );
        return;
  } else {
    Serial.println(tttData);
    client.print(tttData + " HTTP/1.1\r\n" +
               "Host: maker.ifttt.com\r\n" + 
               "Connection: close\r\n\r\n");
    delay(100);
    client.stop();
    tttlastConnectionTime = millis();
  }
}

 


搜尋

錯誤訊息
未知: 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
未知: Function get_magic_quotes_gpc() is deprecated 在檔案中的第 /class/libraries/vendor/xoops/xmf/src/Request.php 列 505
未知: Function get_magic_quotes_gpc() is deprecated 在檔案中的第 /class/libraries/vendor/xoops/xmf/src/Request.php 列 119
未知: Function get_magic_quotes_gpc() is deprecated 在檔案中的第 /class/libraries/vendor/xoops/xmf/src/Request.php 列 505
未知: Function get_magic_quotes_gpc() is deprecated 在檔案中的第 /class/libraries/vendor/xoops/xmf/src/Request.php 列 119
未知: Function get_magic_quotes_gpc() is deprecated 在檔案中的第 /class/libraries/vendor/xoops/xmf/src/Request.php 列 119
未知: Function get_magic_quotes_gpc() is deprecated 在檔案中的第 /class/libraries/vendor/xoops/xmf/src/Request.php 列 119
通知: Undefined variable: disabled 在檔案中的第 /modules/tad_book3/function.php 列 818
通知: Undefined variable: disabled 在檔案中的第 /modules/tad_book3/function.php 列 818
通知: Undefined variable: disabled 在檔案中的第 /modules/tad_book3/function.php 列 818
通知: Undefined variable: disabled 在檔案中的第 /modules/tad_book3/function.php 列 818
通知: Undefined variable: disabled 在檔案中的第 /modules/tad_book3/function.php 列 818
通知: Undefined variable: disabled 在檔案中的第 /modules/tad_book3/function.php 列 818
通知: Undefined variable: disabled 在檔案中的第 /modules/tad_book3/function.php 列 818
通知: Undefined variable: disabled 在檔案中的第 /modules/tad_book3/function.php 列 818
通知: Undefined variable: disabled 在檔案中的第 /modules/tad_book3/function.php 列 818
通知: Undefined variable: disabled 在檔案中的第 /modules/tad_book3/function.php 列 818
通知: Undefined variable: disabled 在檔案中的第 /modules/tad_book3/function.php 列 818
通知: Undefined variable: disabled 在檔案中的第 /modules/tad_book3/function.php 列 818
通知: Undefined variable: disabled 在檔案中的第 /modules/tad_book3/function.php 列 818
通知: Undefined variable: disabled 在檔案中的第 /modules/tad_book3/function.php 列 818
通知: Undefined variable: disabled 在檔案中的第 /modules/tad_book3/function.php 列 818
通知: Undefined variable: disabled 在檔案中的第 /modules/tad_book3/function.php 列 818
通知: Undefined index: bootstrap 在檔案中的第 /modules/tadtools/preloads/core.php 列 68
已棄用
資料庫語法
0.000076 - SET SQL_BIG_SELECTS = 1
0.000707 - SELECT * FROM config WHERE (`conf_modid` = '0' AND `conf_catid` = '1') ORDER BY conf_order ASC
0.000201 - SELECT sess_data, sess_ip FROM session WHERE sess_id = '6403u2gng5ui6d78uqi5p6tj4j'
0.000305 - SELECT * FROM modules WHERE dirname = 'tad_book3'
0.000496 - SELECT COUNT(*) FROM group_permission WHERE (`gperm_modid` = '1' AND (`gperm_groupid` = '3') AND `gperm_name` = 'module_read' AND `gperm_itemid` = '9')
0.000310 - SELECT * FROM config WHERE (`conf_modid` = '9') ORDER BY conf_order ASC
0.000516 - select a.tbsn,a.title,b.author,a.category,a.page,a.paragraph,a.sort from tad_book3_docs as a left join tad_book3 as b on a.tbsn=b.tbsn where a.tbdsn='456'
0.000207 - SELECT tbsn,title FROM tad_book3 ORDER BY sort
0.000414 - SELECT * FROM config WHERE (`conf_modid` = '0' AND `conf_catid` = '5') ORDER BY conf_order ASC
0.000288 - SELECT COUNT(*) FROM banner
0.000132 - SELECT * FROM banner LIMIT 1, 1
0.004804 - UPDATE banner SET impmade = 1277946 WHERE bid = 2
0.000386 - SELECT * FROM config WHERE (`conf_modid` = '0' AND `conf_catid` = '3') ORDER BY conf_order ASC
0.001241 - SELECT DISTINCT gperm_itemid FROM group_permission WHERE gperm_name = 'block_read' AND gperm_modid = 1 AND gperm_groupid IN (3)
0.001015 - SELECT b.* FROM newblocks b, block_module_link m WHERE m.block_id=b.bid AND b.isactive=1 AND b.visible=1 AND m.module_id IN (0,9) AND b.bid IN (1,2,3,4,5,6,7,8,9,10,11,18,15,16,20,19,58,60,61,73,72,74,71,76,75,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,111,109,110,112,113,114,115,116,117,118,119,120,121,122,123) ORDER BY b.weight, m.block_id
0.000761 - SELECT f.*, s.tpl_source FROM tplfile f LEFT JOIN tplsource s ON s.tpl_id=f.tpl_id WHERE (`tpl_tplset` = 'default' AND `tpl_file` = 'system_block_search.tpl') ORDER BY tpl_refid
0.004186 - update tad_book3_docs set `count` = `count`+1 where tbdsn='456'
0.000285 - select * from tad_book3_docs where tbdsn='456'
0.000187 - select * from tad_book3 where tbsn='10'
0.000232 - select mid from modules where dirname='tad_book3'
0.000562 - desc `tad_book3_data_center` `sort`
0.000226 - select `col_sn`,`data_name`,`data_sort`, `data_value` from `tad_book3_data_center` where `mid`= '9' and `col_name`='read_tbdsn_date' and `col_sn`='456' order by `sort` , `data_sort`
0.001462 - select tbdsn,title,content,category,page,paragraph,sort,enable,uid,from_tbdsn from tad_book3_docs where tbsn='10' and `enable`='1' order by category,page,paragraph,sort
0.000997 - select tbdsn,title,category,page,paragraph,sort from tad_book3_docs where tbsn='10' and (`content` != '' or `from_tbdsn` != 0) and enable='1' order by category,page,paragraph,sort
0.000223 - SELECT * FROM modules WHERE dirname = 'tadtools'
0.000290 - SELECT * FROM config WHERE (`conf_modid` = '4') ORDER BY conf_order ASC
0.000174 - select mid from modules where dirname='tad_book3'
0.000375 - desc `tad_book3_data_center` `sort`
0.000221 - select `col_sn`,`data_name`,`data_sort`, `data_value` from `tad_book3_data_center` where `mid`= '9' and `col_name`='video_tbdsn_date' and `col_sn`='456' order by `sort` , `data_sort`
0.000234 - select groupid,name from groups
0.000425 - select * from `tad_book3_files_center` where `col_name`='mp4' and `col_sn`='456' and `kind`='file' order by sort limit 0,1
0.000341 - select `tt_theme`,`tt_use_bootstrap`,`tt_bootstrap_color`,`tt_theme_kind` from `tadtools_setup` where `tt_theme`='school2015'
0.000480 - SELECT f.*, s.tpl_source FROM tplfile f LEFT JOIN tplsource s ON s.tpl_id=f.tpl_id WHERE (`tpl_tplset` = 'default' AND `tpl_file` = 'tadbook3_index.tpl') ORDER BY tpl_refid
0.000252 - SELECT * FROM modules WHERE dirname = 'tad_themes'
0.000284 - SELECT * FROM config WHERE (`conf_modid` = '3') ORDER BY conf_order ASC
0.000179 - select `tt_bootstrap_color` from tadtools_setup where `tt_theme`='school2015'
0.000374 - select * from tad_themes where `theme_name`='school2015'
0.000244 - select conf_value from config where conf_title ='_MD_AM_DEBUGMODE'
0.000289 - select * from tad_themes_blocks where `theme_id`='7'
0.000209 - select mid from modules where dirname='tad_themes'
0.000567 - desc `tad_themes_data_center` `sort`
0.000152 - select `col_sn`,`data_name`,`data_sort`, `data_value` from `tad_themes_data_center` where `mid`= '3' and `col_name`='theme_id' and `col_sn`='7' order by `sort` , `data_sort`
0.000205 - select conf_value from config where conf_name ='allow_register'
0.000346 - select `mid`, `name`, `dirname` from modules where isactive='1' and hasmain='1' and weight!=0 order by weight
0.000164 - SELECT * FROM modules WHERE dirname = 'tad_blocks'
0.000191 - select conf_value from config where conf_title ='_MD_AM_DEBUGMODE'
0.000242 - select count(*) from priv_msgs where `to_userid` ='0' and `read_msg`=0 group by `to_userid`
0.000415 - select `menuid`, `itemname`, `itemurl`, `target`, `icon`, `link_cate_name`, `link_cate_sn`, `read_group` from tad_themes_menu where of_level='0' and status='1' order by position
0.000190 - select `menuid`, `itemname`, `itemurl`, `target`, `icon`, `link_cate_name`, `link_cate_sn`, `read_group` from tad_themes_menu where of_level='11' and status='1' order by position
0.000155 - select `menuid`, `itemname`, `itemurl`, `target`, `icon`, `link_cate_name`, `link_cate_sn`, `read_group` from tad_themes_menu where of_level='14' and status='1' order by position
0.000145 - select `menuid`, `itemname`, `itemurl`, `target`, `icon`, `link_cate_name`, `link_cate_sn`, `read_group` from tad_themes_menu where of_level='15' and status='1' order by position
0.000142 - select `menuid`, `itemname`, `itemurl`, `target`, `icon`, `link_cate_name`, `link_cate_sn`, `read_group` from tad_themes_menu where of_level='17' and status='1' order by position
0.000140 - select `menuid`, `itemname`, `itemurl`, `target`, `icon`, `link_cate_name`, `link_cate_sn`, `read_group` from tad_themes_menu where of_level='16' and status='1' order by position
0.000157 - select `menuid`, `itemname`, `itemurl`, `target`, `icon`, `link_cate_name`, `link_cate_sn`, `read_group` from tad_themes_menu where of_level='18' and status='1' order by position
0.000449 - select a.* from tad_themes_files_center as a left join tad_themes as b on a.col_sn=b.theme_id where a.`col_name`='slide' and b.`theme_name`='school2015'
0.000299 - SELECT * FROM modules WHERE dirname = 'tad_login'
0.000379 - SELECT * FROM config WHERE (`conf_modid` = '14') ORDER BY conf_order ASC
總計: 57
區塊
搜尋: 沒有快取
總計: 1
額外資訊
包含檔案: 204 檔案
使用記憶體: 6971984 bytes
計時
XOOPS 使用 0.134 秒來載入。
XOOPS Boot 使用 0.028 秒來載入。
Module init 使用 0.008 秒來載入。
XOOPS output init 使用 0.038 秒來載入。
Module display 使用 0.031 秒來載入。
Page rendering 使用 0.027 秒來載入。