エントリー

カテゴリー「電子工作」の検索結果は以下のとおりです。

ページ移動

周波数カウンタモジュールのケース作製

IMG_20211106_200641.jpg

かなり前に購入した周波数カウンタモジュール(8-digit LED Frequency Counter Module Model PLJ-8LED-C)

最近ではバージョンも増え安価になっているようだ

IMG_20211105_150312.jpgIMG_20211105_150323.jpg

主な仕様(抜粋)

  • 動作電圧 DC9-15V 160mA
  • 測定範囲 0.1MHz-2.4GHz (プリスケーラーの定格は1.2GHzで,それ以上は感度が低下すると記載あり)
  • 確度  ± 1Hz (1.0s gate time) L-ch
  • ± 64Hz (1.0 1s gate time) H-ch
  • 125.5 mmx25.5 mmx21.5 mm

そのままでも使用可能なんだが,今回使うついでにケースを作製することにした

購入当時はどうケース化するか悩んだものだが,現在では3Dプリンタがありなんとでもなる

FreeCADを起動する前に,Thingiverseで検索してみると「PLJ-8LED」で有名なモジュールなのか色々見つかった

早速4つ程STLデータをダウンロードしてケース内に電源回路を内蔵できそうなケースを印刷

IMG_20211105_150428.jpgIMG_20211105_150522.jpg

見た目も良いのだが,プリンタの問題か印刷物が縮小したのか,中にモジュールがギリギリで入らなかったのでボツ

次はパネル部だけ先に印刷してサイズを確認して本体を印刷(最初のより小型で前面からの固定になるため電源回路の内蔵は困難)

IMG_20211105_150541.jpgIMG_20211105_150550.jpg

サイズの違いは以下のとおり

IMG_20211105_150817.jpg

取付け用のネジ穴が少しずれていたので広げた(M3×60mmで固定)

IMG_20211106_200655.jpg

入力は裏側となり信号はBNCプラグ,電源は2.1㎜DCプラグにした

IMG_20211106_200706.jpg

ボルトが少々長いため余りがあるのでアクリル板で前面パネルでも付けようかと考えている

(追加:2021.11.14)

LEDが眩しいので輝度を落としてみたがキレが悪いのでアクリル板のパネルを付けた

IMG_20211114_154410.jpg

ボタンとスペーサ-は3Dプリンタでサイズを調整して印刷

IMG_20211114_154608.jpgIMG_20211114_154635.jpg

眩しいためボケた数字が落ち着いて見易くなった

IMG_20211114_154841.jpg

な!百葉箱の異常&復旧

ふとデータ参照してみると,な!百葉箱に異常が発生したのか止まっていた

WS20210722_001.png

前日の夕方は激しい雷雨だったので,その時刻に停止していたなら原因となりえるが,今回停止した時刻が5時ということで外的要因ではないだろうと考察(DBを参照して停止時刻を確認)

WS20210722_002.png

ESP8266の異常もしくはスリープからの復帰を含めプログラムのハングアップが考えられる

復旧するまで時間があった(平日は復旧できない)ので,頻繁ではないがハングアップが発生するなら毎回分解するのも面倒なので外部リセットボタンか自動リセットでも付けようか検討

(外部リセットボタン)

  • 一番上の傘の裏側にリセットボタンとしてタクトスイッチを取付ける案
  • スイッチは両面テープで貼り付け,防水処理はサランラップで覆うので十分か

(自動リセット)

  • ATtiny13を追加で配置しESP8266のリセットを行う
  • ESP8266はATtiny13を定期的にリセットする
  • ATtiny13は起動後ESP8266の定期リセット間隔以上の時間でスリープし復帰したらESP8266をリセットする
  • つまりESP8266がATtiny13をリセットし続ける限りESP8266はリセットされない
  • 2つのプロセッサが同時にハングアップする可能性は低いので十分であろう
復旧作業①

復旧作業の時間ができたので取り外しで解体

IMG_20210717_115705.jpg

リセットすれば再動作するだろうと考えリセットしてみたが動作しなかった

まずいESP8266が壊れたのかと思いながら18650の電圧を計測してみると1.71V!?・・・

IMG_20210717_120456.jpg

停止した時の18650電圧は3.86Vだったし,停止後も充電されているはずなのだが電圧が下がり過ぎているので18650を疑ったが充電してみると電圧が上がっていくのでとりあえずは問題ないと判断

IMG_20210717_121409.jpg

次に太陽電池を確認したが,快晴ではないが十分な電圧が出力されていた

IMG_20210717_121120.jpg

太陽電池は汚れていたけどね(マメに掃除しないと^^)

