基于ESP8266的物联网解决方案前言:2015年物联网处于爆发的一年,乐鑫的ESP8266WIFI芯片成为强烈的催化剂。成功的将2014年前的40以上的WIFI成本压缩到现在的10元左右。内置WIFI前端和高性能的32位MCU,基本引爆物联网市场,几乎牵扯到电子的行业,都可以用上,比如WIFI开关灯具WIFI定位电饭锅电冰箱洗衣机厨房电器空调空气净化器等消费类小家电与大家电,都面临这一场技术革新,与新的用户体验!几乎势在必行。比如一台空调,增加了10块钱左右的成本,但是却能用任何智能终端比如手机平板电脑等直接控制。总结:WIFI的加入不是锦上添花,而是比较实用的功能,将直接决定着你产品的档次和销路。几乎决定着您这款产品的存亡。目前出WIFISOC的厂家有5家以上,乐鑫这款ESP8266将利用自身的性能和价格以及技术优势引领市场2年左右,因此本厂的SDKAPP以及云服务,都是以ESP8266为目标设计。要云有什么用?一个服务器(云)可以把设备A的数据转发给地球另外一头的设备B,为远程数据传输提供通路。否则你只能在家里的局域网控制你的设备,无法远程控制,安信可是唯一一家免费开放云服务器给工厂客户的厂家。特性描述如下:0全裸数据,无复杂协议,不用跑HTTP协议,很多单片机承受不来!1支持UDP打洞P2P技术2支持转发机制3支持WIFI设备与设备通讯4支持WIFI设备与智能终端通讯5对服务器端搭建提供支持6服务器一台普通配置可挂5-10万设备,每台设备年费用在5分钱的成本7提供从APP云到ESP8266SDK整套技术支持。8目标:快速推广ESP8266的应用范围,和开发进程。9物联网的APP与设备之间的SDK应用,有共性,因此我们提供免费APP成熟框架安信可云有两种使用方式:1安信可的云服务代码运行在安信可免费给您提供的主机上。2安信可的云服务代码运行在您自己的主机上。云代码给授权工厂免费使用安信可云服务器内部机制与用法:一个事实:云服务器内部有10万个设备存在,因此内部设备总不能你想跟谁通讯,就跟谁通讯。安信可云内部,以几个设备为一个家庭,同一家庭的成员间可以互相通讯。但是这个家庭的组建必须有一个发起者,愿意听从这个发起者命令的,就被发起者加入这个家庭组。通常这个组建发起设备为手机,比如手机要控制几个WIFI开关设备,手机必须要让这几个WIFI设备加入到云服务器内部的以这个手机为家长的一个家庭组中。显然,每个手机上的APP第一步必须注册到服务器上建立一个空的家庭组账户!这样才有权利组织其他WIFI设备加入这个家庭组。当然,并不是所有手机都可以无条件随意在服务器上注册的,这样服务器会被恶意注册,直至内部资源耗尽,因此手机注册的时候,必须同时和一个在云服务器存在的设备绑定!然后用这部手机可以陆续把剩下的WIFI开关逐个上报道服务器,也就是告诉服务器,这个模块绑定在这个手机组建的家庭组内,并受这个手机控制。加入家庭组后,设备的权利:可以获取家庭组内的家庭成员,并与之通讯,可以自己删除退出这个家庭组。要想用安信可的云,必须得按照安信可的云协议去写手机端APP和模块端SDK(SoftwareDevelopmentKit软件开发工具包),就SDK端来说,云协议,代码最小占用2KROM以及256个字节以下的RAM即可完成。但是即便如此少的代码量,对新手来说,也是比较头痛的。但是手机APP上的云协议和模块上的云协议,全部写好了演示程序,并且公开源代码,这样对比协议文档,可以很轻松的理解整个工作过程。对于设备端当然有更简单的:1对于模块这头,用AT只用调用一个加入云端服务器指令,然后直接远程收发数据。简单吧!2若你不想用AT指令去开发,那可以用我们安信可内嵌了AI-CLOUD的8266SDK去开发。对于手机APP端:我们提基于安信可供安卓和IOS的源代码,演示整套通用IOT构架。比如WIFI插座,WIFI灯具,WIFI风扇,WIFI报警器。最好理解的方式是以一个实物来演示:因此以上全套程序,以及框架结构,都会在一个DEMO板子上演示。比如在我们的50元大测试板上可以演示,以及在本周发布的25元的小测试板。均完成了用单片机控制模块完成上述功能!并且在小黄板,用ESP8266(ESP8266的SDK)的最小系统板也可以完成(整个云平台展示APP)比如要设计一套商业化用WIFI插座或者WIFI灯具一(产品软件硬件部分):1你可以用ESP8266芯片或者模块直接完成整个硬件核心设计(因为ESP8266包含WIFI和32系统SOC(称为芯片级系统,也有称片上系统,意指它是一个产品,是一个有专用目标的集成电路,其中包含完整系统并有嵌入软件的全部内容))还有足够的引脚。(SDK方法)2你可以用ESP8266芯片或者模块+外置MCU(单片机)实现系统功能。(AT方法)方法一优势是:让系统成本体积最小,缺点(新手需要一个礼拜到半个月的时间去熟悉代码的研读)方法二的优势:客户只需要知道几条AT指令即可用外部单片机实现网络通讯!开发速度快。劣势:增加了外置CPU成本方法二因为采用外置MCU经过串口形式驱动WIFI模块,比如采用STM8S003系列单片机,需要增加1块钱左右成本。但是开发速度却非常快,因为避开了内部程序的研读,客户只用在STM8里实现自己的主要功能,额外获得了整机的可用资源和安全性!值得一提的是,很多产品并非新兴事物,这里的WIFI功能加入,只是为了产品的升级换代,比如说微波炉,或者空调行业已经是非常成熟的行业,硬件设计部分相当成熟,本身已经带有非常成熟的软件和硬件部分,因此WIFI的加入,只作为一个新增外设的出现,而非系统主控CPU,通常新增的这一部分和系统主控CPU用串口方式实现。难点:因为牵扯到网络应用,最好具备TCPUDP的常规基础知识,可能需要花几个小时去了解下,更重要的是可以用现成的模块根据教程手动测试下,做几个小实验,完成数据的收发。二(网络远程的数据传输实现)若没有远程控制和监测,那么产品的实用性将非常受限,因此完成异地数据传输和交换(也就是所谓的云服务)在80%的物联网系统中体现,这是难点!此前的非物联网行业的研发团队,很少接触这些,也没有配备这样的专业人员。但是这又是必须的若一切从零做起,没有一年半载的开发周期,和大笔的研发投入,不可能会做好产品,安信可很早意识到这点,因此花了比较多的人力去投入这方面的研发。并开放给客户们。接入云所要的协议代码,在AT指令类模块中已经包含,一条指令搞定,在SDK中提供API供调用三(终端APP的应用设计,包括IOS和安卓)WIFI的加入很大程度上用来和操作者进行便捷交互,并通过云服务器把操作数据和设备进行交换。除了功能上的实现,美观简洁的界面能给用户带来比较好的感官体验。这需要软硬件结合,并实现一些或简单或复杂的通讯协议,往往需要专业的开发团队才能完成,这方面的投入仅次于云平台的开发,安信可也为客户考虑到这些。并免费开放给大家使用!因此建议为了你能迅速的开发,我们设计了DEMO板(demonstration的缩写,中文意思是演示;就象是一个宣传片一样的东西。其他的应用软件也有demo版,大致意思就是让你体验一下软件的功能。)可以充分展示安信可给你的资源。购买或者申请信息可到安信可官网获取。另外我们的云服务是放出给工厂或者其他事业单位使用的,同时我们自己也提供给个人客户一些免费的云服务器,可让客户长期使用,除此之外想补充的是:对于国内一家技术力量雄厚,规模比较大的机智云,我们的软硬件也做出全面的支持。因此我们的演示套件,支持安信可的云,和机智云!开发步骤:1根据自己的产品以及研发能力选择硬件结构,是用模块还是芯片,是用SDK开发还是用AT外挂一个MCU开发,利弊已经描述。2云平台,您是想选用安信可的云平台,还是选用机智云,这在ESP8266中都支持。若选安信可的开放云平台,你是自己买服务器搭建,还是直接用安信可的云服务器。3每个客户的产品类型不同,但是我们提供的APP为物联网而生,都有一定的通用性,您拿到后只需修改一点就可以用到自己产品中,或者委托安信可APP开发团队帮您修改。整个过程最好在DEMO板上玩一遍,即可轻松掌握。演示平台:ESP8266T3全功能小体积有外置CPU版演示平台:ESP8266T1多功能版演示品台:ESP8266T4SDK内核开发版演示平台:ESP8266T2内核SDK测试板以上平台均可以完整演示物联网应用的全套设计开发过程,简单修改代码就可以完成整个物联网行业的各类应用。开发方式主要分:AT模式和SDK直接开发模式,AT模式需要外置一个CPU,SDK模式则可以只利用ESP8266内部的CPU完成整个产品的设计。因此ESP8266硬件部分代码有两种,客户任选。1外挂51单片机,驱动ESP8266ATWIFI模块2提供基于安信可云或者机智云的ESP8266SDK关于安信可的云协议,因为设计比较符合嵌入式工程师的思维习惯,加上详细的文档和模拟工具,客户可以在几个小时内了解到安信可云的整套代码流程。了解了代码实现,但是个人去实现估计得花费几天时间去写代码实现,因此我们已经把写好安信可云的API函数源代码实现部分都开源(在ESP8266SDK最新版本上实现),并且在AT固件中,也封装好了整个云代码的实现,您使用只需要调用一个AT指令,即可自动连接到安信可云平台或者机制云上!事实上你无需对ESP8266复杂的各种函数和流程做过多了解,即可用封装好的AT指令完成你所需要的所有WIFI功能,并且速度不慢,而且非常稳定。最重要的是开发速度很快!只需要一个WIFI模块外置一个STM8S003系列单片机,就增加1块钱左右的成本,即可获得高性能物联网核心板子!个人觉得多花的这一块钱比较值得,从稳定性和这一块钱带来的附加值上都是不错的选择。但是我们测试板上却用的是51单片机,因为STC的51单片机下载程序方便,并且编译环境,以及大家接触的比较多,因此用来做演示和理解代码非常有益。下面的测试用100行左右主要代码,RAM占用160个字节,ROM占用2K字节以内,即可实现灯具的调光调色,以及开关状态,温度信息的双向传输。(全球广域网控制)代码在51单片机用标准C实现。测试前提:1ESP8266T1测试板(支持安信可所有模块)25V电源和随机赠送的USB线3手机上的测试APP软件温馨提醒:安信可最新的1.1.10版本固件才支持网际跨地域控制!在2015年6月25日才向市场供货此版本模块以及开发板。以前的WIFI模块可以云升级后使用.板子出厂前WIFI模块已经是带有最新的AT的云固件,并且板子上的STC单片机也烧写了控制这个AT类型的ESP8266完成数据传输的程序。因此无需自己再烧写!并且拨码开关也在正常的位置,无需您再去动。你所要做的就是连好电源上电即可。出厂时,拨码开关的位置和上电前,(最好用随机赠送的5V供电)。1进入设置状态,让设备知道你家的上网账户和密码:上电前,按着MCU_P1.3这个按键不放,直到听到滴的一声响,并且蓝色的指示灯闪烁一下,方可松手!这个时候系统进入获取你家账户密码状态!就是所谓的Smartlink打开串口调试工具你可以在串口界面看到下面图3的东西。图3打开你的APP软件,打开你的手机WIFI,选中你家的路由器。2测试板子获取上网账户和密码图4点击上图的smartlinke进入图5的界面输入您的PASSWORD:就是上网密码,然后点confirm等待设备获取到你手机发来的上网账户和密码后,三色灯停止闪烁,代表获取成功!图5图6获取密码后可以得到上图信息模块自动连上安信可的服务器。3既然你要使用手机上的APP,那么你的手机也得登录服务器,服务器不是想登就登的,你得注册个账号和密码对吧?那下一步就是在APP上注册一个账户名和密码。打开手机APP图7刚开始你是没有用户名和密码的,那点“注册”按钮!图8随便输入你的名字,和设置一个密码,另外手机号和邮箱最好填写真实的,因为以后找回密码是需要的。为了避免恶意注册,你注册的时候必须绑定一个真实的设备ID和设备密码,这里的设备ID