エントリー

なんちゃって百葉箱を作ってみる

ESP8266と気象センサを使って,なんちゃって百葉箱を作ってみる

なんちゃってといっても実用レベルを目指すつもり

いろんな試行実験が必要なので完成までは時間が掛かる予定

はじめに

実のところデジタルセンサで百葉箱を作ろう計画はかなり前からあり研究準備していた

と,いうのも現在住んでる場所が山の側であり市街に設置されていたアメダスと気温が(-2℃位)異なるため自宅付近の気温をロギングしたかったためであった

それが2年前8月にアメダスが近く(300m位離れた場所)に引っ越してきたため作製の意欲が無くなり現在に至ることとなる

準備したパーツも勿体ないので重い腰を上げたって感じでもある

arduinoIDE

基盤はESP8266であり久々に使うことになるのだが,先ずアップデートされたarduinoIDE(ボードESP8266選択)で(かなり)嵌る

Setup.png

設定が増えていて「Crystal Freequency」を26MHzに設定しないと古いESP8266では問題が生じるようだ

例えばシリアル出力が指定bps通りに出力されず文字化けする

ESP8266でDHT11とLPS25Hを試す

IMG_20180909_102030659_BURST001.jpgIMG_20180909_135921606.jpg

Arduinoで試していたDHT11とLPS25HのスケッチがあるのでESP8266で動作させてみたところ,DHT11は(DHT22も)動作したがLPS25HはCPU依存コードもあってか動作不良となった

  • sizeof(int)の違い
  • ESP8266のバイトオーダーはLSBファースト

ほどなくスケッチの解決はしたが,LPS25HをESP8266とArduino(ATMega328P)で差し替えしながら計測値を比べていたところ情けない事に逆差しして破壊してしまう

IMG_20180915_210806939.jpg

大気圧センサとしてLPS25H,気温・湿度センサとしてSHT31を高精度なので利用しようと考えていたため残念なことに・・・既にLPS25Hは販売していないのでBME280に変更を余儀なくされた

BME280を使う

BME280からのデータ取得はややこしかったのでライブラリをこちらからいただくことにして入出力部をSPIからI2Cへとコンストラクタを修正

ESP8266のデフォルトのI2Cピンアサインは、SDA: IO04, SCL: IO05だが Wire.begin(SDA, SCL); で指定可能

BME280は省電力モードで使用

サーバ

データは自前のWebサーバで受けMySQLでDB化,閲覧には見栄えするグラフ化を予定

DBは以下のとおりテーブルを3個

