<s id="eoqoe"><xmp id="eoqoe">
<button id="eoqoe"><strong id="eoqoe"></strong></button>
<s id="eoqoe"><xmp id="eoqoe">
<button id="eoqoe"><strong id="eoqoe"></strong></button>
<wbr id="eoqoe"></wbr>
<wbr id="eoqoe"><strong id="eoqoe"></strong></wbr>
<wbr id="eoqoe"><strong id="eoqoe"></strong></wbr>
<wbr id="eoqoe"><strong id="eoqoe"></strong></wbr>
<wbr id="eoqoe"><label id="eoqoe"></label></wbr>
<button id="eoqoe"></button>
<wbr id="eoqoe"></wbr>
你的位置:首頁(yè) > 測試測量 > 正文

極客DIY:射頻卡流量管理系統,竟然這么玩?!

發(fā)布時(shí)間:2013-12-20 責任編輯:mikeliu

【導讀】相信許多上學(xué)的小朋友們都知道學(xué)校澡堂的按時(shí)間收費的不公平性,洗澡又不是打電話(huà),好不合理!而按流量收費就基本是公平了好多,于是乎,有極客的DIY大神在飲水機上做了實(shí)驗,真的是奇思妙想無(wú)極限!快來(lái)看看吧!

先來(lái)個(gè)全家福?。?!

極客DIY:射頻卡流量管理系統,竟然這么玩?!

IC卡的特點(diǎn):

a、存儲容量大。磁卡的存儲容量大約在200個(gè)字符;IC卡的存儲容量根據型號不同,小的幾百個(gè)字符,大的上百萬(wàn)個(gè)字符。

b、安全保密性好,不容易被復制,IC卡上的信息能夠隨意讀取、修改、擦除,但都需要密碼。

c、CPU卡具有數據處理能力。在與讀卡器進(jìn)行數據交換時(shí),可對數據進(jìn)行加密、解密,以確保交換數據的準確可靠;而磁卡則無(wú)此功能。

d、使用壽命長(cháng),可以重復充值。

e、IC卡具有防磁、防靜電、防機械損壞和防化學(xué)破壞等能力,信息保存年限長(cháng),讀寫(xiě)次數在數萬(wàn)次以上。

思路:

首先讀取IC卡,將IC卡存儲的信息顯示出來(lái),如果顯示成功,則打開(kāi)電磁閥,開(kāi)啟外部中斷計數脈沖,根據脈沖個(gè)數進(jìn)行相應的扣款操作。比如每10個(gè)脈沖扣相應的金額,完成扣款后同時(shí)返回余額,并顯示出來(lái)。寫(xiě)一個(gè)上位機對姓名,錢(qián)包,學(xué)號等進(jìn)行更改。
[page]

材料:

2個(gè)EHY射頻卡讀寫(xiě)模塊     串口協(xié)議    用于讀寫(xiě)射頻卡

2個(gè)STC12C5A60S2單片機    選他是因為是雙串口,并且速度還不

繼電器                      控制電磁閥
若干三極管 8050 8550          

若干驅動(dòng)蜂鳴器,繼電器   LED          

2個(gè)7805穩壓           

2個(gè)12864液晶          

2個(gè)流量計               一熱一冷(熱的是銅材質(zhì)的)

2個(gè)電磁閥               一熱一冷(熱的是銅材質(zhì)的)

原理圖以及PCB圖

首先設計電路圖,IO口其實(shí)沒(méi)幾個(gè)

以及PCB圖

極客DIY:射頻卡流量管理系統,竟然這么玩?!

圖里面的錯誤:

1、驅動(dòng)繼電器的三極管大家用8050,

2、PCB上,液晶倒數第二腳沒(méi)接VCC,導致液晶有數據不顯示,后來(lái)發(fā)現,原理圖里面沒(méi)有接,可以重畫(huà)。

驅動(dòng)12864

沒(méi)有用戶(hù),等待模式。

極客DIY:射頻卡流量管理系統,竟然這么玩?!
[page]

讀到卡了,顯示姓名,學(xué)號,錢(qián)包。

