人员招聘都花了快一个月时间,UI,后台相对容易,2年的前端开发工资16K都招了大半个月,实在心累。不过还好,一个月的前期准备工作包括团队的组建总算完成。

上午陈工找到我,说不用电信iot平台了,我心里一麻,一周的学习和调试工作白做了。来公司前,iot平台用电信的,这个以前他们硬件这边就选好了,已经在测试了。问陈工,何为?答之:以后涉及到不同的通讯商每个都要做一套,有些地方通讯可能要用移动的,那得又做一套兼容移动的,所以选择平台兼容性强的,用阿里云的物联网平台。既然已经选择了用阿里云物联网平台,这个我也就不多说,阿里云的产品都是非常强大的,我也一直在用。这一周的时间我将电信的物联网平台也稍微玩了下,感觉也挺不错的,将调试过程也做个简单记录下。

1.注册个账号,可以在微信公众号搜索"天翼物联产业联盟",关注后申请注册,大概一天左右就能收到邮件,邮件里面有中国电信物联网开放平台(对接测试)开户密码通知,测试平台地址,开发者门户地址,测试平台应用对接地址(企业应用接入地址),测试平台设备对接地址(终端设备接入地址)这些内容,还算很全的。

2.按照文档地址找到下载专区将java sdk demo下载下来,快速看了下,每个API都有一个main方法,直接运行就可以看到效果很方便。

3.java环境准备工作。服务器上安装jdk,tomcat,nginx,配置证书等。

4.在电信物联网平台上注册应用。登录测试平台,注册一个应用,一定要选择"基础API包","公用事业(NB-Iot)API包"。

5.上传证书。登录开发者平台,选择对接信息,点击应用列表,上传 https的证书,格式为 PEM。

6.上传 profile 文件。可以通过在线编辑生成,登录开发者平台->Profile开发->Profile导入: 选择《 中国电信物联网开放平台profile样例》中一个zip文件例子,(WaterMeter_Huawei_NBIoTDevice.zip)。

7.插件编写及上传。导入《中国电信物联网开放平台设备编解码插件源码及样例》中的源码,打包jar,注意看源码中的com.thrid.party.codec.demo这几个文件,这是数据上传下载的核心所在。登录开发者平台->插件管理->编解码插件管理,上传插件,直接用例程就好,调试通过了后面再根据业务修改。

8.设备管理。设备模板,名称与选择的 profile 文件一致 如你选择的WaterMeter_Huawei_NBIoTDevice.zip,解压它,打开profile文件夹,打开里面的json文件,找到"serviceId": "WaterMeterBasic",服务名及id都填WaterMeterBasic。服务模板,内容和属性与profile文件 一致,命令先定义一个"SET_DEVICE_LEVEL"(随便选的一个下发命令,以后自己改),事件选择"deviceDataChanged"(数据上传需要)。

9.使用中国电信物联网开放平台北向API调试工具-_GUI_APPDemo-master。注册设备,两个下拉框,分别选择NB-IOT,Device Manager,Register,Direct Device,修改设备,Modify Device Info,设备上线,《平台接入流程描述》有指导手册,在SSCOM中通过一系列AT指令操作,检查激活状态Query Device Status,输入device id ,点击按钮"check status",返回"evice Status:ONLINE"表设成功。

10.数据上报。在平台订阅服务,可以使用 API调试工具-_GUI_APPDemo,两个下拉框,分别选择NB-IOT Subscribe Manager Notify Type选择 "deviceDataChanged" callback URL 填回调的htts地址,设备上报数据的前八位是AA720000,其它随意,形式类似AA720000AAAAAAAAAAAAAAAAAAAAAAAAAA。

11.命令下发。在平台订阅服务,可以使用 API调试工具-_GUI_APPDemo,Notify Type选择 "commandRsp" callback URL填回调的htts地址,下发命令的json格式类似:{"expireTime":"0","callbackUrl":"https://回调地址","deviceId":"111-111-11-11","command":{"method":"SET_DEVICE_LEVEL","paras":{"value":"自定义"},"serviceId":"服务ID"}}。

整个走下来,一脸懵逼,感觉忒复杂,既然平台里面里面API调式工具没有问题,我这边通过java尝试了下发消息和收消息,一切都还正常。

订阅平台业务数据例子:

@Service("subscribeBusinessService")
public class SubscribeBusinessService {private static final Log log = LogFactory.getLog(SubscribeBusinessService.class);@PostConstruct
public void recvMsg(){
try{HttpsUtil httpsUtil = new HttpsUtil();httpsUtil.initSSLConfigForTwoWay();String accessToken = login(httpsUtil);String appId = Constant.APPID;String urlSubscribeServiceNotification = Constant.SUBSCRIBE_SERVICE_NOTIFYCATION;MapnotifyTypeAndcallbackurlMap = new HashMap<>();notifyTypeAndcallbackurlMap.put("deviceAdded",Constant.DEVICE_ADDED_CALLBACK_URL);//添加新设备,订阅后推送注册设备通知notifyTypeAndcallbackurlMap.put("deviceInfoChanged",Constant.DEVICE_INFO_CHANGED_CALLBACK_URL);//设备信息变化,订阅后推送设备信息变化通知notifyTypeAndcallbackurlMap.put("deviceDataChanged",Constant.DEVICE_DATA_CHANGED_CALLBACK_URL);//设备数据变化,订阅后推送设备数据变化通知notifyTypeAndcallbackurlMap.put("deviceDatasChanged",Constant.DEVICE_DATAS_CHANGED_CALLBACK_URL);//设备数据批量变化,订阅后推送批量设备数据变化通知notifyTypeAndcallbackurlMap.put("deviceDeleted",Constant.DEVICE_DELETED_CALLBACK_URL);//删除设备,订阅后推送删除设备通知notifyTypeAndcallbackurlMap.put("serviceInfoChanged",Constant.SERVICE_INFO_CHANGED_CALLBACK_URL);//服务信息变化,订阅后推送设备服务信息变化通知notifyTypeAndcallbackurlMap.put("ruleEvent",Constant.RULE_EVENT_CALLBACK_URL);//规则事件,订阅后推送规则事件通知Iterator<Map.Entry> entryIterator = notifyTypeAndcallbackurlMap.entrySet().iterator();while(entryIterator.hasNext()){Map.Entryentry = entryIterator.next();String notifyType = entry.getKey();String callbackurl = entry.getValue();MapparamSubscribe = new HashMap<>();paramSubscribe.put("notifyType", notifyType);paramSubscribe.put("callbackUrl", callbackurl);paramSubscribe.put("appId", appId);String jsonRequest = JsonUtil.jsonObj2Sting(paramSubscribe);Mapheader = new HashMap<>();header.put(Constant.HEADER_APP_KEY, appId);header.put(Constant.HEADER_APP_AUTH, "Bearer" + " " + accessToken);HttpResponse httpResponse = httpsUtil.doPostJson(urlSubscribeServiceNotification, header, jsonRequest);String bodySubscribe = httpsUtil.getHttpResponseBody(httpResponse);System.out.println("SubscribeServiceNotification: " + notifyType + ", response content:");System.out.println(httpResponse.getStatusLine());System.out.println(bodySubscribe);System.out.println();}}catch(Exception ex){ex.printStackTrace();}}@SuppressWarnings("unchecked")public static String login(HttpsUtil httpsUtil) throws Exception {String appId = Constant.APPID;String secret = Constant.SECRET;String urlLogin = Constant.APP_AUTH;MapparamLogin = new HashMap<>();paramLogin.put("appId", appId);paramLogin.put("secret", secret);StreamClosedHttpResponse responseLogin = httpsUtil.doPostFormUrlEncodedGetStatusLine(urlLogin, paramLogin);System.out.println("app auth success,return accessToken:");System.out.println(responseLogin.getStatusLine());System.out.println(responseLogin.getContent());System.out.println();log.info("app auth success,return accessToken:");log.info(responseLogin.getStatusLine());log.info(responseLogin.getContent());Mapdata = new HashMap<>();data = JsonUtil.jsonString2SimpleObj(responseLogin.getContent(), data.getClass());return data.get("accessToken");}}

智慧停车(三) IOT选型-电信物联网相关推荐

  1. 智慧停车之 IOT选型-电信物联网

    人员招聘都花了快一个月时间,UI,后台相对容易,2年的前端开发工资16K都招了大半个月,实在心累.不过还好,一个月的前期准备工作包括团队的组建总算完成. 上午陈工找到我,说不用电信iot平台了,我心里 ...

  2. 中亿物联网代理_北京电信物联网卡服务商,首选中亿物联网!【官方渠道】

    北京电信物联网卡是中国电信朝向物联网技术客户出示的选用物联网技术专用型的物联卡号码段做为移动通讯连接业务流程,根据专用网元机器设备适用短消息和GPRS等基本通信服务,并出示通讯情况管理方法和通讯身份验 ...

  3. 轻停智慧停车实时运营云服务,引领物联网时代新风向

    是什么让老司机都招架不住 对于一个老司机来说,停车不是件难事,但那只是因为你没有遇到"车满为患"的时候.一些大型的立体停车场,如果规划和管理不到位,加上处于高峰时段,老司机往往也招 ...

  4. 【IoT】物联网NB-IoT之电信物联网开放平台对接流程浅析

    电信物联网开放平台对接流程如下图所示: 1.创建 APP 应用 登录中国电信物联网开放平台对接测试环境SP Portal(https://180.101.147.135:8843),初次登录需要修改初 ...

  5. 智慧停车中所应用到的物联网技术,主要有哪些?

    较为基础的是具体到停车位上使用的智能车位锁技术和地磁传感器技术这两种. 智能车位锁:通过蓝牙控制车锁升降,车锁升起,车辆无法进入停车位,车锁降下,对应车辆驶入. 由于社区中的停车位主要分为私家车位和物 ...

  6. 智慧停车产业链市场全透析

    来源:慧天地 最近,Goodwin调查发现,在城市地区,接近30%的交通拥堵源自于司机寻找停车位.据称,到2020年,将会有20亿的汽车在公路上跑着,这就意味着,届时汽车的数量将比目前多了7.7亿辆. ...

  7. 智慧停车介绍、产业链市场全透析

    来源:传感器技术 最近,Goodwin调查发现,在城市地区,接近30%的交通拥堵源自于司机寻找停车位.据称,到2020年,将会有20亿的汽车在公路上跑着,这就意味着,届时汽车的数量将比目前多了7.7亿 ...

  8. 中国电信物联网建设全面提速 投入三亿元补贴物联网模块

    近日,中国电信主办的"2017年中国电信物联网发展政策恳谈会"召开.在会上,中国电信表示,将拿出3亿元进行物联网专项补贴激励,重点支持NB-IoT与CAT1两大类产品.另外,基于8 ...

  9. 龙湖千丁基于 ACK@Edge 的云原生智慧停车系统架构实践

    在物联网.大数据.云服务等的快速发展及规模化应用下,今天,大量在日常生活中产生的数据可以被更好地连接和利用,为智能设备的运转提供支持,在推进社会高效协作,建设有温度.有速度的智慧生活中发挥价值. 龙湖 ...

最新文章

  1. 一文详解CMake编译工具与项目构建
  2. node.js mysql 不退出,mysql - 错误:使用NodeJS在MySQL中调用退出后无法排队查询 - SO中文参考 - www.soinside.com...
  3. 百度面试测试开发工程师内容
  4. Linux 用户和组
  5. java守护线程与用户线程_详解Java线程-守护线程与用户线程
  6. 【算法】剑指 Offer 56 - I. 数组中数字出现的次数 【重刷】太难了
  7. Linux进程间通信的方法和示例
  8. PHP设计模式——原型模式
  9. 编译aspell时出错
  10. paip.验证码识别---图像处理类库
  11. mybatis 依赖于jdbc_mybatis 详解(一)------JDBC
  12. 计算机二级c语言程序设计题评分标准,计算机二级C语言题型和评分标准
  13. 小米线刷教程+小米8背面指纹版的MIUI10和MIUI11包分享
  14. 自动驾驶之轨迹规划5——Apollo规划中的离散点曲线平滑数学原理
  15. npm ------ npm audit
  16. mlir toy 教程(1)
  17. python3.7 win10 64位系统下用pyinstaller打包的程序在32位系统下无法运行
  18. [深度应用]·DC竞赛轴承故障检测开源Baseline(基于Keras1D卷积 val_acc:0.99780)
  19. 小米手机安装Google框架
  20. 汉诺塔python非递归实现,[Python3 练习] 006 汉诺塔2 非递归解法

热门文章

  1. 计算机英语听力,计算机英语词汇大全
  2. 四大CPU架构的区别
  3. SpringCloud入门之项目实例
  4. php selectradio和checkbox默认选择的实现方法
  5. Word插入Latex公式的几种方式~(TeXsWord、EqualX、Aurora、向Office插入LaTeX公式的工具)...
  6. 解释程序与解释程序的缺点,图解——解释程序与编译程序的区别
  7. excel导入时手机号码格式错误的一个解决方法
  8. swift 时间选择器第三方。公历转农历,农历转公历。
  9. CF Canada Cup 2016 D 优先队列
  10. linux lzma 函数 调用,Lzma(7-zip)和zlib