CREATE TABLE IF NOT EXISTS `LOG` (
  `LOCATION`       char(2)         DEFAULT NULL COMMENT '計測場所(ID)'
, `DATETIME`       datetime        DEFAULT NULL COMMENT '適用日'
, `PRESSURE`       decimal(6,2)    DEFAULT NULL COMMENT '気圧'
, `TEMPERATURE`    decimal(4,2)    DEFAULT NULL COMMENT '気温'
, `HUMIDITY`       decimal(4,2)    DEFAULT NULL COMMENT '湿度'
, `BATTERY_VOLT`   decimal(4,2)    DEFAULT NULL COMMENT 'バッテリー電圧'
, `BATTERY_TEMP`   decimal(4,2)    DEFAULT NULL COMMENT 'バッテリー温度'
, PRIMARY KEY (`LOCATION`, `DATETIME`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='気象データログ'

CREATE TABLE IF NOT EXISTS `LOCATION` (
   `ID`             char(2)         DEFAULT NULL COMMENT '計測場所ID'
, `NAME`           varchar(32)     DEFAULT NULL COMMENT '計測場所名'
, `STATUS`         boolean         DEFAULT NULL COMMENT '計測有効'
, `PRES_ID`        char(2)         DEFAULT NULL COMMENT '気圧センサID'
, `TEMP_ID`        char(2)         DEFAULT NULL COMMENT '気温センサID'
, `HUMI_ID`        char(2)         DEFAULT NULL COMMENT '湿度センサID'
, PRIMARY KEY (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='計測場所'

CREATE TABLE IF NOT EXISTS `SENSOR` (
  `ID`             char(2)         DEFAULT NULL COMMENT 'センサID'
, `NAME`           varchar(32)     DEFAULT NULL COMMENT '名称'
, `VENDOR`         varchar(32)     DEFAULT NULL COMMENT '売り手'
, PRIMARY KEY (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='センサ'

受けはPHPでプログラミングして今回はPOSTを使用(GETは手動確認用で使う)

<?php

//自宅アメダス : 気象データ(気圧,気温,湿度)を登録
//
//コード:UTF-8N
// 行末:LF
//TAB:4

//インターフェイスチェック
if(php_sapi_name() == "cli") {
    //コマンドラインで実行
   exit(0);
}
//Web経由で実行

//登録データ取得
$inLoc  = empty($_POST['LOC'])? empty($_GET['LOC'])? "0":$_GET['LOC']: $_POST['LOC'];  //計測場所
$inPres = empty($_POST['PRES'])?empty($_GET['PRES'])? "":$_GET['PRES']:$_POST['PRES']; //気圧
$inTemp = empty($_POST['TEMP'])?empty($_GET['TEMP'])? "":$_GET['TEMP']:$_POST['TEMP']; //気温
$inHumi = empty($_POST['HUMI'])?empty($_GET['HUMI'])? "":$_GET['HUMI']:$_POST['HUMI']; //湿度

$inBVolt = empty($_POST['BVOLT'])?empty($_GET['BVOLT'])? "":$_GET['BVOLT']:$_POST['BVOLT']; //バッテリー電圧
$inBTemp = empty($_POST['BTEMP'])?empty($_GET['BTEMP'])? "":$_GET['BTEMP']:$_POST['BTEMP']; //バッテリー温度

if(empty($inLoc) || empty($inPres) && empty($inTemp) && empty($inHumi)) {
   //パラメタエラー
   $content .= "Error.\n";
} else {

    //DB接続
    $db = new mysqli("localhost", "tenki", "tenki", "tenki");
   $db->query("set names utf8");

    //登録
    $sql = "insert into LOG (LOCATION, DATETIME, PRESSURE, TEMPERATURE, HUMIDITY, BATTERY_VOLT, BATTERY_TEMP)";
   $sql .= " values (${inLoc}, now(), '${inPres}', '${inTemp}', '${inHumi}', '${inBVolt}', '${inBTemp}')";
    $db->query($sql);
    $db->close();
    $content .= "Ok.\n";
}

//コンテンツ出力
echo $content;

?>
消費電力

ESP8266とサーバ側のDB登録が出来ているので消費電力の確認を行った

IMG_20180924_200700705.jpg

(Waitで1分毎にデータをDB登録)

IMG_20180924_210738254.jpg

1時間で累積42mAhとなる

(ディープスリープ使用で10分毎にデータをDB登録)

IMG_20180927_060539865.jpg

12時間で8mAhとなった

これは先人様が計測されているのと変わりないようである

また(WiFi有効の)起動時には300mA,通信時には約70mA程流れるらしい

ドライブレコーダーの電源部を改良

  • 2018/08/26 13:53
  • カテゴリー:

ドライブレコーダーを取付稼働してからバックギアにすると電源が切れる現象が発生していた

単にバックライトが付くとかで電力消費が激しく電圧降下が発生しているのだろうと思っていたが,バッテリー電圧の状況からどうやらバックギアの際は充電用モータが作用せずバッテリーが充電されてないのではということが判明した

なので,バックギアにするとバッテリーのみで電気系が動作するため12Vから12V未満になる(停めた時の開放電圧は12.8V位なのでバッテリーの異常ではない)

これってバックで延々と走行するとバッテリーが上がり停止するってことだな

(まぁこれはおいておいて)

ドライブレコーダーの電源切れはイライラするのでアクセサリー電源がONになったらサブバッテリーもONにする方法で改良した

車載装置電源SW_改良1_回路図.png

  • D2とD3のOR回路でQ1を駆動
  • R4とR5は電流を抑えるため入れてみたが本来は必要ない(Q1の耐圧も20Vある)
  • Q1の寄生ダイオードのためアクセサリー電源ONでサブバッテリーの充電が行われていたが更に電圧アップの充電となる

OR回路の出力電圧を確認をしてボードに追加

IMG_20180822_212201343.jpg

これで完了かな

基板の更新でフロントカバーを外すのにビス止めがあったのを忘れていて無理やり外すことで破壊してしまう寸前だった(注意)

ドン・キホーテPC(ドンキPC)の件

以前「Microsoftは終わったか」でWindows10のアップデートができない件を問題にしたのだが,その対象が「ジブン専用PC&タブレット(ドン・キホーテ)」である

また新しい機能アップデート(5月分かな)ができてなくて使おうとすると(失敗するのに)アップデートが動作し負荷がかかって使い物にならない

そこで,もしかしたらと初期化してみることにした

IMG_20180811_155533319.jpg

結果は・・・

IMG_20180811_155749022.jpg

にっちもさっちもいかない

もう,お蔵入りかなと考えて新しく購入することも模索していたけど,まだ試してない事もあり再度頑張ってみた

色々考えて問題点は判明している

  • アップデートでディスクが不足しているためディスクを空けろと言ってくるのは良いが(出ないこともある)
  • 通常のディスクメンテナンス(ディスクのクリーンアップやシステムファイルのクリーンアップの事)では改善しない
  • 更にCドライブに残っている旧ファイルを手動で削除しても駄目で
  • おそらくアップデートのためのダウンロードファイルが(わざわざ)Cドライブに残っているのだろうと想像するがどこにあるのか不明だった

IMG_20180811_155430869_HDR.jpg

今回は,残しているのか残っているのか不明だがアップデート用のダウンロードファイルがどこに格納されているのか判ったので削除してみたところアップデートを完了することできた

その有りがたいフォルダーは以下

C:\Windows\SoftwareDistribution\Download

自動更新が動作しているため全てを選択して削除すると「使用中」が表示されるが,それをスキップして削除していけば良い

(追加)今度は8月分ができなくて模索中

自動更新を止める

アップデートが正常に行われていないと起動する毎にアップデートを繰り返すことになる

アップデートプログラムはCPU消費は少ないがダウンロードと負荷の大きいディスク操作を延々と繰り返すためPCの性能を落としている

つまりアップデートプログラムを実行しないようにすれば値段相当の使いかたが出来るはずである

尚,アップデートは手動で行えるため自身で解決すればよい(そもそも自動アップデートだと多くの問題が発生してるし手動のほうが好ましいのでは)

自動更新を止める方法は以下を参照(止まらないようなので自動更新の仕組みの参考程度にした方が良い)

Windows10 Homeでアップデートの自動更新を完全に停止/無効化し手動更新にする方法

以下で紹介されているツールを利用した方が確実

Windows 10: Windows Updateの自動更新を無効もしくは手動更新のみにする方法

見解

ドンキPCの一番の問題点はシステムディスクが32GBしか無いということだろう

もし64GBのシステムディスクならば月々のアップデートも問題なく完了していて問題は発生しないのではないだろうか

最近メモリーを2GBから4GBにしたV3を出してきたようだが,メモリーなんかより64GBのシステムディスクにしたほうが良かったのではないかなと思う

16GBのタブレット

この後16GBディスクのタブレットのアップデートに挑戦しているが厳しい状況である

  • 必要ないアプリを徹底的に削除
  • Cドライブを圧縮
  • 3.9GB空ける
  • アップデート用のダウンロードフォルダーをSDカードにマウント
  • USBディスクでドライブ追加でダウンロードドライブ指定

上記のようにしてアップデートのための必要ファイル(ダウンロードファイル)でCドライブの空き(3.9GB空き)を減らないようにしたがアップデートは失敗する

しかたないのでアップデートは諦めて使おうと自動更新を無効化してみたが,何故か無効にしているのにアップデートが開始され使い物にならない

特にシャットダウンで更新中となり電源が切れないのは最悪である

Windows10の32bit版の最低ディスクサイズは16GBだったはずなんだが・・・やはりMicroSoftは終わってる

(追加)16GBタブレットは完全に諦めアップデートしないようにした

アーシングの効果を探る

  • 2018/08/12 11:30
  • カテゴリー:

車用アーシングというチューンがあるが効果を探るため抵抗値を調べてみた(アーシングについてはこちらの説明を参考に)

プロが施工すると効果のあるやり方はあるのだろうが,電気的にみるとつまりはバッテリーのマイナス端子間との抵抗値がどうなのかってことなので,実際に抵抗値を計測してみれば効果を出せるかどうか判断できると考える

早速,簡易低抵抗計で以下の5点を計測してみた

IMG_20180811_111250727.jpg

結果は全部0Ωだったので(この間を)アーシングしても変わらないということになる

IMG_20180811_111524819.jpgIMG_20180811_111600613.jpg

IMG_20180811_111622007.jpgIMG_20180811_111643777.jpg

IMG_20180811_111730972.jpg

今回はここまで

(追加)

この件だけど,ちゃんと考えてみるとバッテリー間の抵抗値は(ほとんど)意味の無い事だ

何故ならば走行中(正確にはエンジン動作中)の電力はオルタネーターから供給されバッテリーは使用しないからである(電圧を見れば理解できる事だ)

なのでアーシングはプラグとオルタネーター間を強化することで効果があることになる

注)ほとんどと記述したのはセルモーター動作で抵抗があるとバッテリーに負担が掛かるため全く意味がないという事ではないため

ユーティリティ

検索

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

新着コメント

Re:ATS-25を作製する
2025/03/23 from kazu
Re:ATS-25を作製する
2025/03/22 from admin
Re:ATS-25を作製する
2025/03/22 from kazu
Re:NOAA受信システム復旧
2025/03/20 from admin
Re:NOAA受信システム復旧
2025/03/16 from とおりすがり

過去ログ

Feed