Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arduino ESP-12无线模块';s GPIO引脚在打开时为高,但应为低_Arduino_Gpio_Esp8266 - Fatal编程技术网

Arduino ESP-12无线模块';s GPIO引脚在打开时为高,但应为低

Arduino ESP-12无线模块';s GPIO引脚在打开时为高,但应为低,arduino,gpio,esp8266,Arduino,Gpio,Esp8266,我需要帮助。我正在使用ESP-12无线模块来自动控制我房间的灯光。但当我打开ESP-12 WiFi模块时,我为继电器输入设置的GPIO2引脚将变高(默认情况下应为低),然后冻结。但如果我在打开ESP后连接GPIO引脚,则其工作正常。我怎样才能避免这个问题。是连接问题还是与代码有关 这是我的电路图 这是我的Arduino代码: /* *此草图演示如何设置一个简单的类似HTTP的服务器。 *服务器将根据请求设置GPIO pin * http://server_ip/gpio/0 将GPIO2设

我需要帮助。我正在使用ESP-12无线模块来自动控制我房间的灯光。但当我打开ESP-12 WiFi模块时,我为继电器输入设置的GPIO2引脚将变高(默认情况下应为低),然后冻结。但如果我在打开ESP后连接GPIO引脚,则其工作正常。我怎样才能避免这个问题。是连接问题还是与代码有关

这是我的电路图

这是我的Arduino代码:

/*
*此草图演示如何设置一个简单的类似HTTP的服务器。
*服务器将根据请求设置GPIO pin
*    http://server_ip/gpio/0 将GPIO2设置为低,
*    http://server_ip/gpio/1 将GPIO2设置为高
*服务器ip是ESP8266模块的ip地址,将
*连接模块时打印为串行。
*/
#包括
const char*ssid=“myssid”;
const char*password=“mypassword”;
ip地址ip(192、168、1、10);//其中xx是所需的IP地址
IP地址网关(192、168、1254);//设置网关以匹配您的网络
IP地址子网(255、255、255、255);//设置子网掩码以匹配您的网络
//创建服务器的实例
//指定要侦听的端口作为参数
WiFiServer服务器(80);
int状态=低;
常数int pin=2;
无效设置(){
序列号开始(115200);
延迟(100);
//制备GPIO2
引脚模式(引脚,输出);
引脚模式(引脚,低电平);
//连接到WiFi网络
Serial.println();
Serial.println();
串行打印(“连接到”);
序列号println(ssid);
WiFi.config(ip、网关、子网);
WiFi.begin(ssid,密码);
while(WiFi.status()!=WL_已连接){
延迟(500);
连续打印(“.”);
}
Serial.println(“”);
Serial.println(“WiFi连接”);
//启动服务器
server.begin();
Serial.println(“服务器已启动”);
//打印IP地址
Serial.println(WiFi.localIP());
}
void循环(){
延迟(3000);
//检查客户端是否已连接
WiFiClient=server.available();
如果(!客户端){
返回;
}
//等待客户端发送一些数据
Serial.println(“新客户”);
而(!client.available()){
延迟(1);
}
//阅读请求的第一行
String req=client.readStringUntil(“$”);
串行打印LN(req);
client.flush();
//符合要求
如果(请求索引(“状态”)!=-1 | |请求索引(“状态”)!=-1)
Serial.println(“开关为:“+状态”);
else if(请求索引of(“on”)!=-1 | |请求索引of(“on”)!=-1)
状态=高;
否则如果(请求索引(“关闭”)!=-1 | |请求索引(“关闭”)!=-1)
状态=低;
否则{
Serial.println(“无效请求”);
client.stop();
返回;
}
//根据请求设置GPIO2
数字写入(pin、状态);
//准备答复
String response=“HTTP/1.1 200确定\r\n内容类型:text/html\r\n\r\n\r\n\r\n开关现在打开”;
响应+=状态;
响应+=“\n”;
//将响应发送到客户端
客户。打印(响应);
client.flush();
延迟(1);
Serial.println(“客户端断开连接”+状态);
//客户端实际上将断开连接
//当函数返回且“客户端”对象被终止时
}

感谢@gre\u gor指出这一点

pinMode()
可以找到文档

试试这个:

// prepare GPIO2 
pinMode(pin, OUTPUT); 
digitalWrite(pin, LOW);

感谢@gre_gor指出了这一点

pinMode()
可以找到文档

试试这个:

// prepare GPIO2 
pinMode(pin, OUTPUT); 
digitalWrite(pin, LOW);

似乎您混淆了
pinMode
digitalWrite
。很明显,您正在设置中试图将pin设置为高。@gre_gor完全正确,您似乎混淆了
pinMode
digitalWrite
。很明显,你在设置中试图将pin设置为高。@gre_gor完全正确