esp8266对接天猫精灵(11)终端编程

一、编写lua脚本获取控制信息(8266)

前边也说过,这个脚本要实现的步骤可以分三步,第一步是联网,第二步是使用http get到数据,然后控制要控制的设备。我们的lua脚本分为两个,一个是init.lua,另外一个是httpclick.lua,这个默认上电执行的是init.lua,我们在init.lua中连接网路,在httpclick.lua中获取我们在服务器上保存的信息,然后控制响应的设备。Nodemcu所有固件的API可以从官方wiki得到https://nodemcu.readthedocs.io/en/master/en/modules/sjson/。

1、init.lua
esp8266对接天猫精灵(11)终端编程_第1张图片

标号1是配置wifi,填上你自己的wifi名和密码就行,2是连接到ssid所示的wifi,3是一个1s的定时,4是判断有没有获得IP如果获得了ip就走5打印ip地址,然后调用httpclick.lua的程序,否则就打印IP还没有分配,等待连接。

2、httpclick.lua
esp8266对接天猫精灵(11)终端编程_第2张图片

标号1为一个1秒定时,每隔1s从retrundata.php中获取一次数据,同时把上次灯的状态发送到这个retrundata.php中存起来,等待查询。3是从str所指的url中get数据,4为把得到的sjson数据解码,5所实现的功能就是判断当前的id是否正确,如果正确就根据接收到的灯的动作设置灯,如打开关闭,设置灯的亮度等,然后保存当前灯的状态。

二、服务器端接收保存和读取文件

其实上边的已经完成了硬件篇所有的功能,这里还要说一下这个,是因为这部分也很重要,我们常用的http协议是不保存数据的,也就是说一次通信只是用来传输数据,无论是post还是get都会传送一次数据得到一次数据,我们为了让天猫精灵能正确的查询状态,正确控制设备,我们需要把协议解析出来的状态和设备返回的状态保存到服务器。主要通过下面这些文件来完成

1、getcontrol.php

这个文件是天猫精灵把解析到的数据,ID,action和value写入到Lamp.txt文件中,供硬件设备读取。

esp8266对接天猫精灵(11)终端编程_第3张图片

2、returndata.php

这个文件主要是与硬件设备进行沟通,实现两个功能,第一个功能接收硬件设备发送上来的设备消息然后写入到Lampstatue.txt中,供天猫平台的读取,另外一个就是读取Lamp.txt中的信息,用来控制自身的设备,如灯等。

esp8266对接天猫精灵(11)终端编程_第4张图片

3、returnstatue.php

这个是天猫精灵用于读取硬件状态的接口文件,主要是用来读取Lampstatue.txt的数据来返回当前设备的状态

esp8266对接天猫精灵(11)终端编程_第5张图片

所以的文件都已经解释完了,这种读写的方式在真正的应用中并不可行,是需要数据库的支持的,所以小狂在这只是为了测试功能,做的并没有那么规范。只是验证了一个流程,抛个砖,希望引出来更多的玉。

你可能感兴趣的:(天猫精灵)