2016年5月2日 星期一

Adobe AIR for Mobile + Arduino + Bluetooth (3) - RELAY + Bulb/Fan


終於要正式進入繼電器的階段了。

如書上所說,家電大都是110V交流電,而微電腦零件大多是5V直流電,電子零件若直接通過110V電壓,肯定燒毀。

聽起來超恐怖的啊~~
所以這時候就要靠RELAY這玩意了!



關於RELAY的介紹:
「用小電壓控制大電壓」「用電磁鐵控制的開關」
輸入訊號,利用電磁鐵決定電流是否流通,在電路中有自動調節、安全保護、轉換電路等作用。


光有Relay是不夠的,在Arduino需要使用電晶體來提供Relay所需的大電流,且繼電器內部線圈在斷電時,會產生反電動勢,因此還需要在線圈處並接二極體。
好在,其實有現成的Relay Module,上述的問題就迎刃而解啦~




上圖中的接線方式
DC+:Arduino 3.3V
DC-:Arduino GND
IN:訊號輸入的Pin






上圖中的接線方式
NO 常開 :家電的電源 (接收到訊號才開啟)
NC 常閉 :與NO相反 (接收到訊號才關閉)

COM 共接點 :110V電源






Arduino + Bluetooth Module + Relay









How to connect relay to Bulb?

預想中模擬圖如下,只要接上後再透過藍牙傳送訊號,看來似乎就可以達成了!?


等等,好像沒這麼簡單,有沒有發現了一個奇怪的地方?
圖中將原本燈泡的電線剪斷之後,再與繼電器延伸出來的電線連結包覆,
可是雖然想控制燈泡,但難道非得要破壞燈泡的線路嗎!?


該怎麼辦才好呢 !?





Solution:

STEP 1.以不破壞燈泡結構為前提,找一組延長線/插座,還有插頭,替代上圖的線路方案。

圖片來源 - [教學]用Arduino控制110V的電器



STEP 2.
燈泡電源只要接在這組延長線/插座上,而真正的市電來源就是插頭接在一般常見的插座上。








Arduino Coding
操作流程是先將手機上的藍牙訊號傳送給Arduino上的藍牙模組,
根據內容來決定是否對開啟/關閉Relay訊號的Pin腳位。

SoftSerial Port 的內容多加了「_%」是因為,不知甚麼原因從Arduino返回到手機上的訊息無法固定在同一時間段內完整顯示。
測試時在行動裝置上無法一次取得完整的字串,都是分好幾次才會將內容分別顯示完畢,例如第一次顯示為L,第二次才顯示OW,合起來才是LOW。
但如果是採用blueToothSerial.read();讀取第一個位元組,就不會有此問題。
(好像廢話,因為就那一個字元啊XD)

因此才自行加上了這組字串,用來判定訊息已經傳送完畢了。

ANE的問題?
Arduino傳送字串時出了問題?

原因
不明 Q_Q




Bluetooth module →
ArduinoRelay module → Fan 110V uploading code to Arduino

Using Mobile Device to control Fan or Bulb with Arduino



經過這些步驟,
最後這樣就完成了透過用Arduino + Bluetooth 控制電器的目標了!
影片連結中風扇的風速開關當然還是得先按下去才會有作用,
如果電器換成是燈泡的話也是得先打開開關才行。
當按下ON訊號送出之後,風扇成功開始轉動的那一瞬間,
興奮心情真是筆墨難以形容啊!!!

影片請點我