作为物联网控制APP制作系列文章的终版,本文带给大家的福利是让大家学会制作完完全全自己可控的安卓APP。与前几篇文章介绍的使用第三方平台自动生成、第三方平台帮助打包、以及androidstudio制作框架显示IoTStudio制作的控制页面相比,大的优势是源代码可控,其次是免费(对于开发者而言)。难点是需要掌握的技术太多。本篇文章尽量详细地介绍实现的基本原理以及操作步骤,并终提供可以正常编译的源代码,让您既有理论学习,也有实践对象。
实现的效果如下:
所用的软件环境:win7x64,androidstudio3.5.1。
目录
1.为什么第三方平台要收费?
2.自己做androidstudio程序难在哪里?
3.自己做androidstudio程序的基本思路
4.androidstudio制作物联网控制APP实战
5.结论
1.为什么第三方平台要收费?
因为物联网控制系统的高门槛,第三方平台设计的这些在线产品凝聚了大批程序员的辛勤劳动。试想你学会了之后,会不会通过这一项技能去找工作,或者做项目,那么找工作、做项目的目的又是为了什么?换位思考一下就明白了。
第三方平台提供优质的服务,你支付合理的价款。如果你要免费,那也可以,花几十乃至上百倍的时间和精力去学习如何来做吧。
2.自己做androidstudio程序难在哪里?
难在调试。
做嵌入式的老程序员一定明白这个道理。
你认为所有的代码都没问题,可就是调不通。有时一个标点让你困住一个月。
本文也是一样,看似简简单单的源代码,其实让它成功生成apk文件,与云平台成功通信之前,已经解决了无数的问题,熬了很多个夜。
或者说,有的代码即使给了你,生成了安装包,后也不能与云平台通信,不能控制物联网设备。
物联网控制app就是这样,它不是一个简单的本机activity,自己操作就行了,而是要与云端通信,与现实世界的物联网设备通信才算是达到目标。
3.自己做androidstudio程序的基本思路
无论是第三方还是自己做,核心都是为了实现通信数据的传输。能坚持看到这里的同学,默认你已经掌握了MQTT的基本知识,如果还没有掌握,请自行在CSDN查资料学习。
我简单形容一下,MQTT(Messageransport,消息队列遥测传输)是IBM多年前研发的一种通信协议,能够在低带宽下可靠传输(适应了花费较少的小流量包或者物联网卡),开始并不是为物联网设计,但是在物联网热潮下壮大,几乎成为物联网通信协议的事实上的。
有需要的同学可以简单浏览一下我的另一篇文章进行了解。我不是MQTT专家,不懂的不多说。
使用arduinoD1wifi模块(WeMosD1)连接阿里云物联网平台并成功实现APP点亮板载LED(五)---MQTT.fx模拟设备连接阿里云
从上文中可以了解到,可以在PC端使用MQTT.FX软件来连接阿里云物联网平台,订阅/发布消息。
不过要想与阿里云物联网平台成功通信,需要对MQTT客户端进行设置,关键的有几个参数,比如BrokerAddress,BrokerPort以及ClientID。其中ClientID是几个参数经过加密算法(阿里云平台的类型是hmacsha1)计算出来的。
需要加密?当然了。要不然怎么保证物联网通信的可靠性!所以自己用服务器搭建MQTT服务器,玩玩可以,要真的做实际的项目用,建议还是通过大平台来操作。大平台会提供所有必要的安全、加密措施。
有了这些基本的条件之后,就可以顺利连接云平台,开展订阅/发布业务了。
无论是APP,还是云平台,还是物联网终端,其实都是采用的这种订阅/发布方式来通信,它相当先进。
我们用androidstudio制作自己的APP,核心也就是在APP内部实现自己的客户端,在APP内部按照规定进行加密。然后就可以订阅/发布主题了。能够订阅/发布主题,那么其他的就都是细节问题了,已经没有什么可以难得到你的了。
阿里云的IoTStudio移动可视化开发,其实相当于网页端已经默认打包好了跟阿里云物联网平台通信的组件/支持包,所以才能实现少量代码甚至无代码的控制页开发。