WiFi工作时,您可以使用ESP32的所有GPIO引脚吗?

卢卡斯(LukasKaščiukevičius)

我有一个奇怪的现象,当我添加WiFi库和所有设置时,每3个传感器中就有2个停止工作。当我删除WiFi代码时,它的工作方式就像以前一样。

我有一个esp32 devkit v1开发板,并连接了3个传感器,分别是光敏电阻(ky-018),dht-11和电容性土壤湿度传感器。

  • dht-11已连接到D14(工厂);
  • 连接到D13的光敏电阻(ky-018)(无效);
  • 电容性土壤湿度传感器连接到D15(无效)。

我尝试过换针;没有帮助。

Esp-32开发套件v1

这是代码:

#include "DHT.h"
#include <WiFi.h>

#define DHTPIN 14       // Digital pin connected to the DHT sensor
#define DHTTYPE DHT11   // DHT 11

const char* ssid = "Cgates_E031F1"; // ESP32 and ESP8266 uses 2.4GHZ wifi only
const char* password = "60E541C32F";

DHT dht(DHTPIN, DHTTYPE);
const byte lightPin = 13;
int lightReading;
int lightReadingpercent=0;
const int RELAY_PIN = 15;    // the Arduino pin, which connects to the IN pin of relay
const int AirValue = 4095;   //you need to replace this value with Value_1
const int WaterValue = 2200; //you need to replace this value with Value_2
const int SensorPin = 15;    // Soil moisture

int soilMoistureValue = 0;
int soilmoisturepercent=0;
const int Lightvalue = 0;
const int Darkvalue = 4095;
 

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);

  // begin Wifi connect
  Serial.print("Connecting to ");
  Serial.println(ssid);
  WiFi.mode(WIFI_STA);
  WiFi.disconnect();
  delay(2000);
  WiFi.begin(ssid, password);
  
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
 
  Serial.println("");
  Serial.println("WiFi connected");  
  Serial.println("IP address: ");
  Serial.println(WiFi.localIP());
  //end Wifi connect
 
  pinMode(RELAY_PIN, OUTPUT);//relay
  
  Serial.println(F("DHTxx test!")); //dht
  ; 
  dht.begin();
}

void loop() {
  // put your main code here, to run repeatedly:

  lightReading = analogRead(lightPin); //0-4095 12bit -- esp8266 10bit 0-1023 -- arduino 8bit 0-254
 
  Serial.print("Light reading = ");
  
  lightReadingpercent = map(lightReading, Darkvalue, Lightvalue,  0, 100 );
  Serial.print(lightReadingpercent);
  Serial.println(" %");
  Serial.println();
  
  delay(500);

  soilMoistureValue = analogRead(SensorPin);  //put Sensor insert into soil 

  soilmoisturepercent = map(soilMoistureValue, AirValue, WaterValue, 0, 100);

  if (soilmoisturepercent > 100) {
    Serial.println("Soil moisture ");
    Serial.println("100 %");
    delay(500);
  } else if (soilmoisturepercent <0) {
    Serial.println("Soil moisture ");
    Serial.println("0 %");
    delay(500);
  } else if (soilmoisturepercent >=0 && soilmoisturepercent <= 100) {
    Serial.println("Soil moisture "); //go to next line
    Serial.print(soilmoisturepercent);
    Serial.println("%");
    delay(500); // soil end
  }
 
  // Wait a few seconds between measurements.
  delay(2000);

  // Reading temperature or humidity takes about 250 milliseconds!
  // Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)
  float h = dht.readHumidity();
  // Read temperature as Celsius (the default)
  float t = dht.readTemperature();
  // Read temperature as Fahrenheit (isFahrenheit = true)
  float f = dht.readTemperature(true);

  // Check if any reads failed and exit early (to try again).
  if (isnan(h) || isnan(t) || isnan(f)) {
    Serial.println(F("Failed to read from DHT sensor!"));
    return;
  }

  // Compute heat index in Fahrenheit (the default)
  float hif = dht.computeHeatIndex(f, h);
  // Compute heat index in Celsius (isFahreheit = false)
  float hic = dht.computeHeatIndex(t, h, false);

  Serial.print(F(" Humidity: "));
  Serial.print(h);
  Serial.print(F("%  Temperature: "));
  Serial.print(t);
  Serial.print(F("C "));
  Serial.print(f);
  Serial.print(F("F  Heat index: "));
  Serial.print(hic);
  Serial.print(F("C "));
  Serial.print(hif);
  Serial.println(F("F"));

  delay(500); //wait 0.5seconds
}
奥克都

根据关于GitHub上此问题的评论,问题可能是

使用WiFi时,不能使用ADC2引脚。另一方面,即使启用了WiFi,也可以使用ADC1引脚。

这可能是因为ADC2被运行在具有ADC2外设的内核上的WiFi固件所使用。

尽管这不能解释为什么GPIO14对您有用,但是仍然可以尝试仅使用使用ADC1的GPIO引脚,看看它是否对您有用。

