エントリー

タグ「ESP8266」の検索結果は以下のとおりです。

3DプリンターでESP8266開発ボードを改良

3Dプリンタでの制作練習を兼ねてESP8266開発ボードを改良するためのベースを3Dプリンタで作った

開発ボードの問題点

IMG_20201226_152607.jpgIMG_20201226_152641.jpg

  • USBタイプBのコネクタが重みで傾いてしまう
  • 裏側にはゴム足を付けて浮かせてあるが配線がむき出し
  • ZEROソケットを付けたためブレッドボードが扱い難くなった
解決するためベースを設計

IMG_20201226_152951.jpgIMG_20201226_153000.jpg

開発ボードを載せるベースを3Dプリンタで作製するため開発ボードなどのサイズを測定してラフスケッチ

3D印刷

3D作図には「FreeCAD」を使用

IMG_20201227_999901.png

PLAで少し強度が必要なのでインフィル40%で印刷

IMG_20201226_222855.jpgIMG_20201226_222921.jpg

ベースは厚みを2mm,ボードの下駄は3mm

裏に足を付けても良かったがサポート無しにしたかったのでベタにしたらビルドテーブルから剥がすのが大変だった

IMG_20201227_160342.jpg

開発ボードを載せて完成

なかなか良い感じになった

完成基板との接続ケーブル

電圧ロガーを作製した時,パーツを載せた完成基板を使って調整やデバックするため開発ボートとピンケーブルで接続したが,これを簡単にできるケーブルを作った

IMG_20201227_160459.jpg

以下のように接続して使う

IMG_20201227_160806.jpg

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

なんちゃって百葉箱を作ってみる(完成)

メインの百葉箱が完成

IMG_20181020_130501996.jpgIMG_20181020_130533350.jpg

構成

全7段で一番上には設置のための取っ手を付け2段目にはバッテリーを置く

IMG_20181018_174122683.jpgIMG_20181018_174138807.jpg

2段目の下部にはセンサーを縦置き

IMG_20181018_174614741.jpgIMG_20181018_191600721.jpg

当初はセンサーにホコリが積もらないようボードに置いて横置きを考えていたが,他のパーツやボードにもホコリが積もらないように縦置きに変更した

残りの下段5個は同じで中央に風穴を空ける

IMG_20181018_153452939.jpg

組立

組立に使ったパーツ

IMG_20181020_112425780.jpg

4㎜サイズの丁度良いスペーサーが無かったので5㎜のアルミ菅を使って作製

IMG_20181020_122932709.jpgIMG_20181020_125317175.jpg

最終段は虫が入らないように網で塞いだ

設置

設置場所は芝生の上の1200~1500㎜が理想的ということでポールを設置しようと考えたが,そこまでこだわることも無いのでまずはベランダに設置

IMG_20181020_172004361.jpgIMG_20181020_172139311.jpg

標高95mの場所から2800㎜の高さに設置となる

今後

残りは以下のとおりで更にコツコツやっていく

  • 気象データ閲覧の充実
  • 室内気温の観測
  • バッテリーの残量確認(太陽電池での捕充電に問題ないか)
  • 現在正確な消費電力量計測中

なんちゃって百葉箱を作ってみる(続き2)

相変わらずのんびりと進めている

電源部を決定

結局は電源部が決まらないと回路が落ち着かないので先に検討

使用する太陽電池の出力が4~6V位なのでニッケル水素電池なら3本(3.6V),リポなら1本(3.7V)が妥当かと考えるが,手持ちの低損失CMOS三端子レギュレータ3.3V500mA(NJU7223F33)を使うとするとドロップアウトが0.4Vなのでギリギリでありバッテリー効率が悪くなりそうである

そこでニッケル水素電池なら2本から昇圧すればどうかとHT7733Aで実験したところ大失敗・・・前にもやったのを記録してなかったので忘れていた

IMG_20181014_095627684.jpg

(忘れないよう今回は以下に結果と実験用にボード化しておこうと思う)

  • 60mA位なら連続で出力できるが100mAあたりで一気に1.2V位まで電圧降下する
  • 一度電圧降下すると一度電源OFFしないと3.3Vに回復しない
  • ブレッドボード上での実験なので少しはまともに実装すれば200mA位までいけるかもしれないが諦めた

現状の手持ちパーツでは良い解決案がでてこないので低ドロップ(1.8V)の低飽和型レギュレーター3.3V500mA(NJM2884U1-33)を購入することにした

購入するなら今後のためにと太陽電池モジュール1.15WSY-M1.15Wを同時に購入

IMG_20181014_101607855.jpgIMG_20181013_114203283.jpg

