我的ESP32實做書籍:https://youyouyou.pixnet.net/blog/post/121105860
博客來網址:https://www.books.com.tw/products/0010901195


Arduino儲存資料除了用SD卡外,最重要的就是用網路上傳到雲端儲存,目前最流行的還是以Thingspeak,優點是方便,缺點是如果要自己分析這些資料時比較麻煩,此外也可以參考之前的文件:Arduino存入Mysql資料使用ESP32可以直接存入mysql,不過這樣要自己架伺服器,如果說能存入google sheet那不用自己架站,也可以很快分析自己的資料。

本案例以說明如何使用ESP32將DHT11溫濕度存入IFTTT中以下簡要說明步驟

一、申請IFTTT
二、建立Applet webhook服務
三、測試服務
四、Arduino程式碼


一、申請IFTTT服務: https://ifttt.com/

這是一個網路IoT非常流行的服務,負責幫你導向做一些反應(我也不知道如何解釋),例如溫度超過100度,就做什麼反應,很多人可以用來搭配LINE訊息或者gmail等
IFTTT的意思是If This Then That的縮寫

首先進入網站後,進行註冊,建議直接使用Google帳號。

註冊過程本處省略。


二、申請Webhook服務:

Webhook意思是web掛勾,可以解釋成一種不同網路服務之間的連鎖反應,hook就是虎克船長的手,可以用來勾東西,申請這個的意思是,當我們把資料送到IFTTT時,讓IFTTT做一些判斷後再幫我們把資料轉到其他地方去,本例就是利用hook轉送到google sheet中。

1.點選左上角的my applet後,點選右方的new applet

2.點選大藍色+this圖塊

3.篩選服務類型為webhook後,點選下方的webhooks服務

4.點選Receive a web request

5.輸入自己的Event name,本案例寫4Fclassroom,代表這是4F教室會發生的事件,另外注意這個欄位很重要輸入完要記得,不能亂輸入,也建議不要用中文,因為會跟下一個步驟相關。

5.點選+that:完成wook前端後,要來完成後端,也就是資料進來以後,ifttt要做什麼

6.輸入google sheet篩選服務,並點選下方的google sheet圖示

7.選擇左方,Add row to spreadsheet

8.接下來就依照需求輸入欄位

spreadsheet name:

是存入google drive時的sheet名子,這裡可以用中文

Formatted row:

當資料寫入sheet中,需要寫入哪些欄位,預設值包括
OccurredAt:時間
EventName:事件名稱
Value1:寫入欄位1(本例為溫度)
Value2:寫入欄位2(本例為濕度)

Drive folder path:

Sheet將放在哪個資料夾,如果像本圖一樣空值,則放在Google Diver 的Ifttt資料夾(若無會建立目錄)中

9.最後點選finish,完成所有設定


三、測試服務

1.點選上方功能表的my applets,找到自己建立好的webhook圖示,點選圖示左上角的webhook圖示。

2.點選Documentation,進入測試功能

3.輸入測試資料

1.event的地方輸入步驟一的event name,本例為4Fclassroom
2.輸入value1:30,value2:60,代表未來溫度與濕度會從這裡傳入,而value1,2是溫度與濕度,測試時先分別給30、60
3.完成後,按下方的test it

4.觀察Google sheet是否有值,完成後,到你自己的google drive中,找到ifttt資料夾,裡面就會有一個之前給的檔名的sheet檔案

5.http get測試,除了使用提供的界面之外,也可以直接利用網址來測試,其方式是將網址後端補上?value1=30&value2=99(此處改99目的是要跟上方的測試做區別,才知道是哪一種來源所傳入的資料),這樣就可不用傳json
此外將https改成http進行測試(目的在確認http也可以用,不一定要用https)
將網址輸入在chrome或其他瀏覽器的網址列看看

6.觀察google sheet的值,確實已經進來了,此處可以確認,只要讓Arduino瀏覽這個字串即可傳值進到google sheet中。


四、Arduino程式碼

本處使用ESP32進行測試,關於ESP32可以查看以前的文章:ESP32 Arduino開發環境架設(取代Arduino UNO及ESP8266首選)
露天搜尋: https://goods.ruten.com.tw/item/show?21848118800764
完成上述的設定之後,接下來只需要簡單的http client即可傳值進入google sheet,DHT11函式庫本人使用simpleDHT by Winlin的library(冷門但是我習慣了)。
要注意的地方是第44行,如何將溫濕度的值轉成string並插入url中。

傳輸成功的訊息視窗,須注意,有時這裡顯示成功,但sheet裡面沒資料,那是因為IFTTT卡住(可能太多人在用)

1.要注意的是google sheet最高40000列,超過會建立新的表?
2.IFTTT不要太密集,建議60秒傳輸一次,太密集會卡住,收不到資料。

arrow
arrow
    文章標籤
    IFTTT Arduino ESP32 Google
    全站熱搜

    夜市 小霸王 發表在 痞客邦 留言(4) 人氣()