物联网设备和单纯的嵌入式设备最大的区别是否联网,如果能够联网,就需要对设备端和云端进行相应的编程或者设置,让它们之间进行通信;如果不需要联网,那么烧录软件,让设备自动工作即可,不需要考虑网络通信问题。
此外,有些场合需要提供移动端APP,而且一旦有了APP加持,能够让你的项目显得瞬间高大上。对于找工作的同学而言,能够制作APP可以让你找工作更加容易,对于小公司而言,能够不依赖第三方提供物联网APP,也能极大地节约研发成本。
本文就简单介绍当前几种物联网控制APP模式,让大家了解几种不同的技术路线。
在线生成APP源代码模式
在线生成APP源代码的模式以“机智云”为代表,当你的项目设置完成后(定义数据点是关键),可以在线生成代码包,然后下载之后进行编译。
在机智云开发者中心可对项目的移动端程序进行设置。
可参考文章使用ESP8266模块DIY一个热水器控制器,使用机智云后台 (二)。
总结
优点:可以通过简单的步骤生成源代码,后续还可以修改。
缺点:开机画面以及步骤是机智云统一风格的,还需要登录用户,不能打开APP就是控制自己设备的界面。
在线APP开发方式
更方便的在线APP开发方式是使用机智云新版开发平台(需提前定义数据点),在线自定义APP的功能页面、展示信息,自己替换logo、根据模板来修改图标位置大小等,开发出自己的APP。
进入到“人机交互”界面之后,就可配置APP的界面。
总结
优点:基本不用什么APP开发基础,也不用修改代码,就能形成个性化APP。
第三方公版APP子设备模式
同样以“ 机智云”为代表,这类APP 的特点是大厂提供“公版APP“,自己的设备可以通过申请加入到大厂的平台中,作为一个子设备(APP界面中的一个特定的小图标)运行,点击了这个小图标之后,就进入了一个专属的页面。
总结
优点:只需要在机智云开发者平台创建项目定义数据点,联系机智云申请绑定相关设备,即可直接使用。
APP壳嵌套网页模式
APP壳嵌套网页模式的开发,核心是自己像开发网站一样,做出来一个能够控制自己物联网设备的网页或者网站,然后做一个APP的壳,打开APP之后,界面实际上是打开了自己网站的页面。
再简单点来说,就像是做了一个浏览器APP,只不过这个浏览器是没有地址输入框的,打开就是自己的网站。
制作的方法有两种,第一种是自己写框架,第二种是通过第三方生成框架。
框架的核心是浏览器。自己写框架,可以用Android Studio写,调用内置的webview组件,浏览指定的网址;第三方框架,很多是支持无代码编程的,比如H5APK等等,搜索关键词“安卓网页封装APP”,就可以将你的网页打包成APP了。
总结
优点:如果是做了APP框架,那么理论上它就是一个浏览器,不用升级的。你的网站或者网页更新了之后,再次打开它,就是最新的页面。不用像安卓原生应用一样老是升级。
缺点:要有域名、服务器(或者物联网云平台)、还要经过工信部和公安备案的过程,比较繁琐。第三方封装还需要收费。
Android Studio 原生APP模式
不管是那种APP,其设计目的都是让物联网设备可以在移动端进行控制,让用户用手机或者平板等移动设备可以方便地进行操作。
对于商业项目来说,一般要求APP定制化,客户需要什么就定制成什么样子。在这种情况下,最好还是要学会自己编写APP才能实现客户需求。
其实APP的核心是实现与云后台的通信和设备控制。它难在通信能否实现。
通信的核心在哪里?在MQTT客户端。它其实并不难。为什么不难?我们搞清楚它是怎么工作的,然后在APP源代码里面实现它就行了。
机智云通讯模型
设备与云端的通讯分为了GService和M2M:GService采用http协议,负责设备注册、注销等;M2M采用MQTT协议,负责进行实时性较强的数据操作。
这种双中心的划分非常棒,充分发挥了两种协议的优势,http的特点是简单,MQTT的订阅通知特性又有非常棒的实时性。普通的云平台,就单独使用http完成了注册登录、还做数据上报,下行控制等功能。
开发指南:
http://docs.gizwits.com/zh-cn/quickstart/iOSAPPFrame.html
开发一款APP:
https://club.gizwits.com/thread-8781-1-1.html
总结下来编写APP并不难,通过本篇分析常见的APP开发模式,希望大家能够对物联网APP开发有所了解,根据所开展的项目,合理选择开发模式,在预算和时间可控范围内,快速地开发出适合的APP。
全部0条评论
快来发表一下你的评论吧 !