遠端控制印表機,隨時想停就停!緊急停止按鈕!

這個項目其實算是我偷懶使然而產生的,

大部分列印時,難免都要等上一兩個小時,以前我總是待著等它完成,因為我擔心它會出些差錯或是意外

雖然加熱頭的功率不高,但是單點加熱也是可以讓某些物體任意的點燃,比如說木頭桌面之類。

後來想盡辦法,裝了webcam監視印表機,現在又自己寫了一個程式+額外的控制器(Arduino)來介入!

當發現有問題時,趕緊按下"停止!"按鈕,馬上把印表機斷電,保護人身安全。

從此我就可以安心出門啦!放著印~

難易度

★★☆☆☆

怎麼做

以前的老電腦還有印表機列印 Prot 或 RS232 ,但我只有比較進代的筆記型電腦,

所以必須要準備一個控制器,可以把 USB 轉換成直接的控制訊號,其實 Arduino 就是最恰當的裝置了,便宜又方便且控制針腳又多

(若控制針腳越多,代表你可以控制的項目越多,幾乎是一隻針腳就可以控制一個開關)

Arduino 雖然好用但是它只是提供一個控制訊號的變換,並不能直接控制家裡的電器,或是一些比較耗電的器材

所以需要準備繼電器,利用 Arduino 經過繼電器間接的控制想要控制的器材,你也可以把這樣的作法依樣畫葫蘆,控制你的電風扇或是其他家電

(市面上有賣繼電器模組,因為價格不高,我認為直接買現成也算是不錯的選擇)

 

 

首先在硬體製作 "繼電器控制模組"

1.準備一個繼電器,電晶體,二極體,一些針腳,洞洞板。

(我這裡使用的是 3v 繼電器,也可以選則5v版本,但請不要選擇控制電壓超過5v的繼電器,因為你還需要額外的一些電路才能驅動)

 

2.工作原理,使用 Arduino 送訊號給電晶體,電晶體在將電源輸入驅動繼電器。

(可能會覺的怎麼不直接控制繼電器呢?因為 Arduino 雖然輸出電壓足5v但是流量不夠,所以需要電晶體幫忙引流)

 

繼電器內是由一組線圈來控制,它就像是一個電磁鐵,你給它電能時它就會有磁性,所以就會吸附內部的金屬片,使得內部電路被導通。

當你斷電時它就會放開。

不過線圈還附帶著另外一個特性,它就像馬達一樣你給它通電時它會有動作,當你一瞬間斷電時它就會把多餘的能量吐還給你,因此可以利用一個二極體來消除這個能量

 

3.焊接前最好先插在麵包板測試看看,確認Arduino可以正常的控制它

 

4.以上的模組控制器的腳位要配對到 Arduino 內部的 Sketch 定義上。寫好後就可以上傳到 Arduino 內部囉!

可以自己寫,也可以 點我下載

(以下為簡單的範例,利用 Arduino 與電腦通信,當 Arduino 收到資料為 "1" 時就控制13號針腳輸出電壓,反之亦然!)

 

接下來準備電腦的界面

(若您有在使用Python則可能可以跳過這一步,因為電腦內可能已經安裝了這一套軟體)

Python 有分三大版本,Python1 (幾乎沒人用了) / Python2 / Python3

無論裝的是Python2.x / Python3.x 都是可以的

安裝過程網路上因該有很多,所以暫不闡述

Python可以致官網下載<請點我>

 

我已經把控制程式+模組一起打包進去(zip檔案),解開時會看見:

兩個資料夾 pygubu 跟 serial (這是程式必要的模組)

一個是主要程式  stop.py

一個是界面 stop.ui  

請點我下載

 

 

確認一下你的 Arduino 是在那一個 COM? (Windows) 或是 /dev/ttyUSB0 (Ubuntu)

(你可以打開Arduino 的 IDE 編輯器,看一下右下角因該就知道了,或是點選 工具>序列埠)

 

 

接著用筆記本打開 stop.py 使用尋找功能,尋找Your device取代成你的裝置名稱,然後存檔離開。

(下圖是直接使用Python編譯器編輯)

 

 

準備測試了,點兩下 stop.py 啟動因該就可以看到界面跑出來(只設計了按鈕)


附註:

1.你可以把 stop.py 改成 stop.pyw 然後運行就隱藏醜醜的終端機黑視窗

2.若使用 Ubuntu 可以在桌面添加一個起動器,名稱隨意填寫,指令列填寫 python3 /home/某某某/stop,pyw 存檔,即可當成小軟體使用。

(上面的路徑,那個路徑要對應到你的檔案位置,這裡只是舉例請不要照抄喔)

 

材料:

Arduino nanox1 約100元

3v 繼電器x1 約30元

1N4007 二極體x1 約1元

ss9013 電晶體x1 約5元

洞洞板x1 15*30mm 約10元

 

 

 

 

 

文章標籤
創作者介紹
創作者 MakerKo 的頭像
MakerKo

MakerKo 為了創造而活

MakerKo 發表在 痞客邦 留言(0) 人氣()