IMG_20210717_121133.jpg

どうのこうの6時間位充電したら満タンになったので大丈夫と思い取付けて原因ははっきりしないが完了!

IMG_20210717_145923.jpg

復旧作業②

残念ながら,復旧したと思っていたら僅か1日で停止

WS20210722_003.png

またしても同じような時刻(今回は4時),この時間帯に何があるの?

WS20210722_004.png

・・・

WS20210722_005.png

DBを確認してみると17日15:03に復旧して,18日4:14にダウンしている

また取り外し解体,これはもう原因は18650だろうと推測し電圧確認すると1.48V

IMG_20210722_095512.jpg

このシステムで比較的電力消費のあるFAN動作時に劣化していた18650が一機に電圧降下したのだろうと思われる

しかしながら,停止前には4.11Vあったのに電荷はどこに消えたの?っている疑問は残る

劣化したリポ(18650)の特性は,このような形なのかな?

尚,今回において18650は,使用期間(2018/10/20~2021/07/13)なので,約34箇月,日数として1000日間使えたことになる(DAISO製だけどね)

この18650のストックはまだあるので新しいのを取り出し交換して復旧完了

IMG_20210722_100134.jpg

今年中にはプランターの構成から3Dプリンタを駆使した筐体に更新したいね

気圧センサー(BMP280)を交換

な!百葉箱で使用している気圧センサー(BMP280)が異常値を出力していた

WS_20210320_01.png

センサーの異常値出力は半年前くらいから発生しており,最初は稀だったのが徐々に頻度が上がっていった

暫くすれば正常値に戻ることもあったので長い間(様子を見るため)ほっといたがようやく交換

今回,な!百葉箱を開けてみると内部に砂などが侵入して汚れていた(1~2月に強風が多かったせいと思われる)

IMG_20210320_120032.jpg

しかし基板や電子部品の外観異常は無さそう

IMG_20210320_120321.jpg

異常となった⑫BMP280(左)を⑭BMP280の物(右)に交換

IMG_20210320_120812.jpg

交換後のデータは問題ないようなのでしばらく様子見

(1日後)

WS_20210321_12.png

赤線以降が交換後の気圧

ESP8266で電圧ロガーを作製

計測した電圧をWEBから確認するESP8266を使用したプロトタイプを作っておこうと先ずはESP8266を使用した電圧ロガーを作製

これが簡単にできると思っていたが使い物になるまで日数が掛かってしまった

IMG_20201217_203851.jpg

仕様
  • 定間隔で電圧を計測してDBに登録
  • 計測電圧は0~15V
  • 高低電圧を設定でき範囲外となった場合計測を終了(同時にリレーをON/OFF)
  • DBの登録データはブラウザでグラフ表示
  • LOG ON/OFF,UP,DOWNの3ボタン
操作(UI)
  • LOGボタンでログのON/OFF
  • LOGボタンの長押しで最大/最小電圧の選択切替
  • UP,DOWNボタンで選択電圧の変更
  • LOGボタンでを押しながらUP/DOWNボタンでログ間隔を変更
回路図

voltMonitor_回路図.png

  • 2つのボタンはBOOT時HIGHで使用するIO0とIO2を利用
  • ADCの分圧は多回転半固定で調整できるようにした
  • 現在リレーは未実装
作製

いつものとおりブレッドボードで試作

IMG_20201122_194106.jpg

ADCの精度

ESP8266にはアナログ入力が1PinあるがADCの精度があまり良くないという情報を得ていたので外部ADCも検討したが手持ちのADC(MCP3002)がSPI接続だったためとりあえずは内部ADCで作製することにした

0~15Vでの測定なので分圧し,いつものように割合をソフトで調整しようとしたのだが,測定電圧がブレてしまい電圧が定まらない

ブレッドボード上のせいか?と思われたので基板に載せて調整しようとしたが同じ結果だったためソフトでの調整を諦め多回転半固定でハード的に調整することにした

IMG_20201129_205914.jpg

結果,そこそこマシにはなったが精度が悪くロガーとしては問題がある

不明のスタックエラー

プログラム開発の途中で原因不明のExceptionによる異常終了に陥った

--------------- CUT HERE FOR EXCEPTION DECODER ---------------

Exception (0):
epc1=0x402030dc epc2=0x00000000 epc3=0x00000000 excvaddr=0x00000000 depc=0x00000000

>>>stack>>>

