工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

COVID-19およびPM10レベル!

コンポーネントと消耗品

>
Arduino Nano R3
× 1
SDS018
http://inovafitness.com/en/a/chanpinzhongxin/97.html
× 1
AdafruitDHT22温度-湿度センサー+エクストラ
注:プルアップ抵抗とコンデンサはモジュール上にあります。
× 1
OLEDディスプレイ-I2C-SSD1306
× 1
BroadcomLEDグリーン
× 1
BroadcomLEDイエロー
× 1
BroadcomLED赤
× 1
コンデンサ100nF
オプション:DHT22用のコンデンサ。
× 1
スルーホール抵抗、4.7 kohm
オプション:DHT22用の抵抗器。
× 1
パワーバンク
説明を参照してください。
× 1
スルーホール抵抗、390オーム
LED用の抵抗器。
× 3
小ネジ、M3x16
ケースネジ。
× 4
小ネジ、M3x6
SDS018ネジ。
× 1
ランプソケット、LUMEX 3MM LED
オプション:LED取り付けハードウェア。
× 3
ワイヤー用メスジャンパー
× 3
熱収縮チューブ
× 1
ピンヘッダー(2ピン)
× 1
汎用ジャンパー(0.1 ")
× 1

必要なツールとマシン

>
はんだごて(汎用)
はんだワイヤー、鉛フリー
3Dプリンター(汎用)
ホットグルーガン(汎用)
ドリル/ドライバー、コードレス

アプリとオンラインサービス

>
Arduino IDE

このプロジェクトについて

要約

実験的研究は、粒子状物質がCOVID-19のウイルス感染を拡大するための「キャリア」として機能する可能性を主張します。

これは、ウイルスが空気中に浮遊する微粒子によって長距離にわたって運ばれる可能性があり、小さな粒子で数時間、数日、さらには数週間も生存し続ける可能性があることを意味します。したがって、大気汚染粒子は、コロナウイルスがさらに空中を移動するのを助け、感染者の数を増やす可能性があります。

イタリア北部では、粒子状物質は工場や自動車以外の集約的な畜産農場でも大量に取得されているため、封鎖によって粒子状物質が大幅に減少することはありませんでした。そのため、封鎖中に工場が閉鎖され、車が循環しなかったとしても、ロンバルディア(イタリア)の粒子状物質濃度レベルは、その領土にある集約的な畜産農場が肥料を生産し続けたため、いずれにせよ高いままでした。空気、そしてとりわけ粒子状物質。

科学者や研究者は、粒子汚染のレベルが高いほど、北イタリアの一部での感染率が高いことを説明できると示唆しています。

はじめに

数週間前、私は「レポート」と呼ばれるイタリアのテレビ番組を見ました。イタリアのテレビがチャンネル3(RAI 3)で放送している調査番組です。

興味深い作品が私の注意を引きました…それは汚染についてであり、特に集約的な畜産によって引き起こされたある種の汚染についてでした。 (対応する部分を表示するには、ここをクリックしてください:27:25分から56:00分まで)

集約的家畜とは、多数の動物(牛、豚、七面鳥、鶏など)が比較的小さなスペースにまとめられている農業システムを指します。目的は、可能な限り低いコストで大量の肉、卵、または牛乳を生産することです。それらは「工場畜産」としても知られています。

過密な工場スタイルの農場で飼育された動物は、尿や糞尿などの動物の排泄物を大量に生成します。肥料は通常、いくつかのサッカー場と同じくらいの大きさの巨大な屋外の池に保管されます。これらの池は、漏れや流出、土壌の汚染、給水汚染の傾向があります。動物廃棄物はまた、有害ガス(アンモニア、エンドトキシン、硫化水素、メタンなど)を大気中に放出し、大量の粒子状物質(PM10およびPM2.5、PM10は「直径≤10µmの粒子状物質」の略語)を放出します。 PM2.5は「直径≤2.5µmの粒子状物質」の略語であり、環境問題を引き起こします。粒子状物質には、吸入して深刻な健康問題を引き起こす可能性があるほど小さい微細な固体または液滴が含まれています。

セスプールが容量に達すると、農民は未処理の肥料を肥料として周囲の畑に噴霧し、これらの有害物質のさらに多くを空気中にもたらします。

未処理の廃棄物は臭気で空気を汚染し(悪臭は耐えられない可能性があります)、健康上の問題を引き起こし、労働者、近隣および近隣のコミュニティの生活の質と資産価値を著しく低下させます。研究によると、集約的な畜産農場の近くに住む人々は、喘息や慢性気管支炎などの呼吸器系の問題を発症するリスクがはるかに高いことが示されています。

イタリアでは、最も集約的な畜産農場は国の北部にあります。ロンバルディアは、集約的な畜産農場が最も集中している地域の1つです。その結果、畜産施設で発生する排泄物や動物の排泄物の量は非常に多く、大量のガスや粒子状物質を生成します。

ロンバルディアでは、大気中に分散しているアンモニアの85%が肥料によって生成されていることに注意してください。農場は、自動車と同じように汚染しているように見えます。

イタリアのいくつかの大学の研究者によって実施され、昨年3月に「粒子状物質(PM)汚染とイタリアで蔓延したCOVID-19感染との潜在的な関係の評価」というタイトルで公開された研究 」(次のリンクでポジションペーパーをダウンロードできます:https://www.simaonlus.it/?page_id =694、英語のpdfへの直接リンクhttp://www.simaonlus.it/wpsima/wp- content / uploads / 2020/03 / COVID_19_position-paper_ENG.pdf-読むことをお勧めします!)粒子状物質の濃度レベルとCOVID-19に感染した人の数との相関関係について説明しています(次の図を参照)。 。

<図>

研究者は次のデータを収集して分析しました:

  • PM10の1日の濃度レベル(地域環境保護庁(ARPA)から提供され、イタリア全土で収集されたデータ)
  • 毎日のPM10制限値の超過;
  • 選択された各州のCOVID-19感染者の数。市民保護によって伝達され、毎日更新されます。

そして、研究のタイムラプス(2020年2月10日から29日)の間に、毎日のPM10の超過とCOVID-19感染の拡大との間に有意な関係があり、コロナウイルスの症例が高濃度であることに気づきました。 北部 イタリア、特にポー平原、特にロンバルディアでは、南イタリアでは、北部地域で観察されたものと比較した場合、ウイルスの拡散と致死率が大幅に低くなりました。

このポジションペーパーでは、「COVID-19の症例とPM10レベルとの直接的な関係の仮説は、ポー平原でCOVID-19の発生が集中しているという証拠によって強化されています」と読むことができます。 [北部 イタリア] はイタリアの他の地域よりも高かった 」(次の図からわかるように、2月10日から2月29日の期間にイタリアで登録されたPM10汚染制限の超過を示し、ポー平原がイタリアで最も汚染された地域であることに注意できます)。

<図>

イタリアのコロナウイルスの症例のほとんどがロンバルディアにあることは非常に注目に値します。ロンバルディアでは、集約的な畜産農場の集中度が非常に高く、その結果、粒子状物質の生成が膨大になります。

この現象は、工場が完全に閉鎖され、車が循環していなかった封鎖中も続いたことに注意する必要があります。

この研究によると、イタリアの南部地域(汚染が少ない)では、ウイルス感染の一般的なパターンは、人と人との接触によって発生します(典型的な感染モード「人から人への接触」に基づく流行モデルと一致します)。一方、北イタリアの地域(より汚染されている)では、感染は別の方法で広がります。つまり、キャリアエージェント(大気中に浮遊する粒子状物質によって表される)によって広がります。

次の感染拡大曲線は、イタリア中部および南部と比較した、COVID-19感染拡大における北イタリアの異常を強調しています。

<図>

収集されたデータと観察された関係に基づいて、研究者は、2020年2月10日から29日の期間中に、特定の北イタリア地域で登録された高いPM10濃度レベルがキャリアを持ち、 COVID-19の流行が猛威を振るい、曝露された人々の間でCOVID-19の拡散を促進しました。この現象は、同じ時期に汚染の影響を受けた他のイタリアの地域では観察されませんでした。

他の研究では、PMがウイルスのキャリアとして機能することが示されています。実際、ウイルスは粒子状物質に付着する可能性があり、その小さな粒子は気流に乗って長距離を移動し、数時間、数日、さらには数週間も大気中にとどまる可能性があります。

粒子状物質はまた、ウイルスがしばらくの間(数時間または数日)大気中に活動し続けることを可能にする基質を表します。環境要因は、大気中のウイルスの活性化と持続に重要な役割を果たします:

  • 高温と日射は非活動を加速します;
  • 相対湿度が高いと、拡散速度が促進される可能性があります。

ある調査によると、相対湿度が約50%に維持されると、表面でのウイルスの生存率が低下しますが、相対湿度の値が40%未満および60%を超えると、ウイルスは活動を続けます。

イェール大学の別の研究では、低湿度条件によって感染した粒子がよりよく広がり、より長く生き残ることができることが示されています(記事を表示するにはここをクリックしてください)。

私の解決策

これらの考察に基づいて、PM10の濃度レベル、温度、相対湿度(ウイルス感染の広がりに関与する環境要因)を測定できる、複製可能で低コストで使いやすいデバイスを作成して、これらの場合に人々に警告することを考えました。値が高すぎて健康に危険を及ぼす可能性があるため、人と人との距離が1をはるかに超えている場合でも、家にいて外出しないか、外にいる場合は家に帰るか、マスクを着用するかを選択できます。メーター。

このデバイスは、PM10センサー、温度および相対湿度センサー、ディスプレイ、および3つのLEDで構成され、すべてArduinoNanoによって制御されます。センサーデータがディスプレイに表示され、LEDが空気の状況を示します。

<図>

私は4つの異なる状況を特定しました:

1. 通常 –粒子状物質の濃度は0〜25 µg / m3、湿度は40%〜60%です。

2. -0〜25 µg / m3の粒子状物質濃度、湿度<40%または> 60%;

3. -粒子状物質の濃度は26〜50 µg / m3、湿度は40%〜60%です。

4. 警告 -粒子状物質の濃度は26〜50 µg / m3で、湿度は40%未満または60%超です。

5. 警告 -粒子状物質の濃度> 51 µg / m3、湿度40%〜60%;

6. アラーム -粒子状物質の濃度> 51 µg / m3および湿度<40%または> 60%。

関連するLED:

  • 通常:LEDはオフです;
  • 低:緑色のLEDが点灯;
  • 警告:緑色と黄色のLEDが点灯します;
  • アラーム:緑、黄、赤のLEDが点灯します。
<図>

<図> <図> <図>

SDS018-PM10センサー

SDS018は、レーザー散乱の原理を利用して、空気中の粒子濃度を0.3〜10μmにすることができます。デジタル出力と内蔵ファンにより、安定性と信頼性があります。

  • 正確で信頼性の高い:レーザー検出、安定性、優れた一貫性;
  • 迅速な対応:シーンが変化したときの応答時間は10秒未満です。
  • 簡単な統合:UART出力(またはIO出力をカスタマイズ可能)、ファン内蔵;
  • 高解像度:0.3μg/ m3の解像度;
  • 認証:製品はCE / FCC / RoHS認証に合格しています。
<図>

SDS018 センサーのピン配置:

  • 1-NC:接続しない;
  • 2-1um:PWM出力;
  • 3-5V:電源;
  • 4-2.5um:PWM出力;
  • 5-GND:アース、負極に接続;
  • 6-R:UARTのRX(TTL);
  • 7-T:UARTのTX(TTL)。
<図>

SDS018センサーのArduinoNanoへの接続

<図>
  • SDS018センサーの5V(3)ピンはArduinoNanoの5Vピンに接続されています;
  • SDS018センサーのGND(5)ピンはArduinoNanoのGNDピンに接続されています;
  • SDS018センサーのT(7)ピンはArduinoNanoのRXピンに接続されています;

DHT22センサー

DHT22は、デジタル温度および相対湿度センサーです。主な機能は次のとおりです。

  • 3〜5Vの電源とI / O;
  • 変換中(データの要求中)の最大電流使用量2.5mA
  • 2〜5%の精度で0〜100%の湿度測定値;
  • -40〜80°Cの温度測定値±0.5°Cの精度;
  • 0.5 Hzのサンプリングレート(2秒に1回)。
<図>

DHT22センサーのピン配列:

  • VDD:電源;
  • データ:信号データ出力;
  • NC:接続されていません;
  • GND:アース、負極に接続します。

DHT22センサーのArduinoNanoへの接続

<図>
  • DHT22センサーのVDDピンはArduinoNanoの5Vピンに接続されています;
  • DHT22センサーのGNDピンはArduinoNanoのGNDピンに接続されています;
  • DHT22センサーのVDDピンとGNDピンの間に100nFのコンデンサを挿入しました。
  • DHT22センサーのDATAピンとVCCピンの間に、4.7kのプルアップ抵抗を挿入しました。
  • DHT22センサーのDATAピンは、ArduinoNanoのD2ピンに接続されています。

Arduino IDE

AdafruitによるDHTセンサーライブラリをインストールしました-バージョン1.3.10

ドットマトリックスOLEDディスプレイ

  • VCC:3.3-5V;
  • 解像度:128x32ピクセル;
  • 白い文字で黒い背景;
  • ドライバー:SSD1306;
  • インターフェース:I2C。
<図>

OLED I2Cディスプレイのピン配列:

  • SDA:I2Cシリアルデータ;
  • SCL:I2Cシリアルクロック;
  • VCC:電源;
  • GND:アース、負極に接続。

OLEDI2CディスプレイのArduinoNanoへの接続

<図>
  • ディスプレイのVCCピンはArduinoNanoの5Vピンに接続されています;
  • ディスプレイのGNDピンはArduinoNanoのGNDピンに接続されています;
  • ディスプレイのSCLピンはArduinoNanoのA5ピンに接続されています;
  • ディスプレイのSDAピンはArduinoNanoのA4ピンに接続されています。

Arduino IDE

AdafruitによるAdafruitSSD1306ライブラリをインストールしました-バージョン2.2.1

LED接続

赤、緑、黄色の3つの3mmLEDを使用しました。

<図>
  • 赤色LEDのアノードはArduinoNanoのD3ピンに接続されています;
  • 緑色のLEDのアノードは、ArduinoNanoのD4ピンに接続されています。
  • 黄色のLEDのアノードは、ArduinoNanoのD5ピンに接続されています。
  • 各LEDのカソードに390オームの抵抗を直列にはんだ付けし、抵抗のもう一方のピンをArduinoNanoのGNDに接続しました。

Arduinonano-ハードウェアの変更

SDS018のシリアル出力を読み取るために、ArduinoNanoを変更しました。

次の図に赤い矢印で示されているSMD抵抗器を取り外しました。

<図>

SMD抵抗器を垂直にはんだ付けしてから、2本のワイヤーを抵抗器にはんだ付けしました。ワイヤーの端にピンヘッダーをはんだ付けしました。

<図>

Arduino Nanoをプログラムした場合にのみ、ピンヘッダーにジャンパーを挿入しました。このように、ジャンパーが取り外されると、Arduino NanoはSDS018センサーからデータを読み取ると同時に、ArduinoIDEシリアルモニターにデータを送信できます。

または、もっと簡単に言えば、Arduino Nanoボードをプログラミングした後、抵抗を完全に取り外すことができますが、この方法では、ArduinoNanoボードを再プログラミングすることはできなくなります。

電源

Arduino Nanoは、2つの異なる方法で電力を供給できます。

  • USB;
  • Vinピン(およびGNDピン):7-12V。
<図>

パワーバンクを介してUSB経由でボードに電力を供給しました。

ケースと組み立て

センサー、ディスプレイ、LED、Arduino Nanoを固定するために、オレンジ色のPLAケースを3Dでデザインして印刷しました。ケースは2つの部分で構成されています。下部はArduinoNanoとSDS018が固定されています。上部にはDHT22、ディスプレイ、LEDが固定されています。下部にはMini-BUSBケーブル用の開口部があります。上部には3つのLEDが出てくる3つの穴があります。必要に応じて、LED取り付けハードウェアを使用してLEDを固定できます(穴を最大5mmまで拡大するだけです)。

ここに添付されているのは、ケースの2つの部分を3Dで印刷するために必要な2つのファイルです。

<図> <図> <図> <図>

ホットグルーを使用して、Arduino Nano、ディスプレイ、およびケース内のDHT22を固定しました。

<図> <図> <図> <図> <図> <図> <図> <図> <図> <図> <図> <図> <図>

図1-LEDを抵抗器ではんだ付けし、ケースの上部に取り付けました。

図2-各抵抗器と各ワイヤに熱収縮チューブを挿入しました。

図3 / 4-DHT22センサーモジュールをホットグルーで固定しました;

図5-ホットグルーでディスプレイモジュールを固定しました;

図6-すべてのワイヤーをArduinoNanoボードにはんだ付けしました;

図7-ArduinoNanoボードをホットグルーで固定しました;

図8-すべてのプラス線(赤)をはんだ付けし、熱収縮チューブを挿入しました。すべてのマイナス線(黒)をはんだ付けし、熱収縮チューブを挿入しました。

図9-赤と黒のワイヤーをキラキラのホットグルーで固定しました(透明なワイヤーを仕上げました:))

図10-SDS018センサーモジュールを接続するために、各ワイヤーに3つのメスジャンパーをはんだ付けしました。

図11-各メスジャンパーに熱収縮チューブを挿入し、SDS018センサーモジュールに挿入しました。

図12-SDS018センサーモジュールを小ネジM3x6でケースの下部に取り付けました;

図13-4本の小ネジM3x16でケースを閉じました。

ファームウェア

ファームウェアは Arduinoスケッチです 。次の図に、簡略化されたフローチャートを示します。

<図>

起動時に周辺機器のセットアップが実行され、LEDがチェックされます。

メインループ:

  • 最初のループ(起動)でのみ2秒の遅延があります;
  • DHT22センサーが読み取られます;
  • 温度と相対湿度はArduinoIDEシリアルモニターに送信されます(下の図を参照)。
  • SDS018センサーが読み取られます;
  • PM2.5とPM10はArduinoIDEシリアルモニターに送信されます(下の図を参照)。
  • 粒子状物質の濃度が0〜25 µg / m3で、湿度が40%〜60%の場合(通常のアラーム状態)、すべてのLEDが消灯します。
  • 粒子状物質の濃度が0〜25 µg / m3で湿度が<40%または> 60%の場合、または粒子状物質の濃度が26〜50 µg / m3で湿度が40%〜60%の場合(簡略化するためコード条件を分離しました)-低アラーム状態-その後、緑色のLEDのみがオンになります;
  • 粒子状物質の濃度が26〜50 µg / m3で、湿度が40%未満または60%を超える場合、または粒子状物質の濃度が51 µg / m3を超え、湿度が40%〜60%の場合(コードIを簡略化するため) have separated the conditions) - Warning alarm state -, then green and yellow LEDs get ON;
  • If particulate matter concentrations are> 51 µg/m3 and humidity is <40% or> 60% - Alarm state -, then all LEDs get ON;
  • If switchDisplay flag variable is equal to zero, then PM10 and humidity are visualized on display, otherwise are visualized PM2.5 and temperature in degrees Celsius; if there is an alarm state, instead of displaying PM10, it is visualized the word "Alarm!!!".

