esp-01s接入天猫精灵与relay继电器控制电灯
学习arduino已经两个多月了,第一次动手做了一个天猫精灵控制的台灯,并且记录和分享一下学习的过程,做的不好,有什么不对的地方还请多多指正
这两个模块加起来才10块钱,也不是很贵
首先需要使用esp8266和blinker的库文件,然后在arduino上选择正确的开发板
Arduino库文件
ESP8266
blinker
下载解压到C:\Program Files (x86)\Arduino\libraries这个文件夹里面
库文件解压后,选择对应的开发板,像这样
开发板选择后就可以编译程序上传了
如果报错可能是以下原因
1,开发板选择错误;重新检查一下板子对不对
2,库文件的原因;建议重新看一下,解压到Arduino\libraries这个文件夹里面
3,库文件重复,下载多个库文件安装了;还是去Arduino\libraries这个文件夹里,把多余的对应多余的库文件删除
以上都是我曾经遇到过的问题
效果图
这是我接完线安装在台灯线上的效果,虽然不好看,但是挺好用的
接线
这个普通的继电器模块,与relay原理一样,接线是公共端和常闭
这里有一些继电器和esp-01s的资料分享给你们
继电器/s/1H0HfQlp9C5gi6IOaPC4hYA
提取码:1234
esp-01s
/s/1_U_t_YPj0jjgfFz9vTZtCw
提取码:r0do
esp-01s接入天猫精灵有很多开源的代码可以去接入,不过需要定义继电器才可以使用
接入天猫精灵方法
代码如下
接入blinker,添加设备一定要选择阿里云.
#define BLINKER_PRINT Serial#define BLINKER_WIFI#define BLINKER_ALIGENIE_OUTLET#include <Blinker.h>#define relay1 0char auth[] = "2ccc8abc0179";//钥匙char ssid[] = "c04 111 2.4";//WiFi名称char pswd[] = "1234567890";//WiFi密码bool oState = false;void aligeniePowerState(const String & state){BLINKER_LOG("need set power state: ", state);if (state == BLINKER_CMD_ON) {digitalWrite(relay1, LOW);BlinkerAliGenie.powerState("on");BlinkerAliGenie.print();oState = true;}else if (state == BLINKER_CMD_OFF) {digitalWrite(relay1, HIGH);BlinkerAliGenie.powerState("off");BlinkerAliGenie.print();oState = false;}}void aligenieQuery(int32_t queryCode){BLINKER_LOG("AliGenie Query codes: ", queryCode);switch (queryCode){case BLINKER_CMD_QUERY_ALL_NUMBER :BLINKER_LOG("AliGenie Query All");BlinkerAliGenie.powerState(oState ? "on" : "off");BlinkerAliGenie.print();break;case BLINKER_CMD_QUERY_POWERSTATE_NUMBER :BLINKER_LOG("AliGenie Query Power State");BlinkerAliGenie.powerState(oState ? "on" : "off");BlinkerAliGenie.print();break;default :BlinkerAliGenie.powerState(oState ? "on" : "off");BlinkerAliGenie.print();break;}}void dataRead(const String & data){BLINKER_LOG("Blinker readString: ", data);Blinker.vibrate();uint32_t BlinkerTime = millis();Blinker.print(BlinkerTime);Blinker.print("millis", BlinkerTime);}void setup(){Serial.begin(115200);#if defined(BLINKER_PRINT)BLINKER_DEBUG.stream(BLINKER_PRINT);#endifpinMode(relay1, OUTPUT);digitalWrite(relay1, HIGH);Blinker.begin(auth, ssid, pswd);Blinker.attachData(dataRead);BlinkerAliGenie.attachPowerState(aligeniePowerState);BlinkerAliGenie.attachQuery(aligenieQuery);}void loop(){Blinker.run();}
更多详细
链接: 点灯科技