摘要:物联网设备和单纯的嵌入式设备最大的区别是联网与否------如果能够联网,就需要对设备端和云端进行相应的编程或者设置,让它们之间进行通信;如果不需要联网,那么烧录软件,让设备自动工作即可,不需要考虑网络通信问题。此外,有些场合需要提供移动端APP,而且一旦有了APP加持,能够让你的项目显得瞬间高大上。对于找工作的同学而言,能够制作APP可以让你找工作更加容易,对于小公司而言,能够不依赖第三方提供物联网APP,也能极大地节约研发成本。本文就简介当前几种物联网控制APP的几个模式,让大家了解几种不同的技术路线。后续的文章,将重点对IOT STUDIO移动可视化模式和android studio模式进行详细讲解,一步步带您做出自己的物联网APP。
目录
一、在线生成APP源代码的模式
这种模式以“机智云”为代表,当你的项目设置完成后,可以在线生成代码包,然后下载之后进行编译。
参考文章:使用ESP8266模块DIY一个热水器控制器,使用机智云后台 (二)ESP8266软件篇
在开发者中心可以对项目的移动端程序进行设置
优点:可以通过简单的步骤生成源代码,后续还可以修改。
缺点:开机画面以及步骤是机智云风格的,还需要登录用户,不能打开APP就是控制自己设备的界面。
二、第三方公版APP子设备模式
以“云智能”和“小米之家”为代表。“云智能”是与阿里云生活物联网配套的,“小米之家”是与小米的设备配套的。这类APP 的特点是大厂提供“公版”的APP,自己的设备可以通过申请加入到大厂的平台中,作为一个子设备(APP界面中的一个特定的小图标)运行,点击了这个小图标之后,就进入了一个专属的页面。
进入到“人机交互”界面之后,就可以配置APP的界面。
参考文章:https://help.aliyun.com/document_detail/127307.html?spm=a2c4g.11174283.6.613.2d197132toaKwJ
优点:只需要在阿里云生活物联网平台或小米IOT开发者平台新建项目,一步步操作到APP这一步,设置一下就行。
缺点:工业项目和农业项目,如果用一个看似生活设备风格的APP,感觉不专业。
三、APP壳嵌套网页模式
这种模式的开发,核心是自己像开发网站一样,做出来一个能够控制自己物联网设备的“网页”或者网站,然后做一个APP的“壳”,打开APP之后,界面实际上是打开了自己“网站”的“”“页面”。
再简单点来说,就像是做了一个浏览器APP,只不过这个浏览器是没有地址输入框的,打开就是自己的网站。
例如下图这样的APP。
制作的方法有两种:第一种是自己写框架,第二种是通过第三方生成框架。框架的核心是浏览器。
自己写框架,可以用android studio写,调用内置的webview组件,浏览指定的网址。
第三方框架,很多是支持无代码编程的,比如H5APK等等,搜索关键词“安卓网页封装APP”,就可以将你的网页打包成APP了。
优点:如果是做了APP框架,那么理论上它就是一个浏览器,不用升级的。你的网站或者网页更新了之后,再次打开它,就是最新的页面。不用像安卓原生应用一样老是升级。
缺点:要有域名、服务器(或者物联网云平台)、还要经过工信部和*备案的过程,比较繁琐。第三方封装还需要收费。
四、android studio原生app模式
不管是那种APP,其设计目的都是让物联网设备可以在移动端进行控制,让用户用手机或者平板灯移动设备可以方便地进行操作。
对于商业项目来说,一般要求APP定制化,客户需要什么就定制成什么样子。在这种情况下,最好还是要学会自己编写APP才能实现客户需求。
其实APP的核心是实现与云后台的通信和设备控制。它难在通信能否实现。
通信的核心在哪里?在MQTT客户端。
它其实并不难。
为什么不难?我们搞清楚它是怎么工作的,然后在APP源代码里面实现它就行了。
参考文章:使用arduino D1 wifi模块(WeMos D1)连接阿里云物联网平台并成功实现APP点亮板载LED(五)---MQTT.fx模拟设备连接阿里云
MQTT已经成为事实上的物联网标准,它是通过一种“发布”“订阅”的方式工作的,具体通信原理不在此赘述。
MQTT.FX软件模拟连接阿里云物联网平台的过程,就是我们APP要实现的过程。
无非是MQTT.FX软件已经内置了基本的通信功能,我们只需要计算出来客户端的密码就行了。而APP源代码里面要有MQTT客户端的支持库,同时也要有加密库,让APP运行的时候,能够自动将软件提供的“三元素”计算成密码,供客户端进行调用。
明白了APP的核心是实现“客户端”和“加密”,其实工作已经完成一半了,剩下来一半的工作是调试。我会在以后的文章中详细介绍。
下图是我编写(修改)的一个能够与阿里云通信的安卓APP界面。
下图是云端通信日志
小结:编写APP并不难。本文简介了四种常见的APP开发模式,并对android studio原生APP开发模式开了个头。通过本篇分析,希望大家能够对物联网APP开发有所了解,根据所开展的项目,合理选择开发模式,在预算和时间可控范围内,尽可能快地开发出适合的APP。