而且,WiFi可以吸收大量电流。确保电源供电正常,以免电压下降。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在ESP32上反转RTC GPIO

来自分类Dev

ESP32交替使用BLE和WiFi

来自分类Dev

您可以使用自动映射器对所有非映射属性执行特定操作吗?

来自分类Dev

您可以使用重写规则将所有子文件夹子域设置为吗?

来自分类Dev

我可以使用具有相同引脚排列的其他BIOS芯片吗?

来自分类Dev

64位内核上的32位应用程序可以使用所有内存吗?

来自分类Dev

您可以使用单独的无线网桥桥接基本的网状 wifi(例如 google wifi)系统吗?

来自分类Dev

乐鑫Esp32 Wifi驱动程序SoftAP + Sta模式...设置配置界面吗?

来自分类Dev

乐鑫Esp32 Wifi驱动程序SoftAP + Sta模式...设置配置界面吗?

来自分类Dev

可以使用rsh给出所有命令吗?

来自分类Dev

使用Impala访问Hbase表时,所有SQL操作都可以工作吗?

来自分类Dev

您可以使用私有API来挂接iOS中的系统函数调用吗?

来自分类Dev

您可以使用LiveCharts显示带有x和y值对的线系列吗?

来自分类Dev

您可以使用C#中没有字段的属性吗?

来自分类Dev

您可以使用没有react-dom的react-core吗

来自分类Dev

使用esp32从Wifi接入点模式切换到站点模式

来自分类Dev

模拟器可以具有唯一的设备ID吗?您可以使用该ID吗?

来自分类Dev

在STM32F103上初始化之前可以设置GPIO引脚状态吗?

来自分类Dev

当您可以使用“ instanceof”时,“ Buffer.isBuffer”有什么用?

来自分类Dev

您可以使用VBA返回磁盘的Volume GUID吗?

来自分类Dev

您可以使用参数执行类似RoutePrefix的操作吗?

来自分类Dev

您可以使用多个Google Site Verification标签吗?

来自分类Dev

您可以使用JQueryMobile创建嵌套的弹出窗口吗

来自分类Dev

您可以使用PySphere来宾操作系统吗?

来自分类Dev

您可以使用#define更改#include吗?

来自分类Dev

您可以使用Davmail访问Exchange存档吗?

来自分类Dev

您可以使用icmp定位特定端口吗?

来自分类Dev

Java:您可以使用变量进行转换吗?

来自分类Dev

您可以使用IAP登录到Firebase吗?

Related 相关文章

  1. 1

    在ESP32上反转RTC GPIO

  2. 2

    ESP32交替使用BLE和WiFi

  3. 3

    您可以使用自动映射器对所有非映射属性执行特定操作吗?

  4. 4

    您可以使用重写规则将所有子文件夹子域设置为吗?

  5. 5

    我可以使用具有相同引脚排列的其他BIOS芯片吗?

  6. 6

    64位内核上的32位应用程序可以使用所有内存吗?

  7. 7

    您可以使用单独的无线网桥桥接基本的网状 wifi(例如 google wifi)系统吗?

  8. 8

    乐鑫Esp32 Wifi驱动程序SoftAP + Sta模式...设置配置界面吗?

  9. 9

    乐鑫Esp32 Wifi驱动程序SoftAP + Sta模式...设置配置界面吗?

  10. 10

    可以使用rsh给出所有命令吗?

  11. 11

    使用Impala访问Hbase表时,所有SQL操作都可以工作吗?

  12. 12

    您可以使用私有API来挂接iOS中的系统函数调用吗?

  13. 13

    您可以使用LiveCharts显示带有x和y值对的线系列吗?

  14. 14

    您可以使用C#中没有字段的属性吗?

  15. 15

    您可以使用没有react-dom的react-core吗

  16. 16

    使用esp32从Wifi接入点模式切换到站点模式

  17. 17

    模拟器可以具有唯一的设备ID吗?您可以使用该ID吗?

  18. 18

    在STM32F103上初始化之前可以设置GPIO引脚状态吗?

  19. 19

    当您可以使用“ instanceof”时,“ Buffer.isBuffer”有什么用?

  20. 20

    您可以使用VBA返回磁盘的Volume GUID吗?

  21. 21

    您可以使用参数执行类似RoutePrefix的操作吗?

  22. 22

    您可以使用多个Google Site Verification标签吗?

  23. 23

    您可以使用JQueryMobile创建嵌套的弹出窗口吗

  24. 24

    您可以使用PySphere来宾操作系统吗?

  25. 25

    您可以使用#define更改#include吗?

  26. 26

    您可以使用Davmail访问Exchange存档吗?

  27. 27

    您可以使用icmp定位特定端口吗?

  28. 28

    Java:您可以使用变量进行转换吗?

  29. 29

    您可以使用IAP登录到Firebase吗?

热门标签

归档