MicroPython-GPRS教程之TPYBoardv702GPRS功能测试

  一、什么是TPYBoardV702

  TPYBoardV702是目前市面上唯一支持通信通信功能的MicroPython开发板:支持Python3.0及以上版本直接运行。支持GPS+北斗双模通信、GPRS通信、短信功能、电话功能;板载温湿度、光敏、三轴加速度传感器、蜂鸣器、LCD5110显示屏。免费提供通信测试服务平台。实物如下图:

图片描述

  二、利用TPYBoardV702完成利用GPRS功能把数据上传至服务器

  1、具体要求

  利用TPYBoardV702完成利用GPRS功能把数据上传至服务器

  2、所需器件

  TPYBoardV702开发板一块

  Gsm手机卡一张

  TPYBoardV702开发板板载GPRS通信功能,无需外接

  3、板载通信功能及使用介绍

  V702的开发板的整体整体亮点置一就是能板载通信功能,只要在开发板的卡槽上插上一张可以使用的手机卡(不支持电信),即可使用该功能。

  开发板板载的通信功能包括了电话,短信,GPRS等功能,在这个实验里面我们只使用GPRS这个功能。

  我们使用GPRS功能,主要是为了借助这个功能向服务器透传数据,所以我们第一步是要打开透传功能。

  然后我们要和服务器建立连接,这时我们需要知道服务器的地址和端口。这个实验我们借用官方提供的测试平台,发送一个自己编辑的数据包,来学习一下GPRS功能的使用方法。

  下面仔细说一下制作过程。

  三、制作主要过程

  先上个图,下面再开始说代码的问题。

图片描述

  Putty数据监控图

图片描述
  示例定位图

  1、制作过程

  (1)第一步是先把手机卡插到开发板开槽上,需要保证手机卡可以使用;

  (2)在上面工作完成后,我们开始main().py文件代码的编辑;

  (3)对需要用到的类库进行声明和定义;

  (4)把我们需要使用的变量进行一下定义;

  (5)把我们需要用到的接口进行声明和定义,这里我们主要用到了串口4这个接口,声明串口4的时候,需要把串口波特率设置为115200;

  (7)下面开始主函数的编写,这个实验里面我们用到了数据包,我们先新建一个符合格式的数据包;

  (8)完成以上之后,我们需要做一个最重要的事情,那就是定义“Y6”引脚为输出,然后把:“Y6”引脚拉低两秒以上,之后把此引脚拉高。因为“Y6”引脚是控制整个板载通信系统开启的开关,如果平时我们没有用到通信系统的话,为了节省功耗,板载通信系统是处于关闭状态的,需要使用时只需要拉低“Y6”引脚两秒以上;

  (9)当看到开发板上的红色直插LED灯快速闪烁的时候,说明板载通信系统正在启动,当这个红色直插指示灯结束快闪(如果插在开发板卡槽上的手机可用,指示灯处于慢闪状态)说明板载通信系统已经启动;

  (10)完成以上工作后,准备工作就已经完成了,下面我们需要先把通信系统的通信方式设置为透传,之后再和相应的服务器地址和端口进行连接;

  (11)和服务器建立连接后,就可以开始想服务器发送数据了,直接把数据从串口4送出去就可以了,通信系统会原封不动的把你发的数据发送到服务器。

  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)#以上为初始化显示屏的函数,虽然                                                #这次没有用到显示,但是备用
count_=0
N2 = Pin('Y3', Pin.OUT_PP)
N1 = Pin('Y6', Pin.OUT_PP)#定义通信系统启动引脚
N1.low()
pyb.delay(2000)
N1.high()
pyb.delay(10000)#拉高拉低引脚,启动通信系统
u2 = UART(4, 115200)#定义串口4,设置 波特率为115200
K=5#设置一个选择变量K
while (K==5):#这个循环是为了设置通信区域模式为透传模式。
    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')#这个语句是为了搭建通信连                                                  #接。
pyb.delay(10000)
print('123')
while (K==0):#这里是为了判断通信连接是否已经建立起来,如果没有建立起来通信的连接,            #则等待。
    pyb.delay(3000)
    if(u2.any()>0):
        _dataRead=u2.readall()
        print('oo',_dataRead)
        if(_dataRead.find(b'CONNECT OK')>-1):#这个判断是为了判断是否已经和服务器建                                          #立起连接来
            K=1#开发板已经和服务器建立起连接来,则改变选择变量的值,使其进入下             #一个循环
            pyb.LED(1).on()
while (K==1):#这个循环是执行数据传输命令的执行所在,在这个循环中进行各种数据的裁         #剪拼接和发送。
    print('DOU')
    #u2.write('+++')  此时整个系统进入透传通信模式,想要退出,则发送‘+++’,即可   #退出;
    #u2.write('ATO0') 想让系统从指令模式进入透传模式,则发送‘ATO0’,则进入透传;
    #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')
    #这个报文详细格式参照服务平台示例报文格式。
    #把这格式里面的经纬度数据换成从定位系统获取到的经纬度,就可以实时定位了。
    pyb.delay(13000)#延时一下时间,官方提供的测试平台有上传频率限制
    if(u2.any()>0):#在向服务器发送了数据后,服务器会对数据进行判断,并返相应的报文             #(报文参数详见服务平台)
                    #这个返回仅适用于官方提供的服务平台,客户自己搭建的平台是否                  #存在这个功能,客户自主搭建。
        _dataRead=u2.readall()
        print('1212',_dataRead)
    pyb.LED(3).on()
    pyb.delay(10000)
阅读更多
想对作者说点什么? 我来说一句

清华大学计算机教程之-数据结构

2009年06月23日 4.84MB 下载

JSP教程之与数据库通信

2010年04月19日 988KB 下载

PS教程之渐变2PS应用教程之渐变

2010年05月11日 1.89MB 下载

软考教程之软件测试详解PDF版

2010年09月12日 439KB 下载

软考教程之软件测试详解

2010年09月12日 27KB 下载

Java教程之javaIO详解

2010年09月12日 344KB 下载

Shark恒零基础破解教程之图文版

2017年01月04日 3.77MB 下载

没有更多推荐了,返回首页

不良信息举报

MicroPython-GPRS教程之TPYBoardv702GPRS功能测试

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