赞
踩
使用esp8266制作自己的小爱同学小台灯
9V电池、
台灯、
ESP8266、
点灯科技app
ESP8266接入小爱同学点亮台灯,我们使用的是局域网连接共同WiFi,esp8266连接mqtt服务,并订阅mqtt的主题,相当于设置一个状态位,当我们手机小爱语音发出指令,相当于mqtt的消息推送,由于esp8266订阅了主题,就可以收到小爱同学推送的指令,状态位发生改变,代码中对状态位进行判断,从而达到开关灯的效果。
由于我们本地搭载的mqtt服务器和apk个人的无法接入小爱同学,因此我们采用点灯科技app中间作为服务器进行mqtt通信。
点灯科技app资源:在资源文件夹内。
代码我就不一一讲解了,如果有疑问可以私信我。
手机安装好app后,接入设备,然后选取mqtt,生成密钥,复制到源码中
然后ESP8266订阅该话题
然后ESP8266订阅该话题
连接其他平台,然后添加点灯科技,如果我们esp8266正常接入时,我们扫描就可以扫描出该设备。就可以进行语言控制了。
源码
-
- 源码
- #define BLINKER_PRINT Serial
- #define BLINKER_WIFI
- #define BLINKER_MIOT_LIGHT
- #include <Blinker.h>
-
- int LIGHT = D1;
- int LIGHT2 = D2;
- char auth[] = "37bd0561afa4";
- char ssid[] = "DPS2023";
- char pswd[] = "thb111111";
-
- // 新建组件对象
- BlinkerButton Button1("led");//你的按钮名称
- BlinkerNumber Number1("num-abc");
-
- int counter = 0;
-
- void miotPowerState(const String & state)//用户自定义电源类操作的回调函数
- {
- BLINKER_LOG("need set power state: ", state);
-
- if (state == BLINKER_CMD_ON) {
- digitalWrite(LIGHT, LOW);
- BlinkerMIOT.powerState("on");
- BlinkerMIOT.print();
- }
- else if (state == BLINKER_CMD_OFF) {
- digitalWrite(LIGHT, HIGH);
- BlinkerMIOT.powerState("off");
- BlinkerMIOT.print();
- }
- }
- // 按下按键即会执行该函数
- void button1_callback(const String & state) {
- BLINKER_LOG("get button state: ", state);
- digitalWrite(LIGHT, !digitalRead(LIGHT));
- }
-
- // 如果未绑定的组件被触发,则会执行其中内容
- void dataRead(const String & data)
- {
- BLINKER_LOG("Blinker readString: ", data);
- counter++;
- Number1.print(counter);
- }
-
- void setup() {
- // 初始化串口
- Serial.begin(115200);
-
-
- #if defined(BLINKER_PRINT)//这里不一样
- BLINKER_DEBUG.stream(BLINKER_PRINT);
- #endif
-
- // 初始化有LED的IO
- pinMode(LIGHT, OUTPUT);
- digitalWrite(LIGHT, HIGH);
- pinMode(LIGHT2, OUTPUT);
- digitalWrite(LIGHT2, HIGH);
- // 初始化blinker
- Blinker.begin(auth, ssid, pswd);
- Blinker.attachData(dataRead);
- Button1.attach(button1_callback);
- BlinkerMIOT.attachPowerState(miotPowerState);//小爱用户自定义电源类操作的回调函数:
- }
-
- void loop() {
- Blinker.run();
- }
如果你有想法开发一些新的功能,可以加入我们,我们一起玩出新的花样,无论你是玩51、32、freerrtos、ucoss、树莓派、深度学习、web开发、小程序、esp8266等等都有简单涉略。但是比较擅长的还是驱动板控制和操作系统,我们都可以进行讨论和一起学习。欢迎你的加入,我们一起在技术的领域深耕和学习!!!!!私信我,把你的困难告诉我,我们一起去解决!!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。