一、什么是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)

  

MicroPython-GPRS教程之TPYBoardv702GPRS功能测试的更多相关文章

  1. [转]搬瓦工教程之九:通过Net-Speeder为搬瓦工提升网速

    搬瓦工教程之九:通过Net-Speeder为搬瓦工提升网速 有的同学反映自己的搬瓦工速度慢,丢包率高.这其实和你的网络服务提供商有关.据我所知一部分上海电信的同学就有这种问题.那么碰到了坑爹的网络服务 ...

  2. jQuery EasyUI教程之datagrid应用(三)

    今天继续之前的整理,上篇整理了datagrid的数据显示及其分页功能 获取数据库数据显示在datagrid中:jQuery EasyUI教程之datagrid应用(一) datagrid实现分页功能: ...

  3. jQuery EasyUI教程之datagrid应用(二)

    上次写到了让数据库数据在网页datagrid显示,我们只是单纯的实现了显示,仔细看的话显示的信息并没有达到我们理想的效果,这里我们丰富一下: 上次显示的结果是这样的 点击查看上篇:jQuery Eas ...

  4. jQuery EasyUI教程之datagrid应用(一)

    最近一段时间都在做人事系统的项目,主要用到了EasyUI,数据库操作,然后抽点时间整理一下EasyUI的内容. 这里我们就以一个简洁的电话簿软件为基础,具体地说一下datagrid应用吧 datagr ...

  5. kali linux 系列教程之metasploit 连接postgresql可能遇见的问题

    kali linux 系列教程之metasploit 连接postgresql可能遇见的问题 文/玄魂   目录 kali linux 下metasploit 连接postgresql可能遇见的问题. ...

  6. kali Linux系列教程之BeFF安装与集成Metasploit

    kali Linux系列教程之BeFF安装与集成Metasploit 文/玄魂 kali Linux系列教程之BeFF安装与集成Metasploit 1.1 apt-get安装方式 1.2 启动 1. ...

  7. Kali Linux系列教程之OpenVas安装

    Kali Linux系列教程之OpenVas安装 文 /玄魂 目录 Kali Linux系列教程之OpenVas安装 前言 1.  服务器层组件 2.客户层组件 安装过程 Initial setup ...

  8. Playmaker Input篇教程之PlayMaker菜单概述

    Playmaker Input篇教程之PlayMaker菜单概述 Playmaker InputPlayMaker菜单概述 Playmaker插件被导入游戏项目以后,会自动为Unity编辑器添加一个名 ...

  9. Playmaker Input篇教程之Playmaker购买下载和导入

    Playmaker Input篇教程之Playmaker购买下载和导入 Playmaker Input篇认识Playmaker Playmaker是Unity的插件,其标志如图1-1所示.开发者使用它 ...

随机推荐

  1. CS Round#50 D min-races

    Min Races Time limit: 1000 msMemory limit: 256 MB   In a racing championship there are N racing driv ...

  2. System.ServiceModel.CommunicationException: 已超过传入消息(65536)的最大消息大小配额。若要增加配额,请使用相应绑定元素上的 MaxReceivedMessageSize 属性。

  3. QQ互联申请及配置

    今天要说的只是针对QQ互联的操作,其他的互联请参考相关网站. 第一步:需要申请API接口的两码 自行登录QQ互联https://connect.qq.com/index.html,然后按照要求申请就O ...

  4. SVG绘图学习总结

    在我们平时做的很多网站项目中都会需要绘制各种各样的二维矢量图形.比如做城市地下管网的断面图.管线管点的坐标位置矢量标识图.钻孔位置或地层剖面图等等.我们有很多中方法来绘制这些矢量图(vml.canva ...

  5. Javascript 进阶 面向对象编程 继承的一个样例

    Javascript的难点就是面向对象编程,上一篇介绍了Javascript的两种继承方式:Javascript 进阶 继承.这篇使用一个样例来展示js怎样面向对象编程.以及怎样基于类实现继承. 1. ...

  6. 趋势科技PC-cillin2015,你来公測我发奖!

    watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaXF1c2hp/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/d ...

  7. 有关JS控制时间的几个小Demo

    一.Document自带的定时和延时方法:  循环运行:var timeid = window.setInterval("方法名或方法"."延时");windo ...

  8. or1200处理器的异常处理类指令介绍

    下面内容摘自<步步惊芯--软核处理器内部设计分析>一书 我们在计算机体系结构的学习中知道:中断实质上包含由外部事件引起的硬中断(又称外中断)和由内部预先安排的特定指令或内部异常引起的软中断 ...

  9. 【Java系列】Eclipse与Tomcat

    描述 本篇文章简要讲述Eclipse和Tomcat搭建,具体包括如下内容: (1)Eclipse安装和汉化 (2)Tomcat安装和CATALIAN_HOME变量配置 (3)在Eclipse中配置To ...

  10. WEB版一次选择多个图片进行批量上传(WebUploader)的解决方案

    最近在学习百度的开源上传组件WebUploader,上一篇文章,学习了批量文件上传,今天学习一下批量图片上传,实际上与文件上传很类似,只是添加了图片显示功能,这个功能WebUploader组件中已经提 ...