溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

python如何開發(fā)TPYBoard v702 GPRS功能

發(fā)布時(shí)間:2022-01-13 10:34:45 來源:億速云 閱讀:114 作者:iii 欄目:互聯(lián)網(wǎng)科技

這篇文章主要講解了“python如何開發(fā)TPYBoard v702 GPRS功能”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“python如何開發(fā)TPYBoard v702 GPRS功能”吧!

    一、什么是TPYBoardV702

    TPYBoardV702是山東蘿卜電子科技有限公司最新開發(fā)的,目前市面上唯一支持通信通信功能的MicroPython開發(fā)板:支持Python3.0及以上版本直接運(yùn)行。支持GPS+北斗雙模通信、GPRS通信、短信功能、電話功能;板載溫濕度、光敏、三軸加速度傳感器、蜂鳴器、LCD5110顯示屏。免費(fèi)提供通信測試服務(wù)平臺。實(shí)物如下圖:

python如何開發(fā)TPYBoard v702 GPRS功能
    
    二、利用TPYBoardV702完成利用GPRS功能把數(shù)據(jù)上傳至服務(wù)器

    1、具體要求
    利用TPYBoardV702完成利用GPRS功能把數(shù)據(jù)上傳至服務(wù)器
    2、所需器件
    TPYBoardV702開發(fā)板一塊
    Gsm手機(jī)卡一張
    TPYBoardV702開發(fā)板板載GPRS通信功能,無需外接
    3、板載通信功能及使用介紹
    V702的開發(fā)板的整體整體亮點(diǎn)置一就是能板載通信功能,只要在開發(fā)板的卡槽上插上一張可以使用的手機(jī)卡(不支持電信),即可使用該功能。 開發(fā)板板載的通信功能包括了電話,短信,GPRS等功能,在這個(gè)實(shí)驗(yàn)里面我們只使用GPRS這個(gè)功能。 我們使用GPRS功能,主要是為了借助這個(gè)功能向服務(wù)器透傳數(shù)據(jù),所以我們第一步是要打開透傳功能。然后我們要和服務(wù)器建立連接,這時(shí)我們需要知道服務(wù)器的地址和端口。這個(gè)實(shí)驗(yàn)我們借用官方提供的測試平臺,發(fā)送一個(gè)自己編輯的數(shù)據(jù)包,來學(xué)習(xí)一下GPRS功能的使用方法。

    下面仔細(xì)說一下制作過程。

    三、制作主要過程

    先上個(gè)圖,下面再開始說代碼的問題。


    python如何開發(fā)TPYBoard v702 GPRS功能
    Putty數(shù)據(jù)監(jiān)控圖


    python如何開發(fā)TPYBoard v702 GPRS功能
    示例定位圖


    1、制作過程
    (1)第一步是先把手機(jī)卡插到開發(fā)板開槽上,需要保證手機(jī)卡可以使用;
    (2)在上面工作完成后,我們開始main().py文件代碼的編輯;
    (3)對需要用到的類庫進(jìn)行聲明和定義;
    (4)把我們需要使用的變量進(jìn)行一下定義;
    (5)把我們需要用到的接口進(jìn)行聲明和定義,這里我們主要用到了串口4這個(gè)接口,聲明串口4的時(shí)候,需要把串口波特率設(shè)置為115200;
    (7)下面開始主函數(shù)的編寫,這個(gè)實(shí)驗(yàn)里面我們用到了數(shù)據(jù)包,我們先新建一個(gè)符合格式的數(shù)據(jù)包;
    (8)完成以上之后,我們需要做一個(gè)最重要的事情,那就是定義“Y6”引腳為輸出,然后把:“Y6”引腳拉低兩秒以上,之后把此引腳拉高。因?yàn)椤癥6”引腳是控制整個(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)完成了,下面我們需要先把通信系統(tǒng)的通信方式設(shè)置為透傳,之后再和相應(yīng)的服務(wù)器地址和端口進(jìn)行連接;
    (11)和服務(wù)器建立連接后,就可以開始想服務(wù)器發(fā)送數(shù)據(jù)了,直接把數(shù)據(jù)從串口4送出去就可以了,通信系統(tǒng)會原封不動(dòng)的把你發(fā)的數(shù)據(jù)發(fā)送到服務(wù)器。


    2、具體代碼:

import pyb
import upcd8544
from machine import SPI,Pin
from pyb import UART
from ubinascii import hexlify
from ubinascii import *#以上為聲明使用到的類庫
  
  
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)#以上為初始化顯示屏的函數(shù),雖然                                                                                   #這次沒有用到顯示,但是備用
count_=0
N2 = Pin('Y3', Pin.OUT_PP)
N1 = Pin('Y6', Pin.OUT_PP)#定義通信系統(tǒng)啟動(dòng)引腳
N1.low()
pyb.delay(2000)
N1.high()
pyb.delay(10000)#拉高拉低引腳,啟動(dòng)通信系統(tǒng)
u2 = UART(4, 115200)#定義串口4,設(shè)置 波特率為115200
K=5#設(shè)置一個(gè)選擇變量K
while (K==5):#這個(gè)循環(huán)是為了設(shè)置通信區(qū)域模式為透傳模式。
    u2.write('AT+CIPMODE=1\r\n')
    pyb.delay(500)
    if(u2.any()>0):
        print('透傳')
        _dataRead=u2.readall()
        print('透傳',_dataRead.decode('utf-8'))
        if(_dataRead.find(b'OK')>-1):
            K=0
            pyb.delay(20)
u2.write('AT+CIPSTART="TCP","139.196.109.178",30000\r\n')#這個(gè)語句是為了搭建通信連                                                                                         #接。
pyb.delay(10000)
print('123')
while (K==0):#這里是為了判斷通信連接是否已經(jīng)建立起來,如果沒有建立起來通信的連接,                    #則等待。
    pyb.delay(3000)
    if(u2.any()>0):
        _dataRead=u2.readall()
        print('oo',_dataRead)
        if(_dataRead.find(b'CONNECT OK')>-1):#這個(gè)判斷是為了判斷是否已經(jīng)和服務(wù)器建                                                                   #立起連接來
            K=1#開發(fā)板已經(jīng)和服務(wù)器建立起連接來,則改變選擇變量的值,使其進(jìn)入下                     #一個(gè)循環(huán)
            pyb.LED(1).on()
while (K==1):#這個(gè)循環(huán)是執(zhí)行數(shù)據(jù)傳輸命令的執(zhí)行所在,在這個(gè)循環(huán)中進(jìn)行各種數(shù)據(jù)的裁                #剪拼接和發(fā)送。
    print('DOU')
    #u2.write('+++')  此時(shí)整個(gè)系統(tǒng)進(jìn)入透傳通信模式,想要退出,則發(fā)送‘+++’,即可    #退出;
    #u2.write('ATO0') 想讓系統(tǒng)從指令模式進(jìn)入透傳模式,則發(fā)送‘ATO0’,則進(jìn)入透傳;
    #pyb.delay(1500)
    pyb.LED(2).off()
    pyb.LED(3).off()
    pyb.LED(2).on()
    u2.write('TPGPS,1234567890abcde,36.67191670,119.17200000,201701120825,25,50,END')
    #這個(gè)報(bào)文詳細(xì)格式參照服務(wù)平臺示例報(bào)文格式。
    #把這格式里面的經(jīng)緯度數(shù)據(jù)換成從定位系統(tǒng)獲取到的經(jīng)緯度,就可以實(shí)時(shí)定位了。
    pyb.delay(13000)#延時(shí)一下時(shí)間,官方提供的測試平臺有上傳頻率限制
    if(u2.any()>0):#在向服務(wù)器發(fā)送了數(shù)據(jù)后,服務(wù)器會對數(shù)據(jù)進(jìn)行判斷,并返相應(yīng)的報(bào)文                      #(報(bào)文參數(shù)詳見服務(wù)平臺)
                    #這個(gè)返回僅適用于官方提供的服務(wù)平臺,客戶自己搭建的平臺是否                              #存在這個(gè)功能,客戶自主搭建。
        _dataRead=u2.readall()
        print('1212',_dataRead)
    pyb.LED(3).on()
    pyb.delay(10000)

感謝各位的閱讀,以上就是“python如何開發(fā)TPYBoard v702 GPRS功能”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對python如何開發(fā)TPYBoard v702 GPRS功能這一問題有了更深刻的體會,具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識點(diǎn)的文章,歡迎關(guān)注!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI