Air800介绍

Air800是上海合宙通信科技有限公司推出的一款支持GPRS+北斗+GPS的三合一模块。其开发方式为Luat,Luat = Lua + AT, Luat 是合宙(AirM2M)推出的物联网开源架构,依托于通信模块做简易快捷的开发,将传统的AT命令用Lua封装成API,并提供各种功能应用的demo,大大减少用户的开发成本。详细资料参见:http://wiki.openluat.com

PS:一开始准备用安信可的A7模块来实现将GPS上传到OneNET平台上,但是实际开发中发现各种功能都需要自己去实现(MQTT的实现让我头疼好久)并且还得外接一个MCU,大幅度增加了开发成本和开发时间,所以不得不放弃这种方案。在后续的选型时,无意间在淘宝上看到Air800,不需要外接MCU和丰富API让我心动不已,于是买了一块来尝鲜,在开发过程中,不得不说Luat开发方式对开发者很友好,省略了很多自己造轮子的过程,所以在这儿也推荐一波。

OneNet平台介绍

OneNET作为中国移动通信集团推出的一个专业物联网开放云平台,提供了丰富的智能硬件开发工具和可靠的服务,助力各类终端设备迅速接入网络,实现数据传输、数据存储、数据管理等完整的交互流程。

支持公开协议包括EDP、MODBUS、MQTT以及HTTP等多种协议。详细资料参见:https://open.iot.10086.cn/doc

所需API

Luat封装了很多的实用API,所以在实现一些功能的时候就无需自己造轮子,直接调用其API即可

mqtt

pack

gps

lbs

json

实现思路

本例通过MQTT将Air800获取到的GPS坐标发送到OneNET平台并显示。

MQTT协议是一个面向物联网应用的即时通信协议,使用TCP/IP提供网络连接,能够对负载内容实现消息屏蔽传输,开销小,可以有效降低网络流量。OneNET平台采用的是标准MQTT协议,所以使用合宙提供的MQTT API就能很方便的连上。只需要在OneNET上生成一个应用方可得到MQTT鉴权

Q1:MQTT连接鉴权时,Payload中ClientIdentifier;UserName;UserPassword分别填写什么?A: ClientIdentifier: 创建设备时得到的设备ID,为数字字串;     UserName: 注册产品时,平台分配的产品ID,为数字字串; UserPassword: 为设备的鉴权信息(即唯一设备编号,SN),或者为apiKey,为字符串。

OneNET平台优势之一可以利用数据点快速生成应用


要想让数据在OneNET平台上以数据点形式展现出来就得按照OneNET协议上传数据,使用OneNET平台的mqtt协议调试工具可以看到payload以json格式发送,并在json前面加0x01,0x00,0x20(这个字节为json长度),payload格式发送。

json格式如下