極客DIY:射頻卡流量管理系統,竟然這么玩?!

隨著(zhù)流量計脈沖個(gè)數增長(cháng),單片機進(jìn)行計費,同時(shí)進(jìn)行扣款操作,操作完畢顯示當前余額。


用戶(hù)移走卡,蜂鳴器長(cháng)鳴一聲,提示卡已移走。

極客DIY:射頻卡流量管理系統,竟然這么玩?!

上位機(改變姓名,充值,初始化等操作,依賴(lài)于模塊) 用C#寫(xiě)語(yǔ)言編寫(xiě)。
[page]

沒(méi)選擇串口前所有的都是灰色,表示不可操作。

極客DIY:射頻卡流量管理系統,竟然這么玩?!

選擇串口后,按鈕可操作,更改框可以進(jìn)行改寫(xiě)。

極客DIY:射頻卡流量管理系統,竟然這么玩?!

單擊讀卡按鈕后的顯示。

極客DIY:射頻卡流量管理系統,竟然這么玩?!
[page]

程序部分

//        search card and get card serial number
uchar xdata ComSearchCard[5]  = {0xAA,0xBB,0x02,0x20};//尋卡,返回AA BB 06 20 92 BF 72 59 20
//        read block No.x
uchar xdata ComReadBlock[13]  = {0xAA, 0xBB, 0x0a, 0x21, 0x00, 0x08, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff};//讀哪一塊第六位就是0x0幾。
//        read block No.8
//uchar ComReadBlock6[13]  = {0xAA, 0xBB, 0x0a, 0x21, 0x00, 0x06, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
//        write block No.8 with 0x01 to 0x0f
uchar xdata ComWriteBlock[29] = {0xAA, 0xBB, 0x1a, 0x22, 0x00, 0x08, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,//0xff是密碼
                                                   0x02, 0x00, 0x01, 0x01, 0x00, 0x07, 0x00, 0x01,//
                                                   0x04, 0x02, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00};//要寫(xiě)的數據
//         initialize block No.8 as a purse with value: 0x12345678
uchar xdata ComIntiPurse[17]  = {0xAA, 0xBB, 0x0e, 0x23, 0x00, 0x05, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,//初始化錢(qián)包。分區5為錢(qián)包                            
                                                   0xff, 0xff, 0x00, 0x00};
//        read purse value of block No.5
uchar xdata ComReadPurse[13]  = {0xAA,0xBB,0x0a, 0x24, 0x00, 0x05, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff};//讀取分區5的錢(qián)包  返回四字節的數據
//        purse in block No.5 increase with value "2"
uchar xdata ComIncrPurse[17]  = {0xAA,0xBB,0x0e, 0x25, 0x00, 0x05, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //增加錢(qián)包的余額
                                                   0x01, 0x00, 0x00, 0x00};//要增加的值
//        purse in block No.5 decrease with value "1"
uchar xdata ComDecrPurse[17]  = {0xAA,0xBB,0x0e, 0x26, 0x00, 0x05, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,//扣費
                                                   0x01, 0x00, 0x00, 0x00};//要減少的值
//  halt the card selected
uchar xdata ComHaltCard[5]    = {0xAA,0xBB,0x02,0x28};//
//  the purse final value after INC & DEC
/********************************************************************
*
*   接收從IC卡返回的數據 。用數組存儲

***********************************************************************/
uchar xdata ICSearchCard[9]={0};//5-7位是卡的序列號
uchar xdata ICReadBlock[21]={0};
uchar xdata ICWriteBlock[5]={0};
uchar xdata ICIntiPurse[5]={0};
uchar xdata ICReadPurse[9]={0};
uchar xdata ICIncrPurse[5]={0};
uchar xdata ICDecrPurse[5]={0};
uchar xdata ICHaltCard[5]={0};
/*****************************提取數據的數組*********************/
uchar xdata user_block8[12]={0}; //學(xué)號
uchar xdata user_card[4]={0};  //卡號
uchar xdata user_cash[4]={0}; //現金
uchar xdata user_name[6]={0}; //姓名

以上是要用到命令數組,處理數組,顯示數組等.。

極客DIY:射頻卡流量管理系統,竟然這么玩?!

這個(gè)是命令選擇入口函數,注釋寫(xiě)得很詳細,大家自己去看哈。然后就是12864顯示的函數,還有串口什么的初始化。

扣費的時(shí)候需要注意下。
***************************************************
EX0 = 0;
countflag = 0;//脈沖標志清零
feetemp = 0x01;//這里是扣的金額
feecount = feecount + feetemp;//計算使用總額,需要顯示也可以顯示的
ComDecrPurse[12] = feetemp;//寫(xiě)入扣錢(qián)金額
j = Command_choic(7);//100個(gè)脈沖減少一分錢(qián)
*******************************************************************************
然后個(gè)數的問(wèn)題,在外部中斷里面去修改下就好,建議大家使用宏定義直接可以在頂部修改即可
**************************************************************************
   count++;
   if (count == 1) //                更改脈沖個(gè)數
   {                                        
      countflag = 1;
          count = 0;
   }
*********************************************************************
[page]

為什么使用雙串口單片機?

因為一邊要和模塊通信,一邊要打印數據出來(lái)觀(guān)察是否正確,所以要使用兩個(gè)串口.

為什么用12C5A60S2的原因:

用串口2和模塊去通信.

搭建管道系統,對飲水機進(jìn)行改裝模擬,(實(shí)際上淋浴系統應該比飲水機好改)

熱水管道系統,前面是流量計,后面是電磁閥。

極客DIY:射頻卡流量管理系統,竟然這么玩?!

極客DIY:射頻卡流量管理系統,竟然這么玩?!
[page]

熱水冷水搭建即將結束。

極客DIY:射頻卡流量管理系統,竟然這么玩?!

極客DIY:射頻卡流量管理系統,竟然這么玩?!

冷水管道也好了,拐了幾道彎。
極客DIY:射頻卡流量管理系統,竟然這么玩?!

極客DIY:射頻卡流量管理系統,竟然這么玩?!

極客DIY:射頻卡流量管理系統,竟然這么玩?!
[page]

接上控制系統,那個(gè)小的是射頻卡讀寫(xiě)模塊。

最后就是這個(gè)樣子。

極客DIY:射頻卡流量管理系統,竟然這么玩?!

不足與缺陷:

1.流量計選用的四分,建議改成2分,但是電磁閥一定要4分的。

2.如您所見(jiàn),丑陋之極,表示找不到地方安裝。

3.程序寫(xiě)得有些亂。

建議:
          
a、建議大家寫(xiě)程序注意部分

b、寫(xiě)程序多用枚舉和結構體,方便,高效

c、飲水機壓強和電磁閥里面的軟墊子需要一定的壓力才可以開(kāi)啟,需要考慮周全。

相關(guān)閱讀:

DIY:自制車(chē)用超級電容器【附原理圖】
告別黑暗,牛人自制“搖一搖”手電筒
實(shí)用DIY:將USB鼠標集成到PCI接口里


特別推薦
技術(shù)文章更多>>
技術(shù)白皮書(shū)下載更多>>
熱門(mén)搜索
?

關(guān)閉

?

關(guān)閉

久久无码人妻精品一区二区三区_精品少妇人妻av无码中文字幕_98精品国产高清在线看入口_92精品国产自产在线观看481页
<s id="eoqoe"><xmp id="eoqoe">
<button id="eoqoe"><strong id="eoqoe"></strong></button>
<s id="eoqoe"><xmp id="eoqoe">
<button id="eoqoe"><strong id="eoqoe"></strong></button>
<wbr id="eoqoe"></wbr>
<wbr id="eoqoe"><strong id="eoqoe"></strong></wbr>
<wbr id="eoqoe"><strong id="eoqoe"></strong></wbr>
<wbr id="eoqoe"><strong id="eoqoe"></strong></wbr>
<wbr id="eoqoe"><label id="eoqoe"></label></wbr>
<button id="eoqoe"></button>
<wbr id="eoqoe"></wbr>