昨日,補修が完了したと思っていた「な!百葉箱」が正常に動作していない
他にやりたいこともあったので腰を据えて新しいケースで復活させようかとも思ったが(どうしても目の前の障害は置いておきたくないので)原因を探ることにした
案の定・・・嵌った・・・
結果は・・・ESP8266の異常であり,厳密には一部のピンが動作不良となっていた・・・なので難しかった
先ずは分解
各所をチェック
バッテリー:電圧は3.8Vで低かったが,充電で満タンになり問題なし(だけど,実はバッテリー電圧の測定値に問題ありの信号が当たっていた)
3.3V電源:バッテリーからの入力を3.3Vにしているが問題なし
FAN:出力電圧が1.7Vで異常,入力も1.7Vだけど昇圧DCDCは問題なし,FANも5Vで正常に回る
つまり,FANへの出力電圧が異常なのであるが,FANが動作しなくても測定値をDB登録できるはずなので通信をテスト用ブレッドボードでチェック
この時点でESP8266を疑っていて3個準備してプログラムを書き込み動作させてみたが1度だけ何故か通信が成功した以外まったくDB登録できなかった
ついに通信を疑いAPのファーム更新や再起動を行ったが状況は変わらず
更にはデバッグコードを埋め込み通信関係のチェックして遂にプログラムの問題を発見
if(WiFi.SSID() != ssid) {
//設定が記憶されていないなら接続し記憶させる
WiFi.persistent(true); //ssidとpasswordを保存させる設定
WiFi.mode(WIFI_STA); //STA(子機)モード
WiFi.setAutoConnect(true); //次回起動時に保存内容で接続
WiFi.begin(ssid, password); //初回接続
}
ネットワーク接続時のWiFiコネクトで前回接続の残り(つまりタイムアウト内)なら前回リソースで時間を費やさないようにコネクトしているが保持判定方法に問題があった
if(beginning || WiFi.SSID() != ssid) {
//最初の起動時,もしくは設定が記憶されていないなら接続し記憶させる
beginning = false;
WiFi.persistent(true); //ssidとpasswordを保存させる設定
WiFi.mode(WIFI_STA); //STA(子機)モード
WiFi.setAutoConnect(true); //次回起動時に保存内容で接続
WiFi.begin(ssid, password); //初回接続
}
コネクト問題は初回フラグで対応したが全体の動作は解決せず
結果ESP8266のピン出力がプログラム通りされていない事が判明
ピンの接触不良の疑いもあったが,新しいESP8266に変更したところ改版プログラムにて正常動作したので解決したとしてヒートランテスト中(明日には復旧となる見込み)
今回は調査中に電源指しミスで昇圧DCDCを燃やしてしまって要反省
(追加)
ESP8266が異常となるのは2個目であるが,そんなに壊れることはないんじゃないかと思いボードのパターンが切れているのかもしれないと考えた
よく見ると,ところどころパターンが錆びて切れているように見える(元画像:1.27MB)
自然冷却用の隙間から雨が入り錆びたと考えられるため対策しておいたほうが無難である
基板の周囲に壁でも付けるかニスでも塗っておくか考えたが今回はテープで養生することにした
新しいケースで構築し直そうと思う