esp8266接入天猫精灵教程,附开源app控制

  1. 3 周前
    2
    上周,由 youngda 重新编辑

    第一步 下载程序到esp8266

    下载地址: 点击下载

    本demo 是利用arduino IDE开发,关于arduino IDE 的ESP8266环境配置可参考:环境配置: 点击跳转

    程序下载好,需要修改的信息有:

    需要修改的信息有WIF名称,WIFI密码,用户私钥UID,设备主题topic。

    //********************需要修改的部分*******************//
    
    //WIFI名称,区分大小写,不要写错
    #define DEFAULT_STASSID  "newhtc"
    //WIFI密码
    #define DEFAULT_STAPSW   "air123456"
    //用户私钥,可在控制台获取,修改为自己的UID
    #define UID  "4d9ec352e0376f2110a0c601a2857xxx"
    //主题名字,可在控制台新建
    #define TOPIC  "light002"
    //单片机LED引脚值
    const int LED_Pin = D2;
    
    //**************************************************//

    用户私钥可以巴法云控制台 点击跳转 获取,注册绑定邮箱即可在巴法创客云控制台获取。网址 http://www.cloud.bemfa.com/tcpfast.php

    关于主题topic:主题可在控制台 点击跳转 新建,字母+数字自定义组合即可。

    现在支持三种类型的设备,灯泡、插座、风扇。

    关于设备类型,由末尾三个数字判断,
    当主题名字后三位是001时为插座设备。
    当主题名字后三位是002时为灯泡设备。
    当主题名字后三位是003时为风扇设备。

    在本demo中主题为light002,故为灯泡设备。

    修改好,下载到ESP8266即可。

    测试程序:控制台推送on是开灯。推送off关灯,可打开串口调试助手查看调试。

    第二步 绑定天猫精灵

    打开天猫精灵app,
    点击发现技能:

    -image-

    在技能中心搜索:巴法云。找到巴法云技能,点击“巴法云”进入技能,绑定账号,登陆上一步注册的巴法云账号。

    登陆成功后,上一步骤新建的设备就自动同步到天猫精灵了,现在可以使用天猫精灵来控制了。

    设备可在<天猫精灵app–>我家>中查看。

    第三步 (附)开源app控制

    原理:同样通过TCP 长连接,连接到服务器,当按下按钮,就向服务器该主题推送个消息,ESP8266就可以收到该消息了。

    简介:Google App Inventor是一个完全在线开发的Android编程环境,抛弃复杂的程式代码而使用积木式的堆叠法来完成您的Android程式。 而且这款编程软件不一定非要是专业的研发人员,甚至根本不需要掌握任何的程序编制知识。因为这款软件已经事先将软件的代码全部编写完毕,用户只需要根据自己的需求向其中添加服务选项即可。也就是我们所要做的只是写简单的代码拼装程序。

    在appInventor [点击跳转 ]广州站创建账号,并登陆。

    本操作只提供一个app的demo,界面过于丑陋,大家可自由发挥更改界面。

    demo 下载[点击下载 ]

    顶部导航栏,依次点击(项目-->导入项目aia),选择上一步骤下载的aia文件导入即可。点击导入的项目,即可看到控制面板,面板主要分为在组建设计和逻辑设计,用户可在右上角进行模式切换。

    -image-

    (组建设计)面板可以向屏幕添加组建以进行二次开发。(逻辑面板)则进行相关逻辑编写。

    -image-

    导入aia文件后,如果只是简单使用,只需要修改两个地方,一个是主题名字,一个是UID,均需开发者置换成自己的topic(主题名字)和UID(用户私钥),均可在创客云控制台获取[点击跳转](http://www.cloud.bemfa.com/tcpfast.php)。

    此处的主题topic应该和ESP8266程序里面设定的主题修改为一样,不然会收不到消息。UID修改为自己的私钥。

    -image-

    -image-

    控制逻辑

    当按钮'打开'被点击,发送on,ESP8266即可收到on消息

    -image-

    具体发送的消息,开发者可自定义,例程中只是发送简单的字符串,开发者也可发送json之类的,例如

    cmd=2&uid=7d54f85af42976ee3c2693e6xxxxxxxx&topic=light002&msg={"r":10,"g":200,"b":255}\r\n

    不过在ESP8266端要对json消息体进行解析。

    如果想控制家里的灯具,加个继电器即可,通过引脚输出高低电平控制继电器的开和关,从而达到控制220v交流电的效果。继电器需要用3.3V继电器。

    -image-

    -image-

或者 注册后参与话题.