ctx: cont
sp: 3ffffab0 end: 3fffffc0 offset: 0190
3ffffc40: 3ffe8c85 40104dc3 3ffec6c0 feefeffe
3ffffc50: 401026af 3ffec6c0 3fffc248 4000050c
3ffffc60: 400043e6 00000030 00000017 ffffffff
3ffffc70: 400044ab 3fffc718 3ffffd60 08000000
3ffffc80: 60000200 08000000 08000000 00000000



3fffff90: feefeffe feefeffe feefeffe feefeffe
3fffffa0: 3fffdad0 00000000 3ffeeae4 40206c80
3fffffb0: feefeffe feefeffe 3ffe8510 401012c9
<<<stack<<<

--------------- CUT HERE FOR EXCEPTION DECODER ---------------

WiFi接続時に発生していることが判明したが原因は判らなかった

最終的にI2Cの初期化と順番を変えることで解決

×
  //I2C初期化
  Wire.begin();
  u8g2.begin();
  u8g2.clear();

  //WiFi接続
  WiFi.begin(ssid, password);
    unsigned long timeout = millis();
  while(WiFi.status() != WL_CONNECTED) {
  if(millis() - timeout > 30000) halt();
delay(100);
    }
-------------------

  //WiFi接続
    WiFi.begin(ssid, password);
unsigned long timeout = millis();
while(WiFi.status() != WL_CONNECTED) {
if(millis() - timeout > 30000) halt();
delay(100);
}

    //I2C初期化
Wire.begin();
   u8g2.begin();
   u8g2.clear();
チャタリング

ボタンを3個にしたため,電圧を上下させる際の最大/最小切り替えるボタンをLOGボタンの3秒長押しにしたのだが,LOGボタンを長押しした後ボタンを離すとチャタリングが発生しているようでソフトで対策したが完全に解決しない

static volatile unsigned long btnintrtm;

void ICACHE_RAM_ATTR logsw_intr() {
if(millis() - btnintrtm <= 50) {
//チャタリング防止
return;
}
btnintrtm = millis();
 noInterrupts();



interrupts();
}

LOGボタンの不良または内部プルアップであることが原因かもしれない(未確認)

懸案事項
  • 現行では3分記録ログで約200mAhの消費電力なので100mAh以下を目指す
  • 測定電圧の精度が良くないので外部ADC化
  • チャタリングのハード的な原因調査
  • リレーの実装
参考までに

DBテーブル(FUNCIDは現在未使用)

CREATE TABLE IF NOT EXISTS `FUNCID` (
`ID` char(2) NOT NULL DEFAULT '0' COMMENT 'ID',
`NAME` char(32) NOT NULL COMMENT '名称',
`SUMMARY` text NOT NULL COMMENT '概要',
PRIMARY KEY (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='装置機能別名称';

CREATE TABLE IF NOT EXISTS `HISTORY` (
`ID` char(2) CHARACTER SET utf8 NOT NULL DEFAULT '0' COMMENT 'ID',
`CTIME` datetime NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '初期日',
`INTERVAL` decimal(2,0) NOT NULL COMMENT 'ログ間隔(分)',
`MINVOLT` decimal(4,2) NOT NULL COMMENT '最小終止電圧',
`MAXVOLT` decimal(4,2) NOT NULL COMMENT '最大終止電圧',
PRIMARY KEY (`ID`,`CTIME`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='履歴';

CREATE TABLE IF NOT EXISTS `LOG` (
`ID` char(2) NOT NULL DEFAULT '0' COMMENT 'ID',
`CTIME` datetime NOT NULL COMMENT '初期日',
`MTIME` datetime NOT NULL COMMENT '適用日',
`VOLTAGE` decimal(4,2) NOT NULL COMMENT '測定電圧',
`VALIDITY` char(1) NOT NULL DEFAULT '0' COMMENT 'データ有効性',
UNIQUE KEY `ID` (`ID`,`CTIME`,`MTIME`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='電圧監視ログ';

以下は現在版で将来的には十分に改版あり(現在のブラウザのデフォルトがSJISのようなのでUTF8からSJISに変換している)

DB登録(regVolt.php

ログ表示(gLogVolt.php

ESP8266ロガープログラム(voltMonitor.ino

ページ移動

ユーティリティ

検索

エントリー検索フォーム
キーワード

新着コメント

Re:ArduinoIDEでFTDIチップでの書き込みエラー
2026/01/16 from 権限がありません
Re:ArduinoIDEでFTDIチップでの書き込みエラー
2026/01/15 from admin
Re:ArduinoIDEでFTDIチップでの書き込みエラー
2026/01/14 from 権限がありません
Re:NOAA受信システム復旧
2025/06/11 from admin
Re:NOAA受信システム復旧
2025/06/11 from とおりすがり

過去ログ

Feed