Arduino ESP32 深度睡眠与外部唤醒(EXT0)


使用10K下拉电阻连接到按钮 GPIO 4和GND之间,防止其他杂波信号干扰,在3.3V和GPIO4之间接按键,用来触发EXT0,接线示意图:

实例代码

/*深度睡眠与外部唤醒(这里使用10K下拉按钮到 GPIO 4)
*/#define BUTTON_PIN_BITMASK 0x200000000 // 2^33 十六进制RTC_DATA_ATTR int bootCount = 0;//打印 ESP32 从深度睡眠中醒来的原因
void print_wakeup_reason(){esp_sleep_wakeup_cause_t wakeup_reason;wakeup_reason = esp_sleep_get_wakeup_cause();switch(wakeup_reason){case ESP_SLEEP_WAKEUP_EXT0 : Serial.println("使用 RTC_IO 的外部信号引起的唤醒"); break;case ESP_SLEEP_WAKEUP_EXT1 : Serial.println("使用 RTC_CNTL 的外部信号引起的唤醒"); break;case ESP_SLEEP_WAKEUP_TIMER : Serial.println("定时器引起的唤醒"); break;case ESP_SLEEP_WAKEUP_TOUCHPAD : Serial.println("触摸板引起的唤醒"); break;case ESP_SLEEP_WAKEUP_ULP : Serial.println("ULP 程序引起的唤醒"); break;default : Serial.printf("唤醒不是由深度睡眠引起的: %d\n", wakeup_reason); break;}
}void setup(){Serial.begin(115200);delay(1000); //花一些时间打开串行监视器//增加引导编号并在每次重启时打印++bootCount;Serial.println("Boot number: " + String(bootCount));//也打印 ESP32 和触摸板的唤醒原因print_wakeup_reason();/*First we configure the wake up sourceWe set our ESP32 to wake up for an external trigger.There are two types for ESP32, ext0 and ext1 .ext0 uses RTC_IO to wakeup thus requires RTC peripheralsto be on while ext1 uses RTC Controller so doesnt needperipherals to be powered on.Note that using internal pullups/pulldowns also requiresRTC peripherals to be turned on.*/esp_sleep_enable_ext0_wakeup(GPIO_NUM_4,1); //1 = High, 0 = Low//If you were to use ext1, you would use it like//esp_sleep_enable_ext1_wakeup(BUTTON_PIN_BITMASK,ESP_EXT1_WAKEUP_ANY_HIGH);//将进入睡眠Serial.println("要休眠了");esp_deep_sleep_start();Serial.println("这永远不会被打印");
}void loop(){}
  • 串口打印唤醒原因

Arduino ESP32 深度睡眠与外部唤醒(EXT0)相关推荐

  1. Arduino ESP32深度睡眠触摸唤醒(触摸唤醒)

    Arduino ESP32深度睡眠触摸唤醒(触摸唤醒) 通过D4–GPIO4引脚触摸感应,触发唤醒功能. 睡眠模式下,触摸中断响应流程图 实例代码 /*深度睡眠触摸唤醒(触摸T0唤醒) */#defi ...

  2. 关于Arduino Esp8266深度睡眠(deepsleep)无法唤醒的解决办法

    问题复现 在物联实验当中,由于希望设备小型化,并能够持久使用,选用了WeMos 18650电池盾版. 这个版本在Arduino IDE当中对应 WeMos D1 R2 & mini型号. 图1 ...

  3. Arduino ESP32 通过定时器(Timer)功能唤醒深度睡眠

    Arduino ESP32 通过定时器(Timer)功能唤醒深度睡眠 通过定时器功能,设置5秒,时间到就唤醒深度睡眠 实例代码 /*通过定时器功能唤醒深度睡眠(设置为5秒) */#define uS_ ...

  4. ESP32 深度睡眠模式功耗测试

    ESP32 深度睡眠模式功耗测试 ESP32 拥有 18 个 RTC IO 和 10 个 TouchPad, 每一个 RTC IO 和 TouchPad 经过配置都可以将芯片从 deep_sleep ...

  5. 2021-11-24 micropython esp32休眠假死 唤醒 rtc nvs btree数据保持

    首先本次记录时MICROPYTHON 在ESP32环境下的记录,这里需要声明你使用的micropython 的版本固件不应该太古老,根据我的经验,有些早期固件不支持以下测试,或者不具备相应功能,固件嘛 ...

  6. 【ESP32最全学习笔记(基础篇)——9.ESP32 深度睡眠模式】

    关于本教程: ESP32 基础篇 1.ESP32简介 2.ESP32 Arduino 集成开发环境 3.VS 代码和 PlatformIO 4.ESP32 引脚 5.ESP32 输入输出 6.ESP3 ...

  7. arduino esp32 读福申甲醛传感器

    arduino esp32 读福申甲醛传感器 想法 源代码 想法 arduino库丰富,几行代码即可完成需求描述. 缺点是不能Debug. 想持续监测甲醛变化. 使用杜邦线连接,需要将传感器的输出线焊 ...

  8. android studio蓝牙低功耗,arduino ESP32 AndroidStudio BLE低功耗蓝牙 物联网

    arduino ESP32 AndroidStudio BLE低功耗蓝牙 物联网 nodered开发: esp32采用的蓝牙于普通的蓝牙不同,是低功耗蓝牙,手机用一般的蓝牙代码是连不上的.在本文中,不 ...

  9. Arduino ESP32将数据保存到NVS中

    Arduino ESP32将数据保存到NVS中 该功能类似AVR单片机里面的EEPROM存储区域. 关于ESP32分区表参考<分区表> Preferences中数据以键值对(key - v ...

最新文章

  1. CentOS7.0下编译安装Nginx 1.10.0
  2. ARC122C-Calculator【乱搞,构造】
  3. 开源游戏引擎_Hatchit:开源游戏引擎
  4. VirtualBox中虚拟XP共享文件夹设置
  5. 单应性变换(Homography)
  6. calendar获取本周一的日期_Java日期时间API系列1-----Jdk7及以前的日期时间类
  7. python控制台编写_Python:为控制台prin编写unittest
  8. Windows10易升下载
  9. EastFax传真服务器系统与Email相比有什么优势
  10. 高三计算机教学计划,精选高三教学计划三篇
  11. alook浏览器哪个好 夸克浏览器_简单搜索、X浏览器、夸克浏览器、Via几款极简浏览器,到底哪个最好用?...
  12. LOJ.2863.[IOI2018]组合动作(交互)
  13. 朱清时——物理学步入禅境:缘起性空-(技术工作者上升到哲学思维)
  14. canvas学习(html5)画画
  15. 运用“孤独九剑”解决项目实际问题(三)
  16. Unity Shader 学习记录(5) —— 实现漫反射光照模型
  17. 查询员工的薪水涨幅情况
  18. 正面管教读书笔记 08 班会
  19. 操作系统中的进程间相互作用
  20. 基础不牢靠,何以争朝夕?Java基础面试82道详细解析(更新中)

热门文章

  1. JavaWEB(applicationjavabean封装)
  2. 个人表现怎么写学生_个人主要事迹怎么写
  3. scala当中的文件操作、网络请求和隐式转换
  4. [terry笔记]Python字符串
  5. wegame导致win10无限重启问题解决
  6. WhatsApp聊天记录迁移新手机,备份如何找回和删除?
  7. 自然语言处理----常用函数简析
  8. Python练习task2:条件与循环
  9. NTL密码算法开源库-大整数ZZ类(一)
  10. 常用的RGB颜色值参考表