GithubHelp home page GithubHelp logo

icingtomato / pico-env-mon Goto Github PK

View Code? Open in Web Editor NEW

This project forked from shapoco/pico-env-mon

0.0 0.0 0.0 2.86 MB

environment monitor

License: MIT License

Shell 1.53% C++ 92.97% Python 2.77% Makefile 1.31% CMake 1.42%

pico-env-mon's Introduction

pico-env-mon

秋月電子で買える部品でできる環境モニタです。

温度、湿度、気圧、CO2濃度を 5秒間隔で取得し、24時間のトレンドグラフとともに表示します。

反射型のディスプレイなので寝室等でも眩しくありません。


作例

3Dプリンタで作ったケースに収めた例です。

作例の写真


使用部品


接続

Pico LS027B4DH01 BME280 MH-Z19C
VBUS VDD, VDDA, EXTMODE Vin
3V3 VDD
GND VSS, VSSA GND GND
GPIO0 (uart0 TX) RX
GPIO1 (uart1 RX) TX
GPIO16 (spi0 RX) SDO
GPIO17 (spi0 CSn) CSB
GPIO18 (spi0 SCLK) SCLK SCK
GPIO19 (spi0 TX) SI SDI
GPIO20 SCS
GPIO21 EXTCOMIN
GPIO22 DISP

接続図


プログラム

バイナリ

  1. Releases から pico_env_mon_x.x.zip をダウンロードし、展開します。
  2. Raspberry Pi Pico の BOOT SELボタンを押しながら USBケーブルを接続し、書き込みモードにします。
  3. pico_env_mon.uf2 を Raspberry Pi Pico に書き込みます。

ソースコードからのビルド

ビルドするには Raspberry Pi Pico SDK が必要です。インストール方法はググってください。Windows の場合は WSL2上にインストールすることをお勧めします。

  1. 本リポジトリを clone して次のコマンドを実行します。

    mkdir build
    cd build
    cmake ..
    make
    • Linux の場合は次のコマンドでもビルドできます。

      make -f Makefile.sample.mk
  2. Raspberry Pi Pico の BOOT SELボタンを押しながら USBケーブルを接続し、書き込みモードにします。

  3. build/pico_env_mon.uf2 を Raspberry Pi Pico に書き込みます。


調整

BME280 の温度

BME280 で取得できる温度の値は湿度と気圧の補正のためのもので、実際の気温より数度程度高くなります。このため、本プロジェクトではデフォルトでは取得した温度から 3.0℃ 減算した値を表示しています。

参考 : 第28回 温湿度・気圧センサ(BME280) 〜仕様概要〜 | ツール・ラボ

実際の気温とどの程度乖離するかはセンサの使用条件によります。ケースに入れたり、BME280 を CO2センサに近接させたりすると乖離が大きくなります。

補正値を変更するには、src/pico_env_mon.cpp の次の箇所を変更してビルドし直してください。

static const float TEMPERATURE_OFFSET = -3.0f;

MH-Z19C のキャリブレーション

MH-Z19C は初期状態では正しい値を示さないケースがあるようです。

屋外に放置して値が 400ppm 付近まで下がらない場合や、人がいる室内なのに 400ppm 付近に張り付いてしまう場合はキャリブレーションを実施してください。

参考 : Home Assistant: ESP32+MH-Z19CでCO2モニター構築(2) [キャリブレーション編] - Sympapaのスマートホーム日記

  1. 本機を屋外や誰もいない風通しの良い場所に 20分間放置します。
  2. 吐息がかからないように息を止めて、Zero Point Calibrationスイッチを 7秒間押下します。

なお、本プロジェクトではオートキャリブレーションは無効化されています。

時間軸のスケール変更

デフォルトでは 24時間分のグラフが表示されます。

スケールを変更するには、src/pico_env_mon.cpp の次の箇所を変更してビルドし直してください。

static const int GRAPH_TIME_RANGE_H = 24;

pico-env-mon's People

Contributors

shapoco avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.