原理:esp8266连接mqtt服务并订阅主题,通过小爱语音发出指令,相当于mqtt的消息推送,从而进行控制esp8266 。
1. 巴法创建MQTT设备云主题
在控制台新建mqtt设备云主题,字母+数字自定义组合即可。
现在支持的设备有:灯泡、插座、风扇、传感器设备。设备类型由创建的主题名称后三位决定:
当主题名字后三位是001时为插座设备。
当主题名字后三位是002时为灯泡设备。
当主题名字后三位是003时为风扇设备。
当主题名字后三位是004时为传感器设备。
当主题名字后三位是005时为空调设备。
2. ESP8266 模块代码编写与烧录
在官方代码的基础上加入了自动配网,当wifi环境改变后,可以使用手机连接esp8266热点进行网络配置。
/*
* 智能语言控制控制,支持同时天猫、小爱、小度、google Assistent控制
* 也同时支持web控制、小程序控制、app控制,定时控制等
* QQ群:566565915
* 项目示例:通过发送on或off控制开关
* 官网:bemfa.com
*/
#include <ESP8266WiFi.h> //默认,加载WIFI头文件
#include <DNSServer.h>
#include <ESP8266WebServer.h>
#include <WiFiManager.h>
#include <Ticker.h>
//#include <PubSubClient.h>
#include "PubSubClient.h" //默认,加载MQTT库文件
WiFiClient espClient; //wifi客户端模式
PubSubClient client(espClient);
Ticker ticker; //定时器对象
//********************需要修改的部分*******************//
#define ID_MQTT "888888888888888888888888" //用户私钥,控制台获取
const char* topic = "light002"; //主题名字,与巴法云控制台的主题一致
const int B_led = D1;