2016年4月20日 星期三

Cayenne 雲端網路新增 Trigger 觸發器

 

常見的控制溫度專題,使用溫度感測器元件(例如DS18B20),取得溫度值,然後由GPIO控制輸出裝置(例如LED、繼電器、喇叭....)  ,在程式內設定控制邏輯,例如大於40度就要點亮LED燈(或是啟動繼電器),小於35度就關閉LED燈。

以往這樣的專題,必須突破重重難關才能完成,如果初學者想要快速達成這樣的功能,先有初步的體驗,感受一下 IoT 的強大威力,學習者將會更有動機學習完整的程式技術。使用 Cayenne 雲端網路可以快速完成這樣的專題設計。

登入網站  http://www.cayenne-mydevices.com/signin ,輸入之前註冊的帳號密碼,連線進入 Cayenna雲端網路

新增觸發事件
點選Add New -> Trigger 新增觸發器
將左側面版上的 Raspberry Pi物件,用滑鼠拖拉到右側 if 條件區域
同時選擇對應觸發的設備—DS18B20
image_thumb[11]

  設定觸發條件: 當DS18B20偵測到的溫度值大於40度,就要執行then區塊所指定的工作
image_thumb[13]

在右側面板以滑鼠拖拉Raspberry Pi物件,放到右側then區塊,

因為之前已經新增過一個用來控制 pin12 接腳(GPIO18)的LED燈的Digital Output設備,所以在右側 [Select Action] 就會看到 Digital Output設備,請選取Digital Output設備

image_thumb[16]

將這個觸發器命名為 overheated
同時指定Digital Output要輸出ON[1]的訊號,也就是點亮連接的LED燈 image_thumb[18]

存檔完畢後,在My Triggers項目下,看到新建的Overheated觸發器。
規則是: 每當DS18B20檢測溫度超過40度,就會將連接到 pin6 的LED點亮,
image_thumb[20]
接著拿吹風機(或其他熱源)對著DS18B20吹,使溫度升高,當溫度超過40度就會看到LED燈同時點亮。

由上圖可看到這個 trigger 已經被觸發兩次,最後一次觸發的時間是 4月17日

 

不過這個觸發器只能控制LED點亮,
如果想要在溫度低於35度也能熄滅LED,只要以相同的步驟,再新增一個觸發器就可以了。例如下圖增加一個名為 [normal temperature]的觸發器 ,規則如下:

clip_image061_thumb[3]

設計完成,每當溫度超過40度,LED點亮;如果溫度回降到35度以下,LED就會熄滅
clip_image063_thumb[1]

2016年4月19日 星期二

Cayenne 雲端網路 + Raspberry PI 新增LED輸出設備

 

如果要設計一個專題,是從網頁畫面上的切換開關,透過Raspberry PI控制連接的LED燈亮(或熄滅) ,以往大概要花上很大的功夫,才能完成這個專題。不過現在透過Cayenne雲端網路,很快就能夠完成,而且不會受到防火牆的阻撓,只要透過網路都可以順利控制LED。

 

硬體線路 :  LED接到 pin12接腳 (GPIO18)

image

 

接下來登入網站  http://www.cayenne-mydevices.com/signin ,輸入之前註冊的帳號密碼,連線進入 Cayenna雲端網路

新增裝置設定,步驟如下圖

image

 

設定完畢,可看到左側面板GPIO多了一個 Digital Output的設備名稱,主控板也多了一個Digital Oupout按鈕物件

按下按鈕可以切換LED點亮或熄滅,但是反應速度不快

image

2016年4月18日 星期一

Cayenne 雲端網路 + Raspberry PI 新增感測器

如果在PI控制器增加了DS18B20溫度感測器後,
若切換到子目錄下,會看到對應的設備編號
  cd /sys/bus/w1/devices

image

例如上圖顯示,設備編號是 28-000006b3ed1b

接下來登入網站  http://www.cayenne-mydevices.com/signin ,輸入之前註冊的帳號密碼,連線進入 Cayenna雲端網路,
在Cayenne內新增一個感測器,用來儲存DS18B20傳回來的溫度值,同時能在網頁監控目前的溫度
詳細步驟如下圖, 最重要的是要將剛才查詢到的設備編號(例如 28-000006b3ed1b) 複製到右下角的選項內

image

 

存檔後,在儀表板畫面就看到多了一個DS18B20的設備,同時顯示當下監測到的溫度
點選設備右上角的settings選項,可以細部設定

image

 

細部設定如下圖所示