少しの太陽光で160mAを軽く出力した(コストの良い太陽電池モジュールかと)

今回はここまでの高出力は必要ないので当初の予定通りで構成(実は秋月の300mWを使えば良かったかと・・・)

IMG_20181014_101425024.jpgIMG_20181013_114045217_HDR.jpg

最終的に6枚(費用は\648)となったが,40mAhあれば平均20mAhの日照が4時間としても80mAhとなり消費が20mAh/日なので4日分を1日で補充できる

4日で十分なのかどうかは実際にやってみないと判らないがバッテリーは1000mAh(50日分)は確保しているため余裕の日数のなかで補充できれば良い計算である

本体(センサー部)を完成

秋月で購入したBME280は実験用に置いておいてアマゾンで購入(2個)したBMP280(¥368/個)を使う

IMG_20181002_172232562.jpgIMG_20181002_172244035.jpg

ところがBME280と勘違いしてBMP280だったので湿度センサが無い

もともとLPS25Hを使うつもりだったので気圧センサとしてのみ使い温度と湿度は精度の良いDHT22を使用することにした

ここでSHT31を採用しなかったのは単に精度の差がないのと既にDHT22は動作確認していたため扱い易かったからである

これで最終的な回路が決定する

(回路図)

homeTenki_回路図.png

(注)DHT22のDataPinのプルアップが抜けていた(無しでもESP8266内部でプルアップされているのか電圧は出ている)

NJM2884の部分は実際は以下となる

NJM2883.pngNJM2884.png

(回路図内のミス)

  • BME280はBMP280(名称ミス)
  • BMP280のGNDが接続されていない(当然接続している)
  • BMP280のCBSはVDDIO(この場合V3.3)に接続しておかないと起動時にSPIになってしまうそうだ(無接続でも動作しているが正しくは接続した方が良い)
  • NJM2883ではなくNJM2884
  • NJM2884のIN,OUTが逆になっている

リファレンス回路では出力側のコンデンサ(セラミック可能)は2.2μFだが4.7μFのほうが安価なので採用した

CONTROLのプルアップは300KΩ位まで問題ないようだ

ちっとミスってやってしまったことだが,入出力で使用しているコンデンサ(0.33μFと4.7μF)は無くても今回の回路は動作した

以下はニッケル水素3本(830mAh)で消費状況を試行実行中

IMG_20181014_095802517.jpg

この回路からBMP280を除いたDHT22とした版を室内用として設置する予定

室外版

室外に設置する版はダイソーのモバイルバッテリーを利用する

IMG_20181014_115224745.jpgIMG_20181014_115409773.jpg

充電部はそのままのだが出力は5Vに昇圧する必要がないし機能上の問題もあるため直接18650から引き出す

内部の基板から標準の方のUSBメスコネクタを外しケースのUSBの口から太陽電池からの充電と18650から供給するケーブルを通す

IMG_20181014_200032106.jpgIMG_20181014_200210935.jpg

(もう1セットのパーツで)室外運用基板として実装

IMG_20181014_201646576.jpg

太陽電池による補充電はしてないがリポで試行運用中

IMG_20181014_204324063.jpg

鎧戸の箱

測定機は完成,問題は外側となる筐体で雨をしのぎながら風通しのよい箱を作らないとならない

一般的に鎧戸と呼ばれている形状で作製された筐体で購入すると結構な価格のようだが,現在のアメダスで実際に使用されているものはFAN付きの空洞のような形で昔の白い箱型ではなくなり進化している

つまり見た目は懐かしいが昔の白い鎧戸の箱にこだわることはない

ということでググってみるとトレイを裏返しにして重ねることで鎧戸を構成するってアイデアをいただくことにした

丸いプランターの鉢皿を使用している方が多いのに対抗する訳でなく四角の鉢皿の方が考えてる形に合うので採用

IMG_20181007_162520875.jpgIMG_20181018_121701733.jpg

一番上となる鉢皿は太陽電池の性能確認のため先に作製

IMG_20181007_201745857_BURST000_COVER_TOP.jpgIMG_20181007_210149972.jpg

鉢皿をひっくり返し太陽電池6枚の形でくり抜き加工してスマホ等のフィルムを貼って付けた

IMG_20181014_101408834.jpgIMG_20181014_101442465.jpg

裏側は美しくないが見えないので問題なし

2段目はバッテリー置き場となり3段目以降はこれから再検討して作製

課題は虫(特に蜘蛛)かな

ページ移動

  • ページ
  • 1
  • 2
  • 3

ユーティリティ

検索

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

過去ログ

Feed