At the end of the loop I have inserted a 2 second-delay.

<図>

That's all!

If you have any questions or suggestions don't hesitate to leave a comment below. Thank you!


コード

  • COVID-19 and PM10 levels! - Code
COVID-19 and PM10 levels! - CodeArduino
The firmware is an Arduino sketch.
#include #define SCREEN_WIDTH 128 // OLED display width, in pixels#define SCREEN_HEIGHT 32 // OLED display height, in pixels// Declaration for an SSD1306 display connected to I2C (SDA, SCL pins)#define OLED_RESET 4 // Reset pin # (or -1 if sharing Arduino reset pin)Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);#include "DHT.h"#define DHTPIN 2 // Digital pin connected to the DHT sensor #define DHTTYPE DHT22 // DHT22 (AM2302)DHT dht(DHTPIN, DHTTYPE);int startdhr22 =0; // Startup flag variable:waiting for the first measurement of DHT22int switchDisplay =0; // Flag variable for switch data on the displayconst int ledRed =3; // Number of Red LED pinconst int ledGreen =4; // Number of Green LED pinconst int ledYellow =5; // Number of Yellow LED pinvoid setup() { pinMode(LED_BUILTIN, OUTPUT); // On-board LED - initialize digital pin LED_BUILTIN as an output pinMode(ledRed, OUTPUT); // Initialize digital pin as an output pinMode(ledGreen, OUTPUT); // Initialize digital pin as an output pinMode(ledYellow, OUTPUT); // Initialize digital pin as an output dht.begin(); Serial.begin(9600); Serial.println("start"); // SSD1306_SWITCHCAPVCC =generate display voltage from 3.3V internally if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { // Address 0x3C for 128x32 Serial.println(F("SSD1306 allocation failed")); for(;;); // Do not proceed, loop forever } display.clearDisplay(); // Clear the buffer display.setTextSize(2); // Draw 2X-scale text display.setTextColor(SSD1306_WHITE); // Startup:LEDs Test digitalWrite(ledGreen, HIGH); // Turn the LED ON delay(500); // Wait for 0,5 secondS digitalWrite(ledYellow, HIGH); // Turn the LED ON delay(500); // Wait for 0,5 secondS digitalWrite(ledRed, HIGH); // Turn the LED ON delay(500); // Wait for 0,5 secondS digitalWrite(ledGreen, LOW); // Turn the LED OFF digitalWrite(ledYellow, LOW); // Turn the LED OFF digitalWrite(ledRed, LOW); // Turn the LED OFF delay(500); // Wait for 0,5 secondS}void loop() { // ########################################################################### // DHT22 // 0.5 Hz sampling rate (once every 2 seconds). // ########################################################################### if(0 ==startdhr22) { delay(2000); // Startup:waiting for the first measurement of DHT22 startdhr22 =1; } float h =dht.readHumidity(); float t =dht.readTemperature(); // Read temperature as Celsius (default) // Check if any reads failed and exit early (to try again). if (isnan(h) || isnan(t)) { Serial.println(F("Failed to read from DHT sensor!"));戻る; } Serial.print(F("Humidity:")); Serial.print(h); Serial.print(F("% Temperature:")); Serial.print(t); Serial.println(F("°C ")); // ########################################################################### // SDS018 // ########################################################################### uint8_t dataIN[10] ={0}; // Data array from SDS018 float pm25; float pm10; while(Serial.available()> 0) { for(int i=0; i<10; ++i) { // loop for acquire 10 bytes dataIN[i] =Serial.read(); // Save data in to dataIN array // Serial.println(dataIN[i], HEX); // Test:Prints data to the serial port (print as an ASCII-encoded hexadecimal) } if((0xAA ==dataIN[0]) &&(0xC0 ==dataIN[1]) &&(0xAB ==dataIN[9])) { // check if array contains dataIN[0]=0xAA and dataIN[1]=0xC0 and dataIN[1]=0xAB uint8_t cksum =0; for(int i=2; i<=7; ++i) { cksum +=dataIN[i]; // Calculation of check-sum } //Serial.print("check-sum:"); // Test:Serial monitor //Serial.println(cksum, HEX); if(cksum ==dataIN[8]) { digitalWrite(LED_BUILTIN, HIGH); // Turn the LED on (HIGH is the voltage level) uint8_t pm25Lo =dataIN[2]; // PM2.5 low byte uint8_t pm25Hi =dataIN[3]; // PM2.5 high byte uint8_t pm10Lo =dataIN[4]; // PM10 low byte uint8_t pm10Hi =dataIN[5]; // PM10 high byte pm25 =((pm25Hi * 256.0) + pm25Lo)/10.0; // Calculation of PM2.5 value pm10 =((pm10Hi * 256.0) + pm10Lo)/10.0; // Calculation of PM10 value Serial.print("PM2.5:"); // Serial monitor Serial.print(pm25); Serial.println(" ug/m3"); Serial.print("PM10:"); Serial.print(pm10); Serial.println(" ug/m3"); } Serial.println("-----------------"); } Serial.flush(); } // ########################################################################### // LEDs // ########################################################################### if((pm10 <=25) &&((h>=40) &&(h <=60))) // Normal – Particulate matter concentrations from 0 to 25 µg/m3 and humidity between 40% and 60%; { digitalWrite(ledGreen, LOW); // Turn the LED OFF digitalWrite(ledYellow, LOW); // Turn the LED OFF digitalWrite(ledRed, LOW); // Turn the LED OFF } else if((pm10 <=25) &&((h <40) || (h> 60))) // Low - Particulate matter concentrations from 0 to 25 µg/m3 and humidity <40% o> 60%; { digitalWrite(ledGreen, HIGH); // Turn the LED ON digitalWrite(ledYellow, LOW); // Turn the LED OFF digitalWrite(ledRed, LOW); // Turn the LED OFF } else if(((pm10> 25) &&(pm10 <=50)) &&((h>=40) &&(h <=60))) // Low - Particulate matter concentrations from 26 to 50 µg/m3 and humidity between 40% and 60%; { digitalWrite(ledGreen, HIGH); // Turn the LED ON digitalWrite(ledYellow, LOW); // Turn the LED OFF digitalWrite(ledRed, LOW); // Turn the LED OFF } else if(((pm10> 25) &&(pm10 <=50)) &&((h <40) || (h> 60))) // Warning - Particulate matter concentrations from 26 to 50 µg/m3 and humidity <40% o> 60%; { digitalWrite(ledGreen, HIGH); // Turn the LED ON digitalWrite(ledYellow, HIGH); // Turn the LED ON digitalWrite(ledRed, LOW); // Turn the LED OFF } else if((pm10> 50) &&((h>=40) &&(h <=60))) // Warning - Particulate matter concentrations> 51 µg/m3 and humidity between 40% and 60%; { digitalWrite(ledGreen, HIGH); // Turn the LED ON digitalWrite(ledYellow, HIGH); // Turn the LED ON digitalWrite(ledRed, LOW); // Turn the LED OFF } else // Alarm - Particulate matter concentrations> 51 µg/m3 and humidity <40% or> 60%. { digitalWrite(ledGreen, HIGH); // Turn the LED ON digitalWrite(ledYellow, HIGH); // Turn the LED ON digitalWrite(ledRed, HIGH); // Turn the LED ON } // ########################################################################### // Display // ########################################################################### if(0 ==switchDisplay) { display.clearDisplay(); display.setTextColor(SSD1306_WHITE); display.setCursor(0,0); // Set the cursor position (Width, Height) if(pm10> 50) // Visualize the word "Alarm" on display { display.print("Alarm!!!"); } else // Visualize the PM10 value on display { display.print("PM10:"); display.println(pm10); } display.print(" HR%:"); // Visualize the humidity value on display display.println(h); display.display(); switchDisplay =1; } else { display.clearDisplay(); display.setTextColor(SSD1306_BLACK, SSD1306_WHITE); // Draw 'inverse' text display.setCursor(0,0); // Set the cursor position (Width, Height) display.print("PM25:"); // Visualize the PM2.5 value on display display.println(pm25); display.print("T[C]:"); // Visualize the temperature value on display display.println(t); display.display(); switchDisplay =0; } delay(500); // Delay of 500ms digitalWrite(LED_BUILTIN, LOW); // TEST:turn the LED_BUILTIN OFF delay(1500); // Delay of 1500ms}

Custom parts and enclosures

Case - upper part
File of the 3D upper part of orange PLA case

https://sketchfab.com/3d-models/case-upper-part-c6843c6613f84805a39e1a9384dd5e56

Case - lower part
File of the 3D lower part of orange PLA case

https://sketchfab.com/3d-models/case-lower-part-covid-19-and-pm10-levels-9d4d2ef93e644065b627c5562c5cde1f

回路図

Electrical schematic of COVID-19 and PM10 levels!

製造プロセス

  1. COVID-19中のプラスチック食品包装と持続可能性
  2. COVID-19がプラスチックの自動化をどのように変えたか(そして変えなかったか)
  3. COVID-19と第二次世界大戦後の経済の死
  4. COVID-19がブロックチェーンと暗号通貨にどのように影響しているか
  5. COVID-19と年次荷送人RFPの終了
  6. WayfairとCOVID-19:免税販売者への影響
  7. COVID-19をきっかけに再スキルと再訓練
  8. コロナウイルス(COVID-19)の情報とリソース
  9. 新しい研究:作業と自動化の将来に対するCOVID-19の影響
  10. 材料はCOVID-19を迅速かつ正確に検出します
  11. 自動化と製造におけるCOVID-19の影響