ESP8266低電力は、(チップ熱、温度及び湿度が次のチップに影響を与える)のいずれかの問題を解決します

このプロジェクトの問題点は、温度がチップの発熱の温度で収集....空気中の温度の隣に収集することはできません温度と湿度センサーにつながる、自分の良い長い時間、ESP8266チップの発熱を悩ませ

 コレクションの外にされてきたことは30度以上......でも気温しかし数度10であります

 

実際には、私の方法は、今問題に対処するには遅すぎる少し良く、より洗練されたテストを行うための時間を持っていない非常にシンプルで非常に簡単です.....

デバイスの機能のみを収集しているため、完全なコレクションをアップロード

私のアプローチは.....遅延スリープ非常に簡単です、遅延スリープ、買収を開始し、睡眠を遅らせる、収集を開始します

しかし、このアプローチは、リアルタイムのデータを受信することができません...しかし、幸いなことに、受信処理を持っていない(主に今受けて治療が今必要とされていません)...

 

1Sタイマー

接続が成功した場合、CNT> = 2つのチップせ判定された場合MQTTは、データ上の温度及び湿度の取得はなく、最初の時間が、第二の時間を送っ10分間スリープ(ユーザプログラムが実行されません)

cntTime> = 10は、上述した動作を行う場合、送信10S、休眠チップ5分以内に収集されていません

地元の状況、温度、HUMI、temp_dec、humi_dec、globalSendData。
ローカルCNT = 0 
ローカルcntTime = 0 
ローカルDHT11pin = 5 - DHT11 GPIO
ローカルDTH11Timer = tmr.create()
DTH11Timer:登録(1000年1 、関数() 
     であれば、CNT> = 2   、次いで
       cntti = 0 
       node.dsleep(600000000,1)
       CNT = 0 ;
    終わり

    cntTime = cntTime + 1 もし cntTime> 10   その後、
       cntti = 0 
       CNT = 0 ;
       node.dsleep(300000000,1)
    終わり

    場合   MqttConnectedFlageは==   その後、
        ステータス、温度、HUMI、temp_dec、humi_dec = dht.read11(DHT11pin) - 収集温度及び湿度  
         であれば   ステータス== dht.OKまたはステータス== dht.ERROR_CHECKSUM次いで
            CNT = CNT + 1 もし   、CNT> = 2   その後、
                cntti = 0 
            
                temp_dec = 温度;
                humi_dec = 地面;
                
                温度 =温度+ TempAdd。 =床+ HumiAdd。
                globalSendData = " { " .. " データ:" .. " TH " .. " " .. " ビット:1、" .. " 温度" ..temp .. " " .. " 湿度"。 .humi ... "temperatureok: " ..temp_dec ... "humidityok: " ..humi_dec .. " } "もし   Mymqtt〜= nilのとMqttConnectedFlage == 
                 それから
                    Mymqtt:公開(PublishTopic、globalSendData、00 、機能(クライアント)エンド)
                終わり
                印刷(" DHT温度:" ..temp ... " ; " ... " 湿度:" ..humi)
            終わり
        ステータスELSEIF == dht.ERROR_TIMEOUT次いで
             --print("DHTがタイムアウト"  --temp = 0 --humi = 0 --temp = TEMP + TempAdd。
            --humi = HUMI + HumiAdd。
            --globalSendData = " { " .. " データ:" .. " TH " .. " " .. " ビット:1、" .. " 温度:"" " .. " 湿度:" ..humi .. " } "
         
        終わり
    終わり
    tmr.softwd(60  --print(" wdclr()" 
終わり)
DTH11Timer:開始();

 

注意:

node.dsleep(600000000,1)
10分後に、デバイスの睡眠を、この機能を実行するために、それが自動的に再起動します
が、あなたは必要
GPIO16とRSTの接続を

 

 注意:実際には、我々はすべての最善の方法は、データを受信し処理することができる通信ネットワーク維持することであることを知っている
。このように、最初の緊急の、これは後でそれに従事を
今すぐ無線LANモジュールは、全く熱くありません.... 。

私は、PCBボードが契約を行っているが、また、チップの温度センサへの熱の影響を減らすことができますが、緩い上の熱をシールした後、外出しないので、次に!PCBボードは、このボードは....密封していない使用し
ているため、私のPCBは、実質的にこれだけの睡眠を使用して、密封されています

 

発熱部とセンサ部は、PCBの実質的離れている
センサに接続されたラインが長くなる....








 

おすすめ

転載: www.cnblogs.com/yangfengwu/p/11300243.html