请教大佬们下面这段代码那里出了问题?
本帖最后由 15892617059 于 2021-8-10 09:27 编辑#define BLINKER_WIFI
#define BLINKER_MIOT_MULTI_OUTLET
#include <Blinker.h>
char auth[] = "1111111111111";
char ssid[] = "fandaye";
char pswd[] = "12345678";
#define k1 D0//这里宏申明了为什么验证时就是这老出问题
#define k2 D1
bool oState = { false };
void miotPowerState(const String & state, uint8_t num)
{
BLINKER_LOG("need set outlet: ", num, ", power state: ", state);
if (state == BLINKER_CMD_ON) {
if (num==0){
digitalWrite(LED_BUILTIN, HIGH);
}
else if(num==1){
digitalWrite(k1,HIGH)
}
else if(num==2){
digitalWrite(k2,HIGH)
}
BlinkerMIOT.powerState("on", num);
BlinkerMIOT.print();
oState = true;
}
else if (state == BLINKER_CMD_OFF) {
BlinkerMIOT.powerState("off", num);
BlinkerMIOT.print();
oState = false;
if (num == 0)
{
for (uint8_t o_num = 0; o_num < 5; o_num++)
{
oState = false;
}
digitalWrite(LED_BUILTIN, LOW);
}
else if(num==1){
digitalWrite(k1,LOW)
}
else if(num==2){
digitalWrite(k2,LOW)
}
}
}
void miotQuery(int32_t queryCode, uint8_t num)
{
BLINKER_LOG("MIOT Query outlet: ", num,", codes: ", queryCode);
switch (queryCode)
{
case BLINKER_CMD_QUERY_ALL_NUMBER :
BLINKER_LOG("MIOT Query All");
BlinkerMIOT.powerState(oState ? "on" : "off", num);
BlinkerMIOT.print();
break;
case BLINKER_CMD_QUERY_POWERSTATE_NUMBER :
BLINKER_LOG("MIOT Query Power State");
BlinkerMIOT.powerState(oState ? "on" : "off", num);
BlinkerMIOT.print();
break;
default :
BlinkerMIOT.powerState(oState ? "on" : "off", num);
BlinkerMIOT.print();
break;
}
}
void dataRead(const String & data)
{
BLINKER_LOG("Blinker readString: ", data);
Blinker.vibrate();
uint32_t BlinkerTime = millis();
Blinker.print("millis", BlinkerTime);
}
void setup()
{
Serial.begin(115200);
BLINKER_DEBUG.stream(Serial);
pinMode(LED_BUILTIN, OUTPUT);
digitalWrite(LED_BUILTIN, LOW);
Blinker.begin(auth, ssid, pswd);
Blinker.attachData(dataRead);
BlinkerMIOT.attachPowerState(miotPowerState);
BlinkerMIOT.attachQuery(miotQuery);
}
void loop()
{
Blinker.run();
}
用的什么开发板!提示是没有D0引脚!!! 提示意思,你选择的开发板没有定义D0,你可以直接换成GPIO编号 换过了的,一样的。 ahua7336 发表于 2021-8-10 08:15
用的什么开发板!提示是没有D0引脚!!!
用的是NodeMcu,是有D0引脚的呢 有的开发板是图上这
15892617059 发表于 2021-8-10 09:20
换过了的,一样的。
这是个8266基本使用问题,和点灯无关
你换成了啥? 换成8266的引脚编号,没有D的,不是板子上标的那些哦。
建议看看8266官方文档和模块手册,确定引脚编号
你写Dx的前提是你在开发板管理器中选择的开发板型号,定义过Dx,否则就不能用Dx的写法。
15892617059 发表于 2021-8-10 09:21
用的是NodeMcu,是有D0引脚的呢
把D0换成16,把D1换成5. 你少了很多引号好 加上就可以了我编译正常 coloz 发表于 2021-8-10 10:05
这是个8266基本使用问题,和点灯无关
你换成了啥? 换成8266的引脚编号,没有D的,不是板子上标的那些哦。 ...
按照图上对应的做过还是不行的
页:
[1]
2