Arduino ESP8266库函数说明

Posted perseverance52

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Arduino ESP8266库函数说明相关的知识,希望对你有一定的参考价值。

Arduino ESP8266库函数说明

相关资源下载,请参考《Arduino IDE平台ESP8266开发板固件包3.0版本

库函数解释以官方原文为准,目前版本已经是3.0了,目前该版本问题比较多,对老版本的兼容问题。参考原文
  • ESP.deepSleep(microseconds, mode)将芯片放入深度睡眠。 是 ,,, 。(GPIO16需要与RST挂钩才能从深度睡眠中唤醒。芯片最多可睡微秒。如果您在醒来时使用深度睡眠并需要 WiFi 功能,则在 WiFi 功能可用之前需要实施额外的功能。

  • mode:参数:WAKE_RF_DEFAULT ;WAKE_RFCAL || WAKE_NO_RFCAL || WAKE_RF_DISABLEDESP.deepSleepMax() || WAKE_RF_DISABLEDWAKE_RF_DEFAULT

  • ESP.deepSleepInstant(microseconds, mode)工作原理类似于,但立即睡觉,而无需等待WiFi关闭。ESP.deepSleep

  • ESP.restart()重新启动CPU。

  • ESP.getResetReason()返回包含人类可读格式中最后重置原因的字符串。

  • ESP.getFreeHeap()返回免费堆大小。

  • ESP.getHeapFragmentation()返回碎片度量表(0%是干净的,超过~50%不是无害的)

  • ESP.getMaxFreeBlockSize()返回堆中最大的连续自由RAM块,用于检查堆碎片。注:由于内存管理器开销,最大可访问块将更小。malloc()

  • ESP.getChipId()返回ESP8266芯片ID作为一个32位整数。

  • ESP.getCoreVersion()返回包含核心版本的字符串。

  • ESP.getSdkVersion()返回SDK版本作为字符。

  • ESP.getCpuFreqMHz()将MHz中的CPU频率作为未签名的8位整数返回。

  • ESP.getSketchSize()返回当前草图的大小,作为未签名的 32 位整数。

  • ESP.getFreeSketchSpace()返回免费素描空间作为未签名的 32 位整数。

  • ESP.getSketchMD5()返回包含当前草图的 MD5 的小写字符串。

  • ESP.getFlashChipId()将闪存芯片 ID 返回为 32 位整数。

  • ESP.getFlashChipSize()返回闪存芯片大小,在字节中,如SDK所见(可能小于实际大小)。

  • ESP.getFlashChipRealSize()返回真正的芯片大小,在字节中,基于闪存芯片ID。

  • ESP.getFlashChipSpeed(void)返回闪存芯片频率,在Hz。

  • ESP.getCycleCount()返回cpu指令周期计数,因为开始作为一个未签名的32位。这对于非常短的动作(如咬击)的准确时间非常有用。

  • ESP.random()应用于在ESP上生成真实的随机数。返回一个未签名的32位整数与随机数。还提供替代版本,以填充任意长度的阵列。请注意,似乎需要启用 WiFi 来生成随机数熵,否则将使用伪随机数。

  • ESP.checkFlashCRC()计算程序内存的CRC(不包括任何文件系统),并将其与嵌入在图像中的CRC进行比较。如果此呼叫返回,则闪存已损坏。此时,您可能需要考虑尝试发送 MQTT 消息、开始重新下载应用程序、在SOS模式下闪烁 LED 等。但是,由于此时已知闪存已损坏,因此无法保证应用能够执行任何此类操作,因此在安全关键部署中可能会指示立即关闭故障安全模式。false

  • ESP.getVcc()可用于测量供应电压。ESP 需要在启动时重新配置 ADC,以便此功能可用。将以下行添加到草图顶部以使用:getVcc

ADC_MODE(ADC_VCC);

在此模式下必须断开脚尖。

请注意,默认情况下,ADC 已配置为使用 TOUT 引脚读取,并且不可用。analogRead(A0)ESP.getVCC()

单一配网案例代码
#include <ESP8266WiFi.h>

void setup()
{
  Serial.begin(115200);
  Serial.println();

  WiFi.begin("network-name", "pass-to-network");

  Serial.print("Connecting");
  while (WiFi.status() != WL_CONNECTED)
  {
    delay(500);
    Serial.print(".");
  }
  Serial.println();

  Serial.print("Connected, IP address: ");
  Serial.println(WiFi.localIP());
}

void loop() {}
多wifi配网案例代码
#include <ESP8266WiFiMulti.h>

ESP8266WiFiMulti wifiMulti;

// WiFi connect timeout per AP. Increase when connecting takes longer.
const uint32_t connectTimeoutMs = 5000;

void setup()
{
  // Set in station mode
  WiFi.mode(WIFI_STA);

  // Register multi WiFi networks
  wifiMulti.addAP("ssid_from_AP_1", "your_password_for_AP_1");
  wifiMulti.addAP("ssid_from_AP_2", "your_password_for_AP_2");
  wifiMulti.addAP("ssid_from_AP_3", "your_password_for_AP_3");
}

void loop()
{
  // Maintain WiFi connection
  if (wifiMulti.run(connectTimeoutMs) == WL_CONNECTED) {
      ...
  }
}

以上是关于Arduino ESP8266库函数说明的主要内容,如果未能解决你的问题,请参考以下文章

Arduino ESP8266 SD库函数介绍

ESP32/8266 + Arduino SSD1306库驱动OLED

Arduino ESP8266 For EEPROM数据存储示例

Arduino ESP8266 ESP8266WiFiMulti配网库实例

Arduino ESP8266利用HTTPClient库 获取心知天气请求实例

ESP8266驱动SSD1306 ESP8266 for Arduino(NodeMCU U8G2库)