数码之家

 找回密码
 立即注册
搜索
查看: 5050|回复: 20

[Arduino] 关于arduino esp-8266深度休眠问题求救

[复制链接]
发表于 2021-7-25 15:13:15 | 显示全部楼层 |阅读模式
这两天又跟这个NODEMCU的esp8266模块干上了,刚刚接触arduino编程啥都不懂的,关于esp8266深度休眠问题弄不明白了,发帖求救,希望高手指点一下,先谢了!
我想利用模块的D1(pin_5)端口监控外来电平信号,如果有低电平到来也就是D1=0,就使模块进入休眠状态,此后如果模块的RST被触发就唤醒模块,代码几经下载新的代码上传后不用D1=0而模块就直接休眠了,休眠状态的判断依据为:1:模块不发热。2:串口监控没有显示并且只有在按下模块的复位键后运行一次程序。
相关代码如下:代码是抄来按键的例程改编的,好多语法我都不懂。
void setup() {
  Serial.begin(115200);
pinMode(5, INPUT_PULLUP);//设置引脚D1为模块休眠控制端口
}


void loop() {
  esp8266Http();//用于获取时间
if (digitalRead(5) == LOW) {//端口置低电平时控制模块进入深度睡眠状态
  while (digitalRead(5) == LOW) { }
  ESP.deepSleep(0);//开始esp8266深度睡眠(由复位键唤醒)  
  }


*****其他代码*******
***
***
发表于 2021-7-25 15:35:17 | 显示全部楼层
恭喜你选了个初始电平是低电平的引脚

ESP8266上电期间各引脚状态:

GPIO引脚        初始状态        初始电平
GPIO0        输入上拉        H
GPIO2        输入上拉        H
GPIO4        输入下拉        L
GPIO5        输入下拉        L
GPIO12        输入上拉        H
GPIO13        输入上拉        H
GPIO14        输入上拉        H
GPIO15        输入上拉        H
GPIO16        输出置高        H
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2021-7-26 08:30:41 | 显示全部楼层
muyan 发表于 2021-7-25 15:35
恭喜你选了个初始电平是低电平的引脚

ESP8266上电期间各引脚状态:

换了引脚果然可以了,多谢你的指点!!
感觉这货坑太多了,大坑套小坑、小坑埋着钉防不胜防呀,接下来只想简单的弄弄网络获取时间算了,不弄太深了,没劲。
回复 支持 反对

使用道具 举报

发表于 2021-7-26 09:37:49 | 显示全部楼层
慕名而来 发表于 2021-7-26 08:30
换了引脚果然可以了,多谢你的指点!!
感觉这货坑太多了,大坑套小坑、小坑埋着钉防不胜防呀,接下来只 ...

  //设置时间格式以及时间服务器的网址
  configTime(timezone * 3600, 0, "pool.ntp.org", "time.nist.gov");
  Serial.println("\nWaiting for time");
  while (!time(nullptr)) {
    Serial.print(".");
    delay(1000);
  }
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-7-26 20:12:47 | 显示全部楼层
muyan 发表于 2021-7-26 09:37
//设置时间格式以及时间服务器的网址
  configTime(timezone * 3600, 0, "pool.ntp.org", "time.nist.g ...

好的,估计我需要一段时间才能读懂代码,好多库我都不知道出处,好多类型也不懂其格式,因为不懂英文好多资料也用不了,目前正处于闭着眼睛瞎摸的状态,弄了三天只调通了一段网上的例程,是利用WiFiManager库连接wifi而后利用ESP8266HTTPClient读取苏宁时间,通过串口将拆分后的数据发送给STC单片机,目前在NODEMCU模块上初步实现了目的,另外感觉这个NODE模块个头比较大不好整合到时钟里,正在下单弄一个esp8266的小模块来实际使用,再次感谢你的热心指点。
回复 支持 反对

使用道具 举报

发表于 2021-7-26 22:12:34 | 显示全部楼层
慕名而来 发表于 2021-7-26 20:12
好的,估计我需要一段时间才能读懂代码,好多库我都不知道出处,好多类型也不懂其格式,因为不懂英文好多 ...

我也是刚玩没多久,其实基本的东西在arduino里面都有示例,所以基础的功能,复制粘贴基本就解决了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-7-27 09:38:58 | 显示全部楼层
muyan 发表于 2021-7-26 22:12
我也是刚玩没多久,其实基本的东西在arduino里面都有示例,所以基础的功能,复制粘贴基本就解决了 ...

还有一个很外行的问题向你请教,我这个nodemcu模块之前玩过一段时间的lua编程控制,后来lua玩不动了才该用arduino来玩,之前在模块中有安装nodemcu的固件,此次上手就直接刷例程玩起来了,想请教的问题是,如果新买的模块没有刷过任何固件就直接刷arduino例程可以吗?
回复 支持 反对

使用道具 举报

发表于 2021-7-27 09:48:20 | 显示全部楼层
慕名而来 发表于 2021-7-27 09:38
还有一个很外行的问题向你请教,我这个nodemcu模块之前玩过一段时间的lua编程控制,后来lua玩不动了才该 ...

不会没有任何固件的,要么原厂,要么第三方,如果是原厂就要刷第三方的,我刷的micropython的固件,工具用nodemcu的挺好的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-7-27 10:00:48 | 显示全部楼层
muyan 发表于 2021-7-27 09:48
不会没有任何固件的,要么原厂,要么第三方,如果是原厂就要刷第三方的,我刷的micropython的固件,工具 ...

好的,明白了,如果上电测试有问题的话,就把此前用的node的固件刷里好了,很高兴和你交流。
回复 支持 反对

使用道具 举报

发表于 2021-7-27 10:08:07 | 显示全部楼层
慕名而来 发表于 2021-7-27 10:00
好的,明白了,如果上电测试有问题的话,就把此前用的node的固件刷里好了,很高兴和你交流。 ...

对的,上电接好串口看信息就知道是什么固件了
回复 支持 反对

使用道具 举报

发表于 2021-7-29 22:00:29 | 显示全部楼层
晕,你居然用发热来判断是否休眠成功。你就没有万用表吗?实在不行,USB电流电压表也能用啊。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-7-30 10:07:39 | 显示全部楼层
本帖最后由 慕名而来 于 2021-7-30 10:11 编辑
fryefryefrye 发表于 2021-7-29 22:00
晕,你居然用发热来判断是否休眠成功。你就没有万用表吗?实在不行,USB电流电压表也能用啊。 ...

哈哈,这个nodemuc模块只是为了学习arduino用的,演示一下而已,最终目标是使用esp-12的小模块来采集网络时间用来校时,话说回来了,直到做这个休眠实验才发现我真的需要一个USB口的电流、电压表了,如果用万用表还要剪断电源线的,损坏一根mini口的usb线真心不舍得,网上的东西已经入手了接下来可以继续玩耍了。





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复 支持 反对

使用道具 举报

发表于 2021-7-30 13:15:13 | 显示全部楼层
慕名而来 发表于 2021-7-30 10:07
哈哈,这个nodemuc模块只是为了学习arduino用的,演示一下而已,最终目标是使用esp-12的小模块来采集网络 ...

nodemuc模块上面有USB串口芯片等等,就算wifi休眠了,整个模块电流还是大,根本不可能用电池长时间工作。必须用esp-12模块。
回复 支持 反对

使用道具 举报

发表于 2021-7-30 13:19:18 | 显示全部楼层
本帖最后由 fryefryefrye 于 2021-7-30 13:23 编辑
慕名而来 发表于 2021-7-30 10:07
哈哈,这个nodemuc模块只是为了学习arduino用的,演示一下而已,最终目标是使用esp-12的小模块来采集网络 ...

自己用串口转换器刷esp-12模块又是一个大坑。我搞了好几天。
找了一下我当时的笔记,看看你还能搞懂,祝你顺利跳过这个坑。

买一个带RTS和DTR引脚的USB转串口模块。除了正常串口接线外,还要接下面两根线,就可以用ArduinoIDE直接下载了。
利用 RTS 控制 EN 或 nRST,因为它们都是低电平触发芯片复位;
利用 DTR 控制 IO0,低电平启动则进入下载模式;

回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-7-30 19:55:13 | 显示全部楼层
fryefryefrye 发表于 2021-7-30 13:19
自己用串口转换器刷esp-12模块又是一个大坑。我搞了好几天。
找了一下我当时的笔记,看看你还能搞懂,祝你 ...

刚刚看到你的回帖也是刚刚理顺好了这个小模块,下面就说说各种迷糊和各种操作。首先遇到的是usb-ttl模块供电的坑,连接其他板子测试功能,表现为不认串口无法进行串口操作,用万用表测量发现3.3V电源不足2V,而这个usb-ttl板的线路也没法细查,板上也没有3.3V降压元件,恰好手边有5V变3.3V的ams1117-3.3的板子,就直接利用usb-ttl输出的5V引脚跳接了一个3.3V电源为esp供电好了。
接下来再为esp-12e焊接引线,先在网上找了个接线图:



开始只是在RST 引脚外接了一个按键就开始刷arduino代码,结果提示为串口无法识别的开发板等等,好在此前玩了好久的nodemcu-lua,虽然最终没能玩明白却留下了一些资料、工具,于是打开nodemcu的刷固件的工具NodeMCU-PyFlasher-4.0.exe并找出此前定制的固件开始刷固件,结果半道上卡死了,提示串口连接超时啥的,于是重新查看以前刷固件的方法记录,发现需要按flash键进入内存操作模式,接下来的问题是我真的不知道flash按键应该连接到模块的那个端口,于是百度又找到了一个接线图:



根据这个接线图,flash按键应该连接在GPIO0上的,于是又接入了第二个按键,最终的接线图如下:




根据上图,在刷固件或者下载程序时可以同时按下两个按键,而后先放开RST按键再放开flash按键,如此操作后usb-ttl板的蓝灯开始闪烁了,esp-12e的蓝灯也开眨眼了,下载软件也正常运行了,接下来再刷arduino代码也一切正常了。

最后还有一个自己挖的坑,原本买这个模块的时候还同时买了一个转接板的,那个转接板上既有一片1117-3.3还有图中的那两个电阻,可以说如果用转接板的话,实现目标会容易太多,只是因为我嫌弃转接板比较大而放弃了,于是在模块上焊贴片电阻、焊线的时候就感觉挺麻烦的。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复 支持 反对

使用道具 举报

发表于 2021-7-31 14:29:49 | 显示全部楼层
本帖最后由 fryefryefrye 于 2021-7-31 14:31 编辑
慕名而来 发表于 2021-7-30 19:55
刚刚看到你的回帖也是刚刚理顺好了这个小模块,下面就说说各种迷糊和各种操作。首先遇到的是usb-ttl模块 ...

我就是用的那个转接板,
不过这种需要按按钮下载的方式,我很不喜欢,所以我还是最终搞定了无需按钮,只要在软件里点击一下,就能下载的方式。
其实原理就是利用USB转串口的两个额外引脚来模拟你的两次按按钮。
不过你刷成功了,就可以刷一个带OTA的,以后就不用连线了,直接用WiFi下载。也是只需要在软件里点击一下下载。

回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-7-31 14:32:54 | 显示全部楼层
fryefryefrye 发表于 2021-7-30 13:19
自己用串口转换器刷esp-12模块又是一个大坑。我搞了好几天。
找了一下我当时的笔记,看看你还能搞懂,祝你 ...

我按照你的方法在USB-TTL小板上CH340G的13、14脚焊出了引线并且连接到了esp-12e上,果然可以省去flash按键了,下载操作简单爽利不用按键操作了,非常感谢你的经验分享。
回复 支持 反对

使用道具 举报

发表于 2022-8-1 19:15:45 来自手机浏览器 | 显示全部楼层
我被15脚给坑过…
回复 支持 反对

使用道具 举报

发表于 2022-8-3 15:52:27 | 显示全部楼层
esp8266 深度睡眠的话,不用使用单独的接口判断,直接给rst低电平就可以完成唤醒这个动作。
回复 支持 反对

使用道具 举报

发表于 2022-8-6 06:55:52 | 显示全部楼层
很好的经验积累。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2024-4-26 09:18 , Processed in 0.093600 second(s), 10 queries , Redis On.

Powered by Discuz!

© 2006-2023 smzj.net

快速回复 返回顶部 返回列表