配合weather:bit利用radio上傳數據
在上次的教學中,我們嘗試過以radio形式傳送micro:bit A讀取到的light level至 micro:bit B 並透過wifi:bit 上傳數據至ThingSpeak。
為了收集更多數據 :
這次我們會利用 weather:bit 自身的sensor以及 soil moisture sensor 收集數據 ,
並透過 radio 的形式傳送至接駁了wifi:bit的micro:bit 上並上傳數據至ThingSpeak。
所需材料:
micro:bit x 2
wifi:bit x 1
weather:bit x 1
Soil Moisture Sensor x 1
Jumper Wire M/F x 3
編程教學:
micro:bit A (發送數據):
編程概覽:
由於這次需要上傳3組不同的數據 , 我們將使用「radio send "Value" = ___」 來發送訊號。
value "name" 一般會是數據的名稱 (例如 : temp) ;
「= 0」 的位置則會輸入數據數值 , 多會以variable來表示。
TEMP (溫度) 部份 :
利用不同button以發送不同數據 , 要留意的是從 weather:bit 收集到的是raw data ,
我們需自行進行 calibration 來把數值轉換成有用的數據 i.e ÷ 1000 以獲取攝氏溫度(C)
「temperature(C) 」可在 weatherbit 中直接取出 , 不需另建新的variable ,
÷ 則可以在 「Math」找到 , 會以 「0 ÷ 0」 表示。
Humidity (室內濕度) 部份 :
humidity 則需要 ÷ 1024 以得到濕度%
Soil Moisture (泥土濕度) 部份:
micro:bit B(wifi:bit) 上傳數據:
是次教學只會注重在接收radio訊號及上傳數據的編程上;
關於如何設置 ThingSpeak 可看 : ThingSpeak使用教學(wifibit ver.)
唯一要留意的地方是這次需要處理3組數據 , 我們需設置3個 Field 來接收相應數據。
連接至互聯網:
相信連接互網聯的編程大家都不陌生了 , 唯一不同的地方是加入「radio set group 1」,
目的前跟micro:bit A 建立同一個 radio group 以接收/傳送訊號。
SSID 及 PASSWORD 部份請輸入你要連接的網絡。
接收radio數據並上傳至ThingSpeak編程:
利用 on radio received name value 來接收micro:bit A 發傳的數據
name 為你在 micro:bit A 設下並發出的名稱 , 比方說 temp ;
利用 「if then statment」 來決定wifi:bit 接收到的"name"及"value"要上傳至那個「filed」上。
把「/update ........... field1= 」複製並貼上到「join」後, join可在「Text」中找到
「filed」 後的數字可在「Channel Setting」中找到 , 例如我們將temp 設成 1
不需要copy field1 = 後的「0」, update 前的「/」請記緊複製
show string "T"作用是表示上傳了那個數據了!
另外兩組數據的編程:
基本上都是大同小異 , 特別需注意的地方是運用了「else if」 以及 filed 後的數字需自行改成 2/3 (對應Channel Setting)
「else」在沒上傳數據/待機時則清空micro:bit的LED screen。