{"datastreams": [{"id": "temperature", //数据流名称或数据流模板名称"datapoints": [{"at": "2013-04-22T00:35:43", //上传数据点时间,可选。如果为空,则设备云会取当前时间。
//如果存在其格式必须为"YYYY-MM-DDThh:mm:ss"的形式(例如:2015-03-22T22:31:12)"value": 42  //上传数据点值},{"at": "2013-04-22T00:55:43","value": 84 //上传数据点值}]},{"id": "key", //数据流名称或数据流模板名称"datapoints": [{"at": "2013-04-22T00:35:43",//上传数据点时间,可选。"value": {…}//上传数据点值},{"at": "2013-04-22T00:35:43","value": {…}//上传数据点值}]},{…}]
}

本例中的json格式为

{"datastreams": [{"id": "gps","datapoints": [{"at": "","value": {"lon": 106.584,"lat": 29.5707,"ele": 100}}]}]
}

可以看到对应不同的数据点,只需要修改“id”和“datapoints”。

部分代码

所以将GPS数据发送到OneNET平台上,最关键点将获取到的GPS数据打包为OneNET数据点格式

local function msgPack()--打包jsonlocal torigin = {datastreams = {{id = "gps",datapoints = {{at = "",value = {lon = bgps.returnBlng(),      --得到获取到的经度lat = bgps.returnBlat(),      --得到获取到的纬度ele = "100"}}}}}}local msg = json.encode(torigin)      --对json进行编码local len = msg.len(msg)buf = pack.pack("bbbA", 0x01,0x00,len,msg)    --打包数据流字节头
end

GPS读取数据处理

--[[字符串分割函数,和其他语言的split使用方式类似参数:s:待分割的字符串sp:分割标识符返回值:分割得到的字符串,类型为table例子:temp = split("a,b,c,d",",")temp = {"a","b","c","d"}
]]
function split(s, sp)  local res = {} local temp = s  local len = 0  while true do  len = string.find(temp, sp)  if len ~= nil then  local result = string.sub(temp, 1, len-1)  temp = string.sub(temp, len+1)  table.insert(res, result)  else  table.insert(res, temp)  break  end  end  return res
end local function gpsGet()if gps.isfix() == true then           --gps定位成功local gpsStr = gps.getgpslocation()   --返回值为E,121.5259850,N,31.2356616格式 所以需要分割local temp = split(gpsStr,",")blng = temp[2]blat = temp[4]endif gps.isfix() == false then      --gps定位失败  用基站定位sys.timer_start(qrygps,100)end
end

完整代码:https://github.com/lenghonglin/openLuat_Air800/tree/master/OneNet

Air800(GPRS+GPS模块)连接OneNet平台相关推荐

  1. 上海域格CLM920_NC3模块连接oneNET平台

    上海域格CLM920_NC3模块连接oneNET平台 NC3模块AT支持MQTT3.1.1对接移动onenet平台需要特殊版本支持,普通版本暂不支持. 连接平台测试方法 1.登录OneNET平台找到控 ...

  2. SIM900A模块开发:通过GPRS连接OneNet平台发送GPS信息

    SIM900A模块开发:通过GPRS连接OneNet平台发送GPS信息 1. SIM900A模块介绍 1.1 SIM900A模块具有以下特点: 1.2 模块TTL接口图 1.3 硬件连接方法 2. O ...

  3. ESP01 连接OneNet平台

    ESP01 连接OneNet平台 ESP01 连接OneNet平台 1.硬件准备 2.ESP8266 Arudino环境搭建 3. ESP8266采集DHT11数据 4.OneNet平台搭建 5.ES ...

  4. 中国移动M5310 nbiot开发板连接onenet平台全过程

    中国移动M5310 nbiot开发板连接onenet平台全过程 详细介绍一下中移m5310 nbiot开发板对接onenet云平台的全过程,简单实现了温湿度的采集,及数据上报与可视化显示. 一.M53 ...

  5. 一文带你了解 MQTT 协议(连接 ONE-NET平台)

    MQTT 协议连接 ONE-NET 详解 写在前面 ​  本文采用 网络调试助手 发送MQTT协议报文(16进制) 连接 ONE-NET 平台,采用的 为 MQTT v3.1.1 标准协议.带你直接 ...

  6. 【IOT】NB-IOT模块连接Onenet物联网云平台2020年实测

    一.准备 USBtoTTL模块 NB-IOT模块 串口调试助手 二.连接 Step1:模块连接 将USBtoTTL与NB-IOT模块连接VCC.GND对应连接TX接RX.RX接TX. Step2:连接 ...

  7. SIM800C连接OneNet平台HTTP协议上传GPS数据

    1. 前言 科技进步不断推动新产品的出现,越来越多的电子产品开始着力解决社会焦点问题,随着城市发展以及人口流动性的增加,儿童户外被拐,老人外出走丢,交通工具被盗和大型物件丢失等问题变样严重起来,因此, ...

  8. 基于GPRS远程开关和OneNET平台实现共享净水机控制

    思路: 如下图所示: 手机或电脑等终端设备发送http命令给OneNET物联网平台,OneNET通过GPRS连接将开关命令发送给GPRS远程开关,GPRS远程开关通过控制净水器或其它电器的220V电源 ...

  9. CC3200使用MQTT协议连接Onenet平台实践

    代码仓库地址:https://github.com/idrey/CC3200_Onenet 0x01 介绍 CC3200是TI公司推出的一款WIFI MCU,支持多种网络协议.信息物理系统课程中使用的 ...

最新文章

  1. 13_MFC工具条和状态栏
  2. web安全之文件上传漏洞攻击与防范方法
  3. python可以调试吗_调试-有什么好的方法可以使我的Python代码首次运行?
  4. 第四范式入选Forrester中国机器学习Now Tech™,成唯一AutoML专注类大型厂商
  5. C#综合揭秘——细说多线程(上)
  6. iframe 中 js 的 cookie 读写不到的解决办法
  7. 华为鸿蒙全能家居,能兑现多少?华为智慧屏十年不过时,用鸿蒙理念做智能家居...
  8. Redis之内存分析
  9. python3.6.5安装步骤-Centos7 安装Python3.6.5步骤
  10. 免费的固定资产管理软件|免费的固定资产管理软件哪个好?
  11. java代码合成多张图片成一张
  12. 不多不少,大学里必做的五件事(从我的大一说起)
  13. bochs上网镜像怎么上网_bochs win7镜像可上网版-bochs WIN7 IMG镜像文件下载 v1.0完整版...
  14. 一些基础知识:脑科学、神经科学、心理学
  15. SpringBoot 2-连接数据库、配置logback打印sql日志等
  16. PPT模板制作如何添加动画?
  17. 读NP-C及哥德尔不完备定理感想
  18. Apollo详解之定位模块———导航设备硬件基础
  19. 08 Confluent_Kafka权威指南 第八章:跨集群数据镜像
  20. 如何在线制作思维导图?(普通制作流程)

热门文章

  1. QZ 5T 抓斗行车起重机 切电阻,空操,电气电器图纸一套这是调试后的最终版图纸
  2. 客户机-服务器系统,3、客户机/服务器系统(Client/Server)
  3. fis3 html 变量替换,fis3配置之分环境(media)构建
  4. Scratch3.0连接EV3,WEDO2.0的方法视频讲解。
  5. TrueType字体
  6. 以95%的精度构建CNN模型
  7. Windows下kali子系统安装教程
  8. 思维导图ubuntu_Ubuntu系统---安装思维导图XMind
  9. 埃斯顿量产伺服控制器C代码和硬件图纸
  10. 如何将iPhone投屏到Mac电脑上?iphone投屏到mac方法