過磅自動化“項目”
今天開始寫第一篇微博,就先寫剛完成的過磅自動化“項目”吧。受甲方(老爸)委托,實現(xiàn)過磅收費完全自動化,不需要人工干預(yù),項目費用為零??赡苡腥藭幻靼祝揖拖冉榻B一下“項目”背景吧。
老爸退休無聊,在單位過磅收費,打發(fā)老年時光。所謂過磅就是這種,如圖,載重拉貨卡車開到磅秤上,然后記重收費,每天來幾輛車,幾點來,都是隨機(jī)的,尤其是半夜凌晨車更多(夜晚查車的少),這樣24小時伺候,老爸吃不消了,給了我任務(wù),就是把過磅自動化,我 不敢怠慢,馬上開始了調(diào)研和開發(fā)過程。
先做硬件準(zhǔn)備。根據(jù)調(diào)研,淘寶上賣的過磅自動化的機(jī)器要一萬三,結(jié)合經(jīng)費緊張的實際,制定出了一套經(jīng)濟(jì)方案,由我自己寫程序?qū)崿F(xiàn)稱重和收費,這樣就買個二手電腦和顯示器,然后連接地磅串口接收數(shù)據(jù)就ok了,所以硬件是地磅串口一分二線和連接電腦線(共計50元),二手戴爾電腦(選它是因為它可以長期開機(jī)很穩(wěn)定)和顯示器(共170元),因為電腦靜電會干擾地磅計數(shù),又買了串口的靜電隔離器(30元),連接路由器的網(wǎng)線(0元),這基本上就是必須的硬件設(shè)備 了。
下面是重頭戲軟件開發(fā)了,語言選用了python,因為模塊豐富,可以實現(xiàn)各種功能。路代碼前,先上流程圖。
創(chuàng)新互聯(lián)網(wǎng)絡(luò)公司擁有十年的成都網(wǎng)站開發(fā)建設(shè)經(jīng)驗,1000+客戶的共同信賴。提供網(wǎng)站設(shè)計、成都網(wǎng)站制作、網(wǎng)站開發(fā)、網(wǎng)站定制、買鏈接、建網(wǎng)站、網(wǎng)站搭建、成都響應(yīng)式網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計師打造企業(yè)風(fēng)格,提供周到的售前咨詢和貼心的售后服務(wù)
下面單獨詳細(xì)介紹每個模塊和代碼,本程序用到的模塊如圖一
主要用到的python模塊是threading、pyautogui、pytesseract、serial、matplotlib 等,
一.初始化模塊
這個模塊是初始化全局變量、程序主路徑、開啟稱重線程,代碼如圖2
稱重子進(jìn)程的作用是 接收地磅傳來的數(shù)據(jù),并根據(jù)重量來生成地磅狀態(tài):有車,無車、有車穩(wěn)定。
二.就緒等待
這個狀態(tài)在汽車上地磅前所處的狀態(tài)。一直循環(huán),時間間隔較長,為10秒。一旦狀態(tài)變?yōu)橛熊?,間隔變?yōu)?秒,當(dāng)狀態(tài)變?yōu)橛熊嚪€(wěn)定時,轉(zhuǎn)為下一個狀態(tài),網(wǎng)絡(luò)通轉(zhuǎn)為有網(wǎng)稱重,網(wǎng)絡(luò)不通轉(zhuǎn)為無網(wǎng)稱重。代碼如圖3
三、有網(wǎng)稱重
這個模塊要實現(xiàn)的功能
1、根據(jù)重量計算出費用,然后顯示收費二維碼
2、生成檢測費用線程,檢測微信費用到賬情況,到賬后語言告知。
3、監(jiān)測費用線程存活情況,如果不存活則返回就緒狀態(tài),否則超時返回。
4、收到錢狀態(tài)位為1,則顯示重量,超時或者車離開則消失頁面,返回就緒狀態(tài)。
在做監(jiān)測微信費用這個功能的時候,剛開始打算調(diào)研微信接口,了解后發(fā)現(xiàn)先要注冊上傳資料成為商戶等等,關(guān)鍵還要給微信流水0.38%(還是優(yōu)惠的),想想就心疼,我存銀行一年定期要三個月才能這么多利息呢,它嗖的一下就抽走我這么多,不行,我這塊就把python的圖像識別和微信的收款助手這兩個功能結(jié)合起來,通過圖像識別出是否收到款項(不需要關(guān)注金額,因為二維碼收費金額是程序固定的),效果非常好,沒有失誤過(哈哈,又省了一筆銀子)。上代碼,如圖4
四.無網(wǎng)稱重
在無網(wǎng)絡(luò)的情況下,微信收不到收款信息,則只能提供一個固定的收費二維碼和語音提示價格,讓客戶自己自覺繳費(繳費多少不可控),收費后(這里利用了第三方收費平臺)短信下發(fā)激活線路,重量顯示屏顯示60秒后自動關(guān)閉。代碼如圖5
以上為主要模塊的介紹,其他代碼都是圍繞著這幾個模塊服務(wù)的,就不一一呈上了,有問題請留言。