请教一下esp32的引脚电平输入输出不正常是为什么?

代码如下:

void setup()
{
  pinMode(2,OUTPUT);/*将2号针脚设为输出模式*/
  pinMode(34,INPUT);/*将34号针脚设置为输入模式*/
  pinMode(33,OUTPUT);/*将33号针脚设为输出模式*/
}
void loop()/*无限循环*/
{
  if(digitalRead(34))/*如果34号针脚是高电平则执行内含代码*/
  {
    delay(1000);/*延时1000ms*/
    digitalWrite(2,1);/*2号针脚拉高电平,点亮led灯*/
    digitalWrite(33,0);/*拉高33号引脚电平以导通继电器电路*/
    while(digitalRead(34));/*34号针脚高电平则无限循环*/
    digitalWrite(2,0);/*2号针脚拉低电平,关闭led灯*/
    digitalWrite(33,0);/*拉低33号引脚电平以断开继电器电路*/
  }
}

原本是想把esp32的34号针脚接电话线,33号针脚接继电器,门铃按响后电话线通电拉高34号引脚电平,延时一秒,2号针脚的led亮,同时继电器导通开门,门铃断电后led熄灭,同时继电器恢复断开状态,可是代码写入后,34号针脚插了个杜邦线,什么都没接,led灯就开始一秒闪一下,哪怕什么都不插,用手指按上去,它也会一秒闪一下,但凡金属物品接触到34号引脚,它都会一秒闪一下,有时候还不定时闪一下,这是为什么?另外33号针脚应该和2号针脚的led灯同步高低电平变化,但是实际上不管led亮不亮、34号针脚有没有输入高电平,33号针脚的继电器都没有反应,这又是为什么?求指导。

你 13行和16行代码一样,都是 33输出 0 ,所以 33 继电器没反应。
34 脚悬空,状态不稳定,手持金属物体触碰该脚,人体静电几周围220 50Hz交流电场会干扰进来,使 34 脚电平状态不定引起的一系列反应。可以将该脚初始化成上拉或下拉,也可以外接上拉或下拉电阻