Arduino ESP32 深度睡眠与外部唤醒(EXT0)
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)相关推荐
- Arduino ESP32深度睡眠触摸唤醒(触摸唤醒)
Arduino ESP32深度睡眠触摸唤醒(触摸唤醒) 通过D4–GPIO4引脚触摸感应,触发唤醒功能. 睡眠模式下,触摸中断响应流程图 实例代码 /*深度睡眠触摸唤醒(触摸T0唤醒) */#defi ...
- 关于Arduino Esp8266深度睡眠(deepsleep)无法唤醒的解决办法
问题复现 在物联实验当中,由于希望设备小型化,并能够持久使用,选用了WeMos 18650电池盾版. 这个版本在Arduino IDE当中对应 WeMos D1 R2 & mini型号. 图1 ...
- Arduino ESP32 通过定时器(Timer)功能唤醒深度睡眠
Arduino ESP32 通过定时器(Timer)功能唤醒深度睡眠 通过定时器功能,设置5秒,时间到就唤醒深度睡眠 实例代码 /*通过定时器功能唤醒深度睡眠(设置为5秒) */#define uS_ ...
- ESP32 深度睡眠模式功耗测试
ESP32 深度睡眠模式功耗测试 ESP32 拥有 18 个 RTC IO 和 10 个 TouchPad, 每一个 RTC IO 和 TouchPad 经过配置都可以将芯片从 deep_sleep ...
- 2021-11-24 micropython esp32休眠假死 唤醒 rtc nvs btree数据保持
首先本次记录时MICROPYTHON 在ESP32环境下的记录,这里需要声明你使用的micropython 的版本固件不应该太古老,根据我的经验,有些早期固件不支持以下测试,或者不具备相应功能,固件嘛 ...
- 【ESP32最全学习笔记(基础篇)——9.ESP32 深度睡眠模式】
关于本教程: ESP32 基础篇 1.ESP32简介 2.ESP32 Arduino 集成开发环境 3.VS 代码和 PlatformIO 4.ESP32 引脚 5.ESP32 输入输出 6.ESP3 ...
- arduino esp32 读福申甲醛传感器
arduino esp32 读福申甲醛传感器 想法 源代码 想法 arduino库丰富,几行代码即可完成需求描述. 缺点是不能Debug. 想持续监测甲醛变化. 使用杜邦线连接,需要将传感器的输出线焊 ...
- android studio蓝牙低功耗,arduino ESP32 AndroidStudio BLE低功耗蓝牙 物联网
arduino ESP32 AndroidStudio BLE低功耗蓝牙 物联网 nodered开发: esp32采用的蓝牙于普通的蓝牙不同,是低功耗蓝牙,手机用一般的蓝牙代码是连不上的.在本文中,不 ...
- Arduino ESP32将数据保存到NVS中
Arduino ESP32将数据保存到NVS中 该功能类似AVR单片机里面的EEPROM存储区域. 关于ESP32分区表参考<分区表> Preferences中数据以键值对(key - v ...
最新文章
- CentOS7.0下编译安装Nginx 1.10.0
- ARC122C-Calculator【乱搞,构造】
- 开源游戏引擎_Hatchit:开源游戏引擎
- VirtualBox中虚拟XP共享文件夹设置
- 单应性变换(Homography)
- calendar获取本周一的日期_Java日期时间API系列1-----Jdk7及以前的日期时间类
- python控制台编写_Python:为控制台prin编写unittest
- Windows10易升下载
- EastFax传真服务器系统与Email相比有什么优势
- 高三计算机教学计划,精选高三教学计划三篇
- alook浏览器哪个好 夸克浏览器_简单搜索、X浏览器、夸克浏览器、Via几款极简浏览器,到底哪个最好用?...
- LOJ.2863.[IOI2018]组合动作(交互)
- 朱清时——物理学步入禅境:缘起性空-(技术工作者上升到哲学思维)
- canvas学习(html5)画画
- 运用“孤独九剑”解决项目实际问题(三)
- Unity Shader 学习记录(5) —— 实现漫反射光照模型
- 查询员工的薪水涨幅情况
- 正面管教读书笔记 08 班会
- 操作系统中的进程间相互作用
- 基础不牢靠,何以争朝夕?Java基础面试82道详细解析(更新中)