AirOwl-あなたが呼吸するものを知ってください!
コンポーネントと消耗品
> |
| × | 1 | |||
| × | 1 | ||||
| × | 1 | ||||
| × | 10 | ||||
| × | 3 |
アプリとオンラインサービス
> |
| |||
|
このプロジェクトについて
AirOwlは、リアルタイムの空気品質監視デバイスです。空気の質を監視し、センサーからデータを取得し、Arduino / Genuino101のBLEを使用してBlynkアプリに出力を提供するために使用されます。私たちが呼吸するものを知るのに役立つプロジェクトです。
人間の活動は環境に影響を及ぼしています。そこで、周囲の環境を知り、それに応じた対策を講じるのに役立つデバイスを作ることにしました。
下の画像は、arduino101で実行されているAirOwlの画像です。
<図>空気の質は、次の3つの要素から知ることができます。-
1)Blynkアプリ(BLE)
<図>2)Airowlの目の色
<図>目の色が緑の場合、より安全な環境にいます。
目の色が青の場合は注意が必要です。
目の色が赤の場合、危険があります。
3)シリアルモニター
<図>Airowlの回路図と設計については、次のWebサイトをご覧ください。-
https://github.com/anithp/AirOwl_Genuino101
回路図を通過した後、回路を接続します。
プロジェクトの基本的な図を以下に示します。
<図>センサーの詳細については、ダストセンサーのデータセットを以下に示します。
https://goo.gl/17Vgeg
それでは、物作りを始めましょう:-
回路図面から接続した後、コードをアップロードします(必要なライブラリがインストールされていることを前提としています)。
詳細については、以下を参照してください。-http://docs.blynk.cc/
次に、blynkをセットアップしましょう:
プレイストア/アプリストアからの最初のイントールブリンク
Playstore-https://play.google.com/store/apps/details?id =cc.blynk&hl =en
Appstore-https://itunes.apple.com/us/app/blynk-iot-for-arduino-rpi-particle-esp8266/id808760481?mt =8
インストール後、アカウントを作成します。
最初にBlynkで新しいプロジェクトを作成する
<図>次に、ボードを選択し、プロジェクト名を付けます
<図><図>
<図>
ボードを選択したら、[作成]をクリックします。
[作成]を選択すると、登録済みのアカウントに認証キーが送信されます。また、設定からメールを再送信することもできます。
<図>これで、空白の作業スペースが表示されるウィンドウが開きます。
<図>追加ボタンをクリックしてBLEと3ゲージを追加します。
<図><図>
ゲージを選択した後、作業スペースでゲージをクリックし、すべてのゲージに対してそれぞれV1、V2、V3としてピンを選択します。
<図>この最終的な作業スペースを設定すると、
のようになります。 <図>次に、arduino 101を電源に接続したままにし、ワークスペースでBluetoothアイコンを選択してBluetoothを設定します(PS-モバイルのBluetoothをオンに保ちます)。
<図>次に、メインの作業スペースに移動して、プロジェクトのシミュレーションを開始します。
<図>データはブリンクウィンドウに表示されます。
ブレッドボードを使用してこれをプロトタイプ化したい人のために、次の回路図があなたのためです、それがAirowlでのあなたの経験を素晴らしいものにすることができることを願っています。
<図>
データはシリアルモニターでも見ることができます。
<図>PCBの概略図を以下に示します。
<図>ボードファイルを以下に示します。
<図>PCBの3D画像は次のようになります。
<図>この画像のすべてのファイルは、下記のgithubリンクにあります。
https://github.com/anithp/AirOwl_Genuino101
これで、Airowlを使用して、呼吸するものを知ることができます。それが役立つことを願っています。
ありがとう:)
コード
- Air_owl
Air_owl C / C ++
/ * Copyright(C)2017 Anith Patel and SohilPatel。 GNU Free Documentation Licenseバージョン1.3またはフリーソフトウェアファウンデーションによって公開されたそれ以降のバージョンの条件の下で、このドキュメントをコピー、配布、および/または変更する許可が与えられます。不変セクション、表紙テキスト、裏表紙テキストはありません。ライセンスのコピーは、「GNU FreeDocumentationLicense」というタイトルのセクションに含まれています。 * /#include#include #define BLYNK_SERIAL Print // blynkbyteデータのデータの書き込み[24]; //ダストセンサーのデータシートを参照unsignedint PM1 =0; //粒子状物質の値の初期化unsignedint PM25 =0; unsigned int PM10 =0; unsigned int count =0; const int PIN1 =3; const int PIN2 =5; const int PIN3 =6; char auth [] ="Auth鍵"; // BlynkBLEPeripheralの認証キーを貼り付けますblePeripheral; void setup(){blePeripheral.setLocalName( "Airowl"); // blynkのBLEを設定しますblePeripheral.setDeviceName( "Airowl"); blePeripheral.setAppearance(384); Blynk.begin(blePeripheral、auth); blePeripheral.begin(); Serial1.begin(9600); // uart通信の初期化Serial.begin(9600); pinMode(PIN1、OUTPUT); // LEDセットアップpinMode(PIN2、OUTPUT); pinMode(PIN3、OUTPUT);} void loop(){Blynk.run(); // blynk blePeripheral.poll();を呼び出しますSerial.println( "PM1の濃度は次のとおりです:"); //シリアルモニターに出力Serial.println(PM1 / count); Serial.println( "PM25の濃度は次のとおりです:"); Serial.println(PM25 / count); Serial.println( "PM10の濃度は次のとおりです:"); Serial.println(PM10 / count); delay(500); WriteData(); // writedata関数を呼び出しますif((PM1 + PM25 + PM10)/ 3 <=100){LedColor(0、255、0); delay(500); } else if((PM1 + PM25 + PM10)/ 3 <=300 &&(PM1 + PM25 + PM10)/ 3> 100){LedColor(255、0、0); delay(500); } else {LedColor(0、0、255); delay(500); } // LEDデータのロジック} void LedColor(int red、int blue、int green){analogWrite(PIN1、red); analogWrite(PIN2、青); analogWrite(PIN3、緑); } void getWinsenData(void)//センサーからデータを取得するための関数{//このロジックを理解するには、センサーバイトのデータシートを参照してくださいi =0; intチェックサム=0; Serial1.flush(); while(Serial1.available()){data [i] =Serial1.read(); //センサーからシリアルデータを読み取りますif(i <=21)//センサー読み取りデータの条件{checksum + =data [i]; } if(i ==23){if(checksum ==((256 * data [22])+ data [23])){if(data [0] ==66){if(data [1] ==77){if(i ==23){PM1 + =((data [4] * 256)+ data [5]); // PM1のデータを取得して保存しますPM25 + =((data [6] * 256)+ data [7]); //PM2.5のデータを取得して保存しますPM10 + =((data [8] * 256)+ data [9]); // PM10カウントのデータを取得して保存します++; Serial1.flush(); //シリアルデータがブレークを送信するのを待ちます; }}}} else {ブレーク; }} i ++; delay(10); }} void WriteData()//データをblynkに送信する{getWinsenData(); // getWinsendata関数を呼び出しますBlynk.virtualWrite(V1、PM1 / count); //データをBlynkに書き込みますBlynk.virtualWrite(V2、PM25 / count); Blynk.virtualWrite(V3、PM10 / count); delay(1000); }
カスタムパーツとエンクロージャー
AirOwl
https://github.com/IndiaOpenDataAssociation/AirOwl 回路図
AirOwl Genuino 101
https://github.com/anithp/AirOwl_Genuino101製造プロセス