|
最近月余一直在折腾机智云的事,直到今天才算是将自己的单片机系统接入了机智云平台,有了一种“物联天下”的自豪感;感觉家里像个电信局了。“机智云”是一个面向开发者的免费开放的互联网服务平台,通过这个服务器将以单片机为主的智能硬件与智能手机联系起来,实现三者之间的通信,这就是所谓的“物联网”技术(IOT)。说到物联网就不得不说WIFI硬件:市场上以安信可esp8266系列WiFi模块为主,当然还有其他类型芯片;这些模块既可以用AT指令也可以用开源的SDK编程。编译软件一般是eclipse,这时就可以将ESP8266系列WiFi模块当成普通单片机开发了。
虽然说机智云为开发者准备好了智能硬件的工程模板和手机APP模板,省去了开发者对单片机和以太网的大量复杂通信协议设计,但是毕竟涉及到的知识面很广,比如单片机编程,互联网,智能手机APP开发。这三样东西样样不是省油的灯,够一个人学习一辈子的了;好在机智云都提供了相应的工程模板。在我看来机智云提供的单片机工程模板是比较复杂的,没有相当的C语言编程基础可以说是很难理解和做到“为我所用”的,而且还需要登录机智云网站下载相应的通信协议文档与工程模板源码对应分析才能有眉目。
关于互联网的一些重要概念这里说说:TCP/IP协议(面向网络传输层的通信协议,解决数据如何传输的问题),UDP协议,DHCP(动态主机配置协议,IP地址动态分配),HTTP协议(面向应用层的文本传输协议,解决数据怎么用的问题) ;TCP服务端(sever)和客户端(client),就如同打电话一样需要一个主叫和被叫一样,端口号就如同电话的分机。TCP或者UDP通信必须有TCP服务端(sever)和客户端(client)这二者,作为TCP服务端(sever)时无需配置IP地址和端口号,但是作为客户端(client)时就必须知道通信对方的IP地址和端口号。ARP地址解析协议,URL(统一资源地址,针对服务器而言)等等这些概念必须学习了解。
本人用的是西兰花F1开发板+安信可ESP8266-07模块,先将机智云提供的GAgent固件下载到ESP8266-07模块;GAgent是运行在各种通讯模组上的一款应用程序,可以提供上层应用(手机APP等控制端、云端)到产品设备的双向数据通讯,此外,还提供对设备的配置入网、发现绑定、程序升级等功能。产品开发者使用GAgent后,只需要关心产品的业务逻辑开发,不用关心数据的通讯功能开发,大大降低了开发的难度。该固件遵循以下协议《机智云平台标准接入协议之MCU与WiFi模组通讯》、《机智云平台标准接入协议之设备与云端通讯》、《机智云平台标准接入协议之App与设备通讯》。据我所知GAgent固件没有开源。GAgent固件下载到ESP8266-07模块之后就是更改机智云提供的单片机工程模板,实现自己所要的功能,编译通过之后下载到单片机。注意,在APP与F1匹配配置好之后,每次更新单片机程序,手机APP都需要重新绑定一次硬件!经本人测试智能硬件和手机在局域网WIFI环境下可以实现WIFI之间的通信。如果关闭家里的WIFI手机与智能硬件之间就不能实现WIFI“点对点”的通信了(这是个小小的缺憾)。手机在没有WIFI的环境下,手机可以通过流量与智能硬件通信(必须置于广域网环境下)。 接入机智云关键的是要分析搞懂F1工程模板的源代码,理解互联网通信基础知识。
在此基础上,要做的事情还很多很多;比如将通信协议嵌入自己的工程中,加入uc/os-ii操作系统和FAT32文件系统,emwin;让智能硬件更加智能;E4A的开发也需要大量的时间和精力。还有WIFI模块的SDK开发,等等......
|
|