05 智慧植栽
末本教材連結:http://gg.gg/0923fs
時間:2021.09.23(四)09:00~12:00
講師:黃文玉
高雄市新上國小電腦老師
高雄市SCRATCH推廣教師
教育部中小學教師運算思維增能研習種子教師
Facebook S4A社團管理員之一
致力Scratch、Arduino、micro:bit、Web:Bit、凱比機器人等程式教育及創客教育的推廣(分享一系列的文章)
(2021/08/18)
這是下個月要去某校介紹【智慧植栽】的教材,這次是採用PictoBlox寫程式來控制Arduino開發板,最主要是利用土壤濕度感測器來偵測土壤是否太乾,是否需要澆水。使用最簡單的Scratch程式,來完成互動模式、離線模式及藍牙控制,感覺還蠻簡單的,內容如下,供參
參考資料:
使用Web:Bit當控制器(鳳山科技中心 傅仲儀主任)
一、智慧植栽製作說明
上課的課程內容
利用PictoBlox平台寫程式控制Arduino
用scratch設計智慧植栽的控制面板
常見輸出輸入元件或感測器的測試
智慧植栽系統的組裝
製作【互動版】的智慧植栽系統(要與電腦連線)
製作【離線版】的智慧植栽系統(不用與電腦連線)
利用手機的APP來控制Arduino開發板
設備連接圖
所需材料
Arduino Uno開發板 X1
Easy Module Shield 擴展板 X1
土壤濕度感測器 X1
繼電器 X1
水泵 X1
提供水泵供電設備(USB線或電池盒)
1602LCD顯示器
HC-06(藍牙模組)X1
母母杜邦線 X14
擴展板上的元件及腳位說明
按鈕1:D2
按鈕2:D3
溫濕度感測器(DHT11):D4
蜂鳴器:D5
紅外線接收器:D6
三色LED燈:D9~D11
紅色LED燈:D12
藍色LED燈:D13
可變電阻器(電位計):A0
光敏電阻:A1
LM35溫度感測器:A2
I2C腳位:GND、VCC、SDA(A4)、SCL(A5)
UART腳位:GND、VCC、RX、TX,燒錄時要先拔掉
其他外接元件的所使用腳位
土壤濕度感測器接A3
繼電器接D7
所需軟體:
PictoBlox (全台灣大概只有我在用)
總部好像在印度
下載:https://thestempedia.com/product/pictoblox/download-pictoblox/
有時侯不是很好下載,我再提供網點供下載
64bit:https://educase.kh.edu.tw/navigate/s/6C65CDE8FDA74C8DA03EF539E5970D75AUY
32bit:https://educase.kh.edu.tw/navigate/s/26A9B1D3AF4745C9BFB1BA8C04FD5162AUY
我另外拿了隨身碟COPY了上面檔案,大家可直接使用
二、SCRATCH互動模式
(一)使用硬體,這邊是使用 Arduino Uno開發板
選擇板子
選擇連接埠(先把Arduino Uno利用USB線與電腦連接)
如果要使用互動模式,還要把使用PictoBlox環境的【韌體】燒錄進入Arduino Uno板子
(二)簡單測試
我們可以直接透過腳位取得輸入的訊號值
腳位可分【數位腳位】(0、1)及【類比腳位】(0~1023)
訊號可分【輸入訊號】及【輸出訊號】
請大熊說出按鍵1(D2)(數位輸入)及可變電阻器(A0)(類比輸入)的值
如何請大熊說出這兩個值?
如果把一個值給其他角色來說時,會出現問題!
因此發現本軟體,【硬體感測值】要放在同一個角色比較沒問題
如果要多角色來呈現時,就要以【變數】的方式來處理
我們也可以透過腳位及別人寫好的積木(函式),【間接】取得我們所需要的值,如溫度、濕度、距離...
如果沒有大師寫好可用的模組積木,那我們就沒得玩了!
請大熊說出目前的溫濕度
請大熊說出目前的溫度,請小貓說出目前的光亮度
發現本軟體,【硬體感測值】放在同一個角色比較沒問題
建議把要使用的硬體感測值用【變數】的方式來存放
(三)設計擴展板的【控制及顯示面板】
輸入裝置的資訊顯示如下
日期、時間
溫度
濕度
光亮度
可變電阻器的值
按鍵1
按鍵2
數字以圖片方式來顯示 (此部分在時間充裕下才介紹)
直接匯入我寫好的【圖形數字角色】
再修改程式如下:
顯示某一資料的【動態數據圖】 (此部分在時間充裕下才介紹)
首先先添加【畫筆】積木 ,後面角色才能匯得進來
再來直接匯入我寫好的【數據動態圖角色】
加入對外控制的【按鍵】(手動控制的部份)
點亮/關閉【LED燈1】
點亮/關閉【LED燈2】
點亮/關閉【繼電器】
加裝繼電器,接D7腳位
加入元件的互動 (自動偵測的部份)
天黑請開燈
天熱請開扇
加入本次的主角【土壤濕度感測器】
土壤濕度感測器接在A3腳位
先測試土壤濕度
在控制面板加上顯示土壤濕度值
把水泵接到繼電器的NO及COM上
三、離線模式
利用【1602LCD顯示器】來顯示量測到的資訊,顯示內容如下
溫度
濕度
光感測值
土壤濕度的類比值
可設定自動或手動(利用可變電阻器來設定【自動】或【手動】)
自動偵測的部份
天黑請開燈
土乾請澆水
手動控制的部份
按鍵開關燈(按鍵1控制D13LED燈)
按鍵開關繼電器(按鍵2控制D7繼電器)
積木程式,如下:
變數不能用中文
另外,在取變數名稱時,也出現了一個問題,我把變數取【auto】就是會有問題,不知是不是不可使用的名稱
由於變數是選Number時,會採用float(浮點型態),因此顯示時會有小數點,因此利用修改原始碼的方式,把變數改為int(整數型態)
又由於手動時,按鍵按一下亮燈,再按一下滅燈,繼電器也是一樣,因此透過修改原始碼來簡化積木的使用
測試結果:
土壤濕度感測器沒有真正去實作,因此究竟要用多大的值代表太乾,然後去啟動繼電器就要自己測試一下
四、利用手機控制
使用HC06藍牙模組來與手機連線
HC06接線說明
預設:
HC06的TX接Uno的D2
HC06的RX接Uno的D3
VCC接VCC
GND接GND
但本例中,使用擴展板的D2、D3已被占用,只能用D0及D1
HC06的TX接Uno的RX(D0)
HC06的RX接Uno的TX(D1)
VCC接VCC
GND接GND
簡易程式:
HC06使用注意:`
鮑速要設38400
如果採用預設的接法(TX接D2、RX接D3),不用修改原始碼
如果採用TX接D0、RX接D1,則要修改原始碼為 Dabble.begin(38400,0,1);
在燒錄時會用到D0及D1腳位來傳輸資料,所以要先把HC06接到D0及D1的線先拔掉,等燒錄成功後,再把HC06的線接上
手機部份
安裝Dabble的APP
使用前記得先去【藍牙設定】,配對密碼為1234
Dabble操作如下
可使用LED on、LED off、relay on、relay off 這些字可以用語音來呈現