ThingSpeak
Last updated
Was this helpful?
Last updated
Was this helpful?
由於現在Internet of Thing(物聯網)發展快速,希望設備資訊狀態能透過通訊能隨時監測的狀況下,也越來越多的雲端IOT資料平台,例如現在要用的ThingSpeak,把Raspberry Pi上的溫濕度透過網路傳送到ThingSpeak網站上,然後就可以透過網站就可以即時知道目前Raspberry Pi的溫濕度狀況,接下來先申請ThingSpeak的帳號
進入ThingSpeak網站(https://thingspeak.com),可以看到如下的畫面,請點選畫面中綠底白字的「Get Started For Free」
接著會看到如下的表單,請依序填寫完成後,點選下方藍底白字的「Continue」,接著會轉到另一個頁面,告知要去註冊的E-Mail收信,並點選mail中的連結做確認
註冊完後,正常會收到一封確認信在註冊的E-Mail,如下圖為收到的確認信,請點選「Verify your email」或下方的連結
點選後,會轉到MathWorks網站,看到「Your profile was verified」代表確認完成
接著再打開進入ThingSpeak網站(https://thingspeak.com),點選右上角的「Sign In」會看到如下圖的登入畫面,請輸入註冊的E-Mail,然後點選「Next」
輸入註冊時所填寫的密碼後,點選「Sign In」
第一次登入時會出現如下的畫面,從剛剛確認信點選連結時轉跳到MathWorks時就會發現,其實註冊的是MathWorks帳號,只是做了連結,在此頁會說明…,看完點選「OK」即可
接著出現一個表單,問使用ThingSpeak的意圖,那請自已選取後,點選下方的「OK」
看到下圖的畫面代表已經完成註冊並且登入
註冊好帳及並且登入ThingSpeak後,會進入My Channels頁面,目前是沒有專案的,只有一個「New Channel」和一個搜尋的欄位,那如果建立了很多的Channels時可以輸入該Channel的tag後,點選右邊的方大鏡做搜尋,那先點選「New Channel」
點選「New Channel」後會看到有很多的欄位,那右邊有help及欄位的說明,最主要填寫「Name」和「Field」Name的部分可依自已喜好填寫,這邊先填入「DHT22」,Field這部分一個chanel最多就是8個Field,但我們目前就是溫度和濕度兩個值,所以就在Field1填寫「temperature」,在Field2填寫「humidity」這個所填寫的文字會顯示在圖上Y軸的左方,當然也可以直接填寫中文;也可以填寫一下「Description」說明這個channel是做什麼用的,另外下方有一個「Tags」有填寫在搜尋的地方才找得到,填寫完成後就點選下方的「Save Channel」
接著就進入剛剛所建立的channel,會出現如下圖的畫面,上方有說明,功能列及圖表,分別為Field1(溫度temperature),Field2(濕度humidity),但目前是空的,所以沒有畫圖
接下來就在瀏覽器中直接執行下面的網址做測試,注意一下網址,有修改field1及field2及其後方的值
溫度(Field1)
濕度(Field2)
測試手動執行網址可以上傳到channl後,那接下來使用python把所取得的溫濕度上傳到ThingSpeak所建立的channel,接著把下方的程式碼複製到Raspberry Pi中,並且儲存成dht22.py,並加入可執行的權限
程式原始碼:
執行測試程式,執行指令./dht22.py
或 python dht22.py 就會出現如下的畫面
dht22.py程式只會執行一次後就結束程序,所以這邊透過設定crontab去定時執行dht22.py程式把資料傳送到ThingSpeak上,設定的方式很簡單執行以下的指令
然後加入下面這一行指令後儲存,下面的設定是每10分鐘執行一次,如果要測試可以自已修改該數值
儲存後,再回到ThingSpeak上看channel內的溫濕度是否有新增資料
channel建立好了,接下來就是要傳送資料到這個channel,在功能列的地方,選「API Keys」,會看到Write API Keys及Read API Keys,右下角有一個「API Requests」區塊,已經提供可以馬上使用的API網址,就可以透過網址,填入key及field的值就可以把資料上傳,當然要上傳資料就要使用「Update a Channel Feed」這串網址「https://api.thingspeak.com/update?api_key=Q8BGENDUC797GENI&field1=0 」,另外這個key值非常重要,api只認key,不認使用者帳號,所以key值給了別人,就可以對該key值的channel做更新,如果要更換key值,只要在點選key值下方的「Generate) New ... API Key」就可以產生新的key值
再回到所建立的channel首頁,就可以看到剛剛執行的update網址,已經把所設定的field1及field2值上傳,系統會自動畫出線圖,x軸就是上傳的時間,y軸就是上傳的值,如下圖
程式執行完後再回到ThingSpeak上所建立的channel,如下圖也新增了一筆剛剛執行dht22.py程式所上傳的資料,可以把滑鼠指標移到圓點上,會出現一個浮動訊息視窗,裡面顯示該點的時間及溫度或濕度