空間活動偵測 -2 google app script


以Post的方式接收由pushingbox傳來的訊息,分別是磁簧開關5組,及人體紅外線6組
app script 接收端程式
  1. function doPost(e) {
  2. var params = e.parameter;
  3. //現在時間
  4. var now = Utilities.formatDate(new Date(), "GMT+8", "yyyy-MM-dd HH:mm:ss");
  5.  
  6. //編號1 的板子
  7. if(params.board==1){
  8. //*** 接收接點開關資料 ***//
  9. if(params.RS0){
  10. Logger.log('接收接點開關資料');
  11. //將Sheet指定為"資料庫"試算表 SpreadSheet = 試算表
  12. var SpreadSheet = SpreadsheetApp.openById("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
  13. //取得頁籤:"工作表1" Sheet = 頁籤
  14. var Sheet = SpreadSheet.getSheetByName("board1 接點開關");
  15. //取得有資料的最後一行的"行數"(目的要在最後一行插入新資料)
  16. var LastRow = Sheet.getLastRow();
  17. //--開始寫入資料--
  18. //在最後一行的下一行寫入資料
  19. Sheet.getRange(LastRow+1, 1).setValue(now);
  20. //寫入time
  21. Sheet.getRange(LastRow+1, 2).setValue(params.time);
  22. //寫入data
  23. Sheet.getRange(LastRow+1, 3).setValue(params.RS0); //RS = Reed Switch 磁簧開關
  24. Sheet.getRange(LastRow+1, 4).setValue(params.RS1);
  25. //Sheet.getRange(LastRow+1, 5).setValue(params.RS2);
  26. Sheet.getRange(LastRow+1, 5).setValue(params.RS3);
  27. Sheet.getRange(LastRow+1, 6).setValue(params.RS4);
  28. Sheet.getRange(LastRow+1, 7).setValue(params.RS5);
  29. //寫入結束後傳回true
  30. return ContentService.createTextOutput(true);
  31. }
  32. //*** 接收人體感測資料 ***//
  33. if(params.human0){
  34. Logger.log('接收人體感測資料');
  35. //將Sheet指定為"資料庫"試算表 SpreadSheet = 試算表
  36. var SpreadSheet = SpreadsheetApp.openById("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
  37. //取得頁籤:"工作表1" Sheet = 頁籤
  38. var Sheet = SpreadSheet.getSheetByName("board1 人體紅外線");
  39. //取得有資料的最後一行的"行數"(目的要在最後一行插入新資料)
  40. var LastRow = Sheet.getLastRow();
  41. //--開始寫入資料--
  42. //在最後一行的下一行寫入資料
  43. Sheet.getRange(LastRow+1, 1).setValue(now);
  44. //寫入time
  45. Sheet.getRange(LastRow+1, 2).setValue(params.time);
  46. //寫入data
  47. Sheet.getRange(LastRow+1, 3).setValue(params.human0);
  48. Sheet.getRange(LastRow+1, 4).setValue(params.human1);
  49. Sheet.getRange(LastRow+1, 5).setValue(params.human2);
  50. Sheet.getRange(LastRow+1, 6).setValue(params.human3);
  51. Sheet.getRange(LastRow+1, 7).setValue(params.human4);
  52. Sheet.getRange(LastRow+1, 8).setValue(params.human5);
  53. //寫入結束後傳回true
  54. return ContentService.createTextOutput(true);
  55. }
  56. }
  57. }
結果



發送前一天活動情況數據,將幾月幾日訊息傳送給pushingbox,圖片連結已經放在pushingbox端
  1. function push_image() {
  2. var month = Utilities.formatDate(new Date(), "GMT-8", "MM");
  3. var day = Utilities.formatDate(new Date(), "GMT-8", "dd");
  4. var URL = "http://api.pushingbox.com/pushingbox?devid=vxxxxxxxxxxxxxxx";
  5. URL += "&month=";
  6. URL += month;
  7. URL += "&day=";
  8. URL += day;
  9. //開始連接網址
  10. var response = UrlFetchApp.fetch(URL);
  11. //var response = UrlFetchApp.fetch("http://api.pushingbox.com/pushingbox?devid=vxxxxxxxxxxxxxxx");
  12. Logger.log(response.getContentText());
  13. }





留言

這個網誌中的熱門文章

python nn 聲音辨識 -1 傅立葉轉換

android 定時通知(永久長期的) 本篇只講AlarmManager使用

C# 模擬鍵盤滑鼠控制電腦

raspberrypi 開機自動執行程式 與 在terminal開啟第二個terminal執行python

python pyautogui 簡介