这个项目的这个问题困扰了自己好长时间了,ESP8266芯片发热,导致了旁边的温湿度传感器采集不了空气中的温度....采集的温度是芯片发热的温度

一直采集出来的是30多度......尽管空气温度10几度

其实我的方式很简单很简单,先应对现在的问题,现在没有时间做的更好一点了,测试更完善来不及了.....

由于设备的功能只是采集,采集完上传

我的做法其实很简单.....延时休眠,启动采集,延时休眠,启动采集,延时休眠

但是这种做法就不能实时的接收数据了...不过还好现在没有接收处理部分(主要是现在的接收处理现在并不是必须的)...

1S定时器

如果MQTT连接成功,就采集温湿度数据,第一次的不要,第二次的发送出去,如果判断cnt>=2 就让芯片休眠10分钟(就不会执行用户程序了)

如果cntTime>=10说明10S内都没有执行上面采集发送的操作,则芯片休眠5分钟

local status, temp, humi, temp_dec, humi_dec, globalSendData;
local cnt=
local cntTime=
local DHT11pin = --DHT11 GPIO
local DTH11Timer = tmr.create()
DTH11Timer:register(, , function()
if cnt >= then
cntTime=;
node.dsleep(,)
cnt=;
end cntTime = cntTime +;
if cntTime > then
cntTime=;
cnt=;
node.dsleep(,)
end if MqttConnectedFlage == true then
status, temp, humi, temp_dec, humi_dec = dht.read11(DHT11pin)--Gathering temperature and humidity
if status == dht.OK or status == dht.ERROR_CHECKSUM then
cnt = cnt +;
if cnt >= then
cntTime=; temp_dec = temp;
humi_dec = humi; temp = temp+TempAdd;
humi = humi+HumiAdd;
globalSendData = "{".."data:".."TH"..",".."bit:1,".."temperature:"..temp..",".."humidity:"..humi..",temperatureok:"..temp_dec..",humidityok:"..humi_dec.."}"
if Mymqtt ~= nil and MqttConnectedFlage == true then
Mymqtt:publish(PublishTopic,globalSendData, , , function(client)end)
end
print("DHT Temperature:"..temp..";".."Humidity:"..humi)
end
elseif status == dht.ERROR_TIMEOUT then
--print( "DHT timed out." )
--temp = ;
--humi = ;
--temp = temp+TempAdd;
--humi = humi+HumiAdd;
--globalSendData = "{".."data:".."TH"..",".."bit:1,".."temperature:"..temp..",".."humidity:"..humi.."}" end
end
tmr.softwd()
--print( "wdclr()" )
end)
DTH11Timer:start();

注:

node.dsleep(600000000,1)
执行该函数,设备休眠10分钟以后,会自动重新启动
不过您需要
GPIO16 和 RST 连接上

 注:其实咱都知道最好的方式是可以保持着通信,就是可以处理网络接受的数据
这个以后再搞吧,先用这种方式应急.
现在的wifi模块一点都不会发热了..... 以前我的PCB板子也做了处理,也是可以减小芯片发热对温度传感器的影响,不过呢!这种板子的PCB板子不要密封....因为密封以后热量就散不出去了
因为我的PCB基本上是密封的,所以只能使用休眠了
基本上分隔开PCB板的发热部分和传感器部分
连接传感器的线加长....