Widget選項可以設定要顯示的方法,(數值、儀表、折線圖)

Unit選項可以設定顯示單位(華氏、攝氏)

clip_image002

2016年4月17日 星期日

Raspberry Pi感測器數據資料上傳到 Cayenne 雲端網路

 

Cayenne是一個非常適合Raspberry PI初學者的學習工具,可以監控PI的系統狀況,也可以對系統做簡單的設定。
如果加上感測器就能快速完成IoT的專題練習。以下將簡單介紹如何使用Cayenne雲端網路

Cayenne 雲端網路介紹

clip_image002

Features Include:

Remote access your Pi from your mobile phone or computer

Remote commands (reboot, shutdown, remote access)

Add sensors, actuators, and extensions and create a custom dashboard with drag and drop widgets

Monitor data and remote control your devices and projects

Remote control sensors/actuators with the dashboard GPIO

Easily set up triggers and actions for your automation projects

 

安裝步驟說明
省先連上網站,設定註冊步驟
http://www.cayenne-mydevices.com/
clip_image004

註冊一個帳號
clip_image006

  再次確認 PI必須處於開機狀態,而且已經連線到Internet
clip_image008

顯示兩種安裝myDevices到Pi的方法
image

方法一 (APP安裝,不過目前還沒辦法用 ,網站說coming soon…)

方法二 使用SSH 連線PI,以指令方式安裝
wget https://cayenne.mydevices.com/dl/rpi_xxyyzz.sh

這個奇怪的檔名,是替這次註冊專門量身打造的安裝指令檔,
不同的註冊使用者,都會配發專門的檔案,所以不要混用
clip_image014

接下來會下載檔案,為避免磁碟空間不足,請先確認磁碟可用空間已經擴展到最大的SD記憶卡使用空間

執行自動安裝
sudo bash rpi_xxyyzz.sh -v

接下來要等一下子,才會自動安裝完畢,安裝完畢會自動重新啟動系統
clip_image016

安裝完畢,PI重新啟動完畢
同時網頁畫面一閃,就看到PI的系統資料了
Overview 顯示系統概況
clip_image018

  每個裝置圖示的右上角,都可以點選設圖示clip_image020,做更詳細的設定,
例如點選CPU的設定,可以選擇三種顯示模式(value, gauge, graph),
或是設定上、下限
clip_image022

若是點選右上角的 Details & Chart選項
clip_image024

 

可以看到長期性累積資料的折線圖,如下圖
clip_image026

GPIO顯示目前輸出腳位的狀態,以及使用情況
例如 GPIO18,目前模式是IN,如果滑鼠點選,可以切換成OUT模式,
接著就可以使用滑鼠點選改變成LOW 或是HIGH,
clip_image028

這時若在pin12 (GPIO18) 接上LED,同時也會看到燈熄滅或是點亮
image_thumb[3]
  

Configure頁面   用來設定PI的一些功能
clip_image030

Cayenne是一個非常適合Raspberry PI初學者的學習工具,可以監控PI的系統狀況,也可以做簡單的設定,如果加上感測器就能快速完成IoT的專題練習,可以預見應用在教學上會有很大的助益。

2016年4月16日 星期六

Raspberry PI 讀取 DS18B20溫度感測器資料

 

使用Raspberry PI2讀取DS18B20溫度感測器傳回來的溫度資料

image

使用零件

PI2控制板
電阻 4.7K
DS18B20 (接腳說明如下)
clip_image002

電路接線圖如下

image

使用putty連線到PI系統,編輯檔案

nano /boot/config.txt

在檔案最後加入一行指令

   dtoverlay=w1-gpio

存檔後重新啟動
reboot

載入模組
modprobe w1-gpio
modprobe w1-therm
clip_image002[7]
(執行完畢,畫面上沒有什麼訊息)

接著切換路徑,查看檔案
cd /sys/bus/w1/devices
ls
clip_image002[9]

螢幕顯示兩個子目錄,其中一個有一堆數字的目錄,我們要切換進去
cd 28-000006b3ed1b
ls
clip_image004

會看到有一個 w1_slave檔案
接著展開 w1_slave檔案內容
clip_image006

第一行顯示 YES,第二行顯示 t=27687 除以1000等於27.687就是攝氏溫度
目前為止,可以確認材料、電路接線都沒有問題。

接下來要寫一個測試程式 thermometer_sensor.py 不斷的讀取溫度值。

執行程式
sudo python thermometer_sensor.py
clip_image008

每秒不斷重覆顯示攝氏、華氏溫度。