繼上次撰寫出控制Coordinator LED指令後,我們在Router添加了DIO Interrupts指令,以Expansion Connector第10、11的Pin腳取代原來的switch1、switch2
系統的設計是Router板上按下switch2會使Coordinator板上的LED亮起,再添加DIO Interrupts指令後,將濕度sensor的延伸接線一端接至pin 11(switch2),另一端接至pin 40(GND)
圖一: sensor的延伸接線接至pin腳(pin11、pin40)
圖二: Router與sensor全貌
當sensor的感測端有所反應時,其延伸接線將會從斷路狀態轉為導通狀態,pin11與pin40也將會導通,等同接地,當電流流入地形成迴路時,此動作形同按下switch2、而Coordinator的LED將會亮起
圖三: sensor有所反應,Coordinator 之 LED3將會亮起
將Coordinator接至電腦端以檢測Router傳回來的資訊
圖四: Router回傳資訊,sensor未有反應時,switch行顯示 "Switch = 0"
圖五: Router回傳資訊,sensor有反應時,switch行顯示 "Switch = 1"
為了避免不必要的資訊,如其他未接上sensor的Router回傳值、以及多餘的溫度光感值等,修掉程式碼只留下接上sensor的Router會回傳數值外,其餘的Router僅做網路功用,如此一來,接收端只會顯示重要的資訊,顯示會較為簡潔
圖六: sensor未有反應時畫面顯示 "Response = 0"
圖七: sensor有反應時畫面顯示 "Response = 1"
目前為止,最重要的sensor資訊回傳總算是有一點小成果,但整體系統架構還需做修正,如sensor一但有所反應,接收端就會一直回傳"Response = 1",sensor反應中斷後,接收端並不會回傳"Response = 0",並須將系統重啟
Router與Coordinator的程式碼修改有空再補上其思考過程以及添加的指令
P.S上述問題已於剛剛修正完成,sensor中斷反應接收端即會回傳"Response = 0",在有反應時才會回傳"Response = 1"
期許我們能越做越好,共勉之