一、什么是TPYBoardV702
TPYBoard V702是山東蘿卜電子科技有限公司最新開發(fā)的,目前市面上唯一支持通信通信功能的MicroPython開發(fā)板:支持Python3.0及以上版本直接運(yùn)行。支持GPS+北斗雙模通信、GPRS通信、短信功能、電話功能;板載溫濕度、光敏、三軸加速度傳感器、蜂鳴器、LCD5110顯示屏。免費(fèi)提供通信測(cè)試服務(wù)平臺(tái)。實(shí)物如下圖:
1.png (580.63 KB, 下載次數(shù): 58)
下載附件
2017-4-26 16:14 上傳
一、利用TPYBoardV702完成接收提示來電,并在顯示屏上顯示來電號(hào)碼及來電人員稱謂
1、具體要求 利用TPYBoardV702完成接收提示來電,并在顯示屏上顯示來電號(hào)碼及來電人員稱謂 2、所需器件 TPYBoard V702開發(fā)板 一塊 5110顯示屏 一塊 Gsm手機(jī)卡 一張 TPYBoard V702開發(fā)板板載GSM通信功能,無需外接
3、板載通信功能及使用介紹 V702的開發(fā)板的整體整體亮點(diǎn)置一就是能板載通信功能,只要在開發(fā)板的卡槽上插上一張可以使用的手機(jī)卡(不支持電信),即可使用該功能。 開發(fā)板板載的通信功能包括了電話,短信,GPRS等功能,在這個(gè)實(shí)驗(yàn)里面我們只使用電話這個(gè)功能。 開發(fā)板板載的通信功能已經(jīng)設(shè)計(jì)的很完善,在接到來電的時(shí)候,會(huì)主動(dòng)的把來電的信息通過串口4發(fā)送進(jìn)來,這樣一來作為用戶的我們就是需要把數(shù)據(jù)進(jìn)行相應(yīng)的處理加顯示就可以了。
三、制作主要過程
先上個(gè)圖,下面再開始說代碼的問題。
2.png (954.94 KB, 下載次數(shù): 54)
下載附件
2017-4-26 16:17 上傳
這次不光有照片,還有視頻:
1、制作過程 (1)首選我們需要做的是把5100顯示屏插到702開發(fā)板的5110顯示屏接口處; (2)在上面工作完成后,我們這里需要用到主要的類庫,5110的類庫,我們需要把這個(gè)類庫的.py文件拷貝到開發(fā)板的盤符中; (3)完成以上工作后,我們開始main().py文件代碼的編輯; (4)對(duì)需要用到的類庫進(jìn)行聲明和定義; (5)把我們需要使用的變量進(jìn)行一下定義; (6)把我們需要用到的接口進(jìn)行聲明和定義,這里我們主要用到了spi 1和串口4這兩個(gè)接口,聲明串口4的時(shí)候,需要把串口波特率設(shè)置為115200; (7)下面開始主函數(shù)的編寫,這個(gè)實(shí)驗(yàn)里面我們用到了顯示,我們?cè)诔绦虻拈_始部分先進(jìn)行顯示部分的初始化; (8)完成顯示部分初始化之后,我們需要做一個(gè)最重要的事情,那就是定義“Y6”引腳為輸出,然后把:“Y6”引腳拉低兩秒以上,之后把此引腳拉高。因?yàn)椤?/font>Y6”引腳是控制整個(gè)板載通信系統(tǒng)開啟的開關(guān),如果平時(shí)我們沒有用到通信系統(tǒng)的話,為了節(jié)省功耗,板載通信系統(tǒng)是處于關(guān)閉狀態(tài)的,需要使用時(shí)只需要拉低“Y6”引腳兩秒以上; (9)當(dāng)看到開發(fā)板上的紅色直插LED燈快速閃爍的時(shí)候,說明板載通信系統(tǒng)正在啟動(dòng),當(dāng)這個(gè)紅色直插指示燈結(jié)束快閃(如果插在開發(fā)板卡槽上的手機(jī)可用,指示燈處于慢閃狀態(tài))說明板載通信系統(tǒng)已經(jīng)啟動(dòng); (10)完成以上工作后,準(zhǔn)備工作就已經(jīng)完成了,剩下需要做的就是監(jiān)控串口4是否有數(shù)據(jù)發(fā)送過來,當(dāng)檢測(cè)到串口4有數(shù)據(jù)發(fā)送過來,對(duì)數(shù)據(jù)進(jìn)行相應(yīng)的判斷及處理,并顯示到顯示屏上即可。
2、具體代碼:
- import pyb
- import upcd8544
- from machine import SPI,Pin
- from pyb import UART
- from ubinascii import hexlify
- from ubinascii import *#以上內(nèi)容為聲明所使用的類庫
- leds = [pyb.LED(i) for i in range(1,5)]
- P,L,SHUCHU=0,0,0
- SPI = pyb.SPI(1) #DIN=>X8-MOSI/CLK=>X6-SCK
- #DIN =>SPI(1).MOSI 'X8' data flow (Master out, Slave in)
- #CLK =>SPI(1).SCK 'X6' SPI clock
- RST = pyb.Pin('X20')
- CE = pyb.Pin('X19')
- DC = pyb.Pin('X18')
- LIGHT = pyb.Pin('X17')
- lcd_5110 = upcd8544.PCD8544(SPI, RST, CE, DC, LIGHT)#以上內(nèi)容為聲明并初始化顯示屏
- count_=0
- N2 = Pin('Y3', Pin.OUT_PP)#定義“Y3”為輸出模式,這個(gè)引腳是控制蜂鳴器的,來電話了 #需要響鈴的
- N1 = Pin('Y6', Pin.OUT_PP)#定義“Y6”位輸出模式,“Y6”引腳是板載通信系統(tǒng)的開關(guān)控 #制引腳
- N1.low()
- pyb.delay(2000)
- N1.high()
- pyb.delay(10000)#通過拉低拉高開光控制引腳,啟動(dòng)通信系統(tǒng)
- u2 = UART(4, 115200)#設(shè)置串口4,并設(shè)置串口波特率為115200
- i='0'
- w=0
- d=0
- q=0
- G=0
- j=0
- while 0<1:
- N2.low()#設(shè)置蜂鳴器控制引腳為低電平,不讓蜂鳴器響
- if(u2.any()>0):#檢測(cè)串口4是否有數(shù)據(jù),如果有數(shù)據(jù)執(zhí)行以下
- _dataRead=u2.readall()
- if _dataRead!=None:#判斷串口4的數(shù)據(jù)是否為空,不為空?qǐng)?zhí)行以下代碼
- print('原始數(shù)據(jù)=',_dataRead)
- print('原始數(shù)據(jù)長(zhǎng)度:',len(_dataRead))
- print('123',_dataRead[2:6])
- RING=_dataRead[2:6]#截取包頭,這個(gè)包頭是為了判斷數(shù)據(jù)是否正確的重要依 #據(jù)
- print('111',_dataRead[18:29])
- HM=_dataRead[18:29]#數(shù)據(jù)的18至29位是數(shù)據(jù)中攜帶的手機(jī)號(hào)碼,我們把它 #們保存出來
- WD='No such person'#設(shè)置一個(gè)變量,這個(gè)變量我們可以稱為是電話本類比變 #量,主要是作為顯示時(shí)什么人來電,例如顯示張三, #或者李四
- if(RING==b'RING'):#判斷包頭正確,執(zhí)行下面代碼
- if(HM==b'18654868920'):#判斷來電是否是一個(gè)已經(jīng)存儲(chǔ)的號(hào)碼
- WD='TPYBoard_GPS'#如果是,顯示存儲(chǔ)名稱,如果沒有存儲(chǔ)顯示'No #such person'
- #**********************時(shí)間************************
- N2.high()#拉高蜂鳴器控制引腳,使蜂鳴器響鈴
- lcd_5110.lcd_write_string('Phone Number:',0,0)
- lcd_5110.lcd_write_string(HM.decode("utf8"),2,1)
- lcd_5110.lcd_write_string('The contact:',0,2)
- lcd_5110.lcd_write_string(str(WD),0,3)#顯示相應(yīng)的來電號(hào)碼,來電人稱謂 #等
- pyb.delay(1000)
復(fù)制代碼
|