ESP8266低功耗解决的其中一个问题(芯片发热,影响旁边的温湿度芯片)的更多相关文章

  1. 从Qt5开始只剩下setCodecForLocale这一个了,只是影响Qt对toLocal8Bit相关函数的编码方式(在源码里写非英文,官方推荐“\xE4\xBD...”这种)good

    QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8")); QTextCodec::setCodecFo ...

  2. 解决DropDownList 有一个无效 SelectedValue,因为它不在项目列表中。这是怎么回事?

    产生错误原因: 绑定在DropDownList的时候 DropDownList没有对应的值 查了一下MSDN:DropDownList.SelectedValue 属性: 此属性返回选定的 ListI ...

  3. ESP8266开发课堂之 - 建立一个新项目

    项目架构 ESP8266项目开发并非使用IDE自动管理工程文件,而是使用了诸多第三方程序如Python,以及使用了Makefile管理依赖与控制编译,所以项目的创建与日常维护较为复杂,本篇将详述创建一 ...

  4. FMDB多线程读写问题,使用FMDataBaseQueue操作可以解决同时打开一个链接de读写问题

    现在ios里使用的数据库一般都是Sqlite,但是使用Sqlite有个不太好的地方就是在多线程的时候,会出现问题,sqlite只能打开一个读或者写连结.这样的话多线程就会碰到资源占用的问题. 最开始是 ...

  5. Android Fragment 真正彻底的解决(下一个)

    转载请注明出处:http://blog.csdn.net/lmj623565791/article/details/37992017 上篇博客中已经介绍了Fragment产生原因.以及一些主要的使用方 ...

  6. ReactNative 分享解决listView的一个郁闷BUG

    用ListView的时候,会出现一个非常傻bi的情况,就是render的时候,listView不显示,需要碰/滑一下才会显示. 一开始我在怀疑自己是不是布局哪里有冲突,改到哭都没发现布局有什么问题,直 ...

  7. 解决Win7下一个VC++6.0您不能直接打开多个project问题

    于Win7操作系统,只需双击打开多个VC ++6.0的project当文件,前方和后方的工作区将关闭工作区,这项.VC++6.0仅仅通过文件-->开放式工作区-->找到磁盘project档 ...

  8. 【Mac】解决「另一个活跃的 Homebrew 进程正在进行中」问题

    问题描述 在安装 tesseract 的语言包时,由于网络下载速度太慢,我按下 ctrl + z 退出了安装,当再次输入安装命令时,系统报错如下: 解决方法 使用以下命令删除 homebrew 进程锁 ...

  9. 解决wordcloud的一个error:Microsoft Visual C++ 9.0 is required. Get it from http://aka.ms/vcpython27

    环境: 操作系统:Windows 7 64位 语言:Python 2.7.13 |Anaconda 4.4.0 (64-bit)| (default, May 11 2017, 13:17:26) w ...

随机推荐

  1. arc079

    D. Decrease (Contestant ver.) 大意: 每次操作选一个最大数$-n$,其余数全$+1$. 要求构造一个序列$a$, 使得恰好$k$次操作后最大值不超过$n-1$. 只要让$ ...

  2. windows开机自启动的django服务

    做了一个django项目,想部署在win10的笔记本电脑上,可以开机后台自动启动.找了很多的方法.最后成功了. 参考了这个博主的内容. https://blog.csdn.net/qq_3595961 ...

  3. 在Linux系统中创建SSH服务器别名

    如果你经常通过 SSH 访问许多不同的远程系统,这个技巧将为你节省一些时间.你可以通过 SSH 为频繁访问的系统创建 SSH 别名,这样你就不必记住所有不同的用户名.主机名.SSH 端口号和 IP 地 ...

  4. php精度比较函数bccomp

    bccomp (PHP 4, PHP 5, PHP 7) bccomp — 比较两个任意精度的数字 说明 int bccomp ( string $left_operand , string $rig ...

  5. 2019-07-24 Smarty模板引擎的简单应用

    smarty是什么? Smarty是一个使用PHP写出来的模板引擎,是业界最著名的PHP模板引擎之一.Smarty分离了逻辑代码和外在的内容,提供一种易于管理和使用的方法,用来将原本与HTML代码混杂 ...

  6. 使pre的内容自动换行(转)小知识

    <pre> 元素可定义预格式化的文本.被包围在 pre 元素中的文本通常会保留空格和换行符.而文本也会呈现为等宽字体. <pre> 标签的一个常见应用就是用来表示计算机的源代码 ...

  7. 【转载】如何查看sqlserver客户端的版本号信息

    在sqlserver的使用过程中,有时候可能会因为sqlserver版本过低等原因的导致无法附加以及还原数据库,我们可以通过sql server management studio软件的帮助菜单参看到 ...

  8. js 数据类型检测

    提起数据类型检测  大多数人首先想起的应该是  typeof 'xxx' == '数据类型' 坦然这种方法对于基本数据类型的检测还是非常方便的,但是当遇到引用数据类型 Object时却爱莫能助,下面就 ...

  9. 《区块链DAPP开发入门、代码实现、场景应用》笔记5——区块链福利彩票的设计

    笔者一直强调,一定要利用区块链的特点来解决行业存在的问题,并且该问题最好用区块链解决或者说只能用区块链解决.彩票行业就是个例子. 在讲解代码之前,首先讲解一下业务设计,如图6.15所示. 图6.15 ...

  10. Ubuntu 系统装机指南

    1.vim设置 2.git配置 3.系统性能监视器:Ubuntu安装系统监视器 4.编译环境安装:sudo apt-get install build-essential