-前言-

上班族總想要多一項收入
身為厭世上班族的筆者,最近也投入很夯的夾娃娃機經營當作副業
下班後要巡機台,補貨以及收錢
最麻煩的就是要帶著一堆零錢四處跑,零錢少說有2~5公斤有夠重
有時候還發現裡面有偽幣,只能自己認賠

筆者最近去買飲料的時候,發現有裝設電子支付投幣器可以刷悠遊卡,真的太方便了!
幾個台主朋友都有開始使用
畢竟現在偽幣和偷竊事件太多了
用電子支付還是比較方便,又讓台主多一層保障!

▼筆者最近去逢甲無人飲料店發現的電子支付投幣器~!

後來還在許多地方,看到這台機器的身影
包括夾娃娃機、自動加水站、無人飲料店、自助按摩椅...等等
筆者靈機一動,覺得很適合用來無人商店的經營!

-產品規格介紹-

聯絡好廠商之後,他們很快速的將機器寄給我

費用是4000元,含一部投幣機+3張測試卡
另外提供測試套件可以串接服務平台
需要注意的是,要跟業務談好服務模式及費用才會提供SAM卡正式開放啟用

▼這是機器的本體

*特色*
支援 ISO14443A/B 卡片 及 Mifare® 卡片
內建 RS232 通訊介面
4組 SAM Slot 可支援不同票證業者作為安全加密的功能
LED x 4、Buzzer
高對比度 OLED

*產品規格*

它是新型態的電子投幣器
使用電子票證(悠遊卡、一卡通、愛金卡)交易扣款
收到錢之後,電子投幣器就會啟動機器

而且機身的大小和舊式的投幣器一樣
把投幣器拔出來之後,就可以裝上電子投幣器,無痛升級
他不只支援固定計費
還可以透過第三方,通知設備收費

-實際開箱心得-

微程式會提供一組後台的帳密
登入後可以看到帳號管理、設備管理、報表查詢
▼後台管理系統

看起來後台功能做的很完善
設備可以輕鬆管理、帳務也可以快速查詢

內附三張 RFID 白色測試卡,暫時替代電子票證卡片測試交易
測試版的電子投幣器,僅限使用廠商提供的 RFID 白色測試卡交易
無法使用正式的電子票證卡片
若需要使用正式的電子票證卡片交易可以向微程式詢問相關細節

▼官方提供的文件也很清楚

https://www.program.com.tw/product/e-payment/category/controller/sub/mp1807r

這是這次開發的環境
作業系統:Ubantu 16.04 TLS
Python 版本:3.8.02

首先自備USB轉RS232轉接線,準備PC跟電子投幣機通訊使用
我們將USB轉RS232的轉接頭與電源線接上
再把 USB 接到電腦上面

列出所以有目前接在電腦的USB

ls /dev/ttyUSB* -al

從列出的結果中找到USB to RS232設備,並開啟我們對此設備的使用權限

sudo chmod 644 /dev/ttyUSB0

到這裡,我們己經確定機器跟電腦連接上了
再來我們可以從剛剛的連結進行下載

下載後裡面的檔案就有說明文件和我們需要的軟體

開啟 Pipfile 檔案,修改 Python 的版本
預設 python_version 是 3.7,我要改為 3.8

再來我們要裝一些東西

sudo apt-get install python3

sudo apt-get install python3-pip

sudo pip3 install pipenv

在等待安裝的時間中,我來簡單介紹一下pip、pipenv

pip是python中管理軟件擴充的工具,以後利用pip就可以很方便的對新的擴充工具進行下載和查找。
pipenv主要功能為統一不同版本的python,舉個例子,如果開發出來的程式當初是在3.7版本,但筆者目前的電腦中python的版本同時有3.5和3.7,那在執行開發出來的程式時,電腦該判斷該是用哪一個python的版本,若判斷版本錯誤,便會在使用程式時造成問題,而pipenv提供了一個統一python版本的建制環境。

接下來我們來確認環境是否安裝成功
接下來我們可以將終端機打開,並依序輸入下列指令
pipenv --python 3.8

pipenv lock

pipenv sync
如此我們便可以建立一個統一執行python 3.8版本的環境囉~

到這裡,我們就都安裝好了

在終端機輸入

pipenv run python run_main.py /dev/ttyUSB0 -b

我們就能開始查詢餘額了!

上面所標注的balance即為卡片的餘額499

在終端機輸入

pipenv run python run_main.py /dev/ttyUSB0 -t 扣款金額

就能開始對卡片進行扣款

上面所標注的amount為卡片的扣款金額 50
所標注的balance為卡片被扣款後剩下的餘額449

設備看起來都沒問題
我們再來後台看一下有沒有交易記錄

接下來我們可以進入後台管理系統檢查我們的扣款金額

可以發現剛剛的50元扣款已經被紀錄下來了~~真是太方便了~~

若有需要其他的方法
可以在終端機輸入

pipenv run python run_main.py /dev/ttyUSB0 -h

如此我們便可以查詢其餘的指令

除了利用terminal下指令的功能外,筆者還發現另外一個可以自動感測卡片並進行扣款的方式,扣款成功後,其GPIO便可以觸發設備動作。

首先先介紹筆者的設備串接


GPIO的孔位是用來在扣款時觸發時間計時板的開關


筆者利用電子投幣器連接時間計時板的配置

這裡分享一下筆者利用後台管理系統控制GPIO的方法
深深覺得後台管理系統真是太萬能了~~~
首先先點選設備管理中的設備管理 (我知道 有點饒舌XD)

同樣在找到筆者的設備後,點選修改,便能看到下面的選單

可以看到兩個選項,投幣訊號間隔與投幣訊號長度
這兩個選項就能設定電子投幣器啟動時間計時板的訊號

示意圖大概像上面這張圖一樣
以筆者這次的設定,簡單來講,就是在進行扣款後,利用GPIO對計時板每間隔150毫秒發送持續50毫秒的啟動訊號,來去告訴計時板開始60分鐘的倒數計時

接著我們來設定每次自動扣款的金額
在後台管理系統中,進入設備管理後,點選計費設定

如此我們就建立了一個讓電子投幣器能自動每次扣款50元的模式
接著進入設備管理後,點選金流管理

找到筆者的設備編號後,點選編輯設定裡面修改的選項,將原本的通知計費改為自動扣款50

如此便能將原本的藉由terminal下指令扣款的方式變成自動讀取卡片並扣款的功能囉~~

筆者這次結合電子投幣器與時間計時板,便能簡單製作出簡單可商用的電源控制系統。最常見的應用,就是籃球場上的燈柱,只要投10塊錢,便能開燈一小時。下面這張圖片就是筆者的製作出簡單可商用的電源控制系統

扣款前:

扣款後:

筆者設定的時候,經過扣款後,便能將時間延長至60分鐘並開始斷電倒數。

-開箱心得總結-

以上就是筆者利用微程式所提供的文件與程式所進行的兩個DIY過程:
第一個是利用終端機透過RS232對電子投幣器下扣款與查餘額指令。
第二個是利用後台管理系統,將電子投幣器更改為自動扣款模式並結合時間計時板,做成商用的電源控制系統。

這裡再補充一下電子投幣器的運作原理
跟票證公司的簽約、交易、清分都是由微程式處理
我們只需要把設備接上,就可以使用這些服務
在家就可以透過後台查看交易記錄
收到的錢會自動轉到自己的帳戶
就可以當個在家收錢輕鬆的台主

若有興趣可以去微程式官網看看,他們都很樂於提供協助~
網站: https://www.program.com.tw/product/e-payment/category/controller/sub/mp1807r