Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

AirOwl: мониторинг качества воздуха в реальном времени для здорового дыхания

Компоненты и материалы

Компонент Количество
Arduino 101 (Genuino 101) 1
Пылевой датчик ZH03A 1
Adafruit Flora RGB NeoPixel LED (набор из 4) 1
Перемычки (набор) 10
Резистор 10 кОм 3

Приложения и сервисы

О проекте

AirOwl — устройство для мониторинга качества воздуха в реальном времени. Оно считывает данные с датчика и выводит их в приложении Blynk через BLE Arduino/Genuino 101. Проект помогает узнать, что мы дышим!

Человеческая деятельность влияет на окружающую среду. Мы решили создать прибор, позволяющий оценивать состояние окружения и принимать меры.

AirOwl: мониторинг качества воздуха в реальном времени для здорового дыхания

Способы индикации качества воздуха

  1. Приложение Blynk (BLE) — графики и числовые значения.
  2. Цвет «глаз» AirOwl (NeoPixel):
    • Зелёный — среда безопасна.
    • Синий — требуется внимание.
    • Красный — опасность.
  3. Serial Monitor — текстовый вывод значений.
AirOwl: мониторинг качества воздуха в реальном времени для здорового дыхания
AirOwl: мониторинг качества воздуха в реальном времени для здорового дыхания
AirOwl: мониторинг качества воздуха в реальном времени для здорового дыхания

Схемы и дизайн

Полные схемы и дизайн: GitHub.

AirOwl: мониторинг качества воздуха в реальном времени для здорового дыхания

Даташит датчика пыли ZH03A: ссылка.

Настройка Blynk

  1. Установите Blynk: Google Play / App Store.
  2. Создайте аккаунт.
  3. New Project → выберите плату, задайте имя.
  4. Нажмите Create — на email придёт Auth Token.
  5. В рабочем пространстве: Add → BLE + 3 Gauge.
  6. Настройте пины Gauge: V1, V2, V3 соответственно.
  7. Нажмите Bluetooth-иконку для подключения (Bluetooth на телефоне должен быть включён).
  8. Запустите проект (Play).
AirOwl: мониторинг качества воздуха в реальном времени для здорового дыхания

Также доступна схема для макетной платы, PCB-схема, board-файл и 3D-модель — всё на GitHub.

Код (C/C++)

/* Copyright (C) 2017 Anith Patel and Sohil Patel. GNU FDL v1.3+ */
#include <BlynkSimpleCurieBLE.h>
#include <CurieBLE.h>

#define BLYNK_SERIAL Print
byte data[24];
unsigned int PM1 = 0, PM25 = 0, PM10 = 0, count = 0;
const int PIN1 = 3, PIN2 = 5, PIN3 = 6;
char auth[] = "Auth key"; // вставьте свой Auth Token от Blynk
BLEPeripheral blePeripheral;

void setup() {
  blePeripheral.setLocalName("Airowl");
  blePeripheral.setDeviceName("Airowl");
  blePeripheral.setAppearance(384);
  Blynk.begin(blePeripheral, auth);
  blePeripheral.begin();
  Serial1.begin(9600);
  Serial.begin(9600);
  pinMode(PIN1, OUTPUT);
  pinMode(PIN2, OUTPUT);
  pinMode(PIN3, OUTPUT);
}

void loop() {
  Blynk.run();
  blePeripheral.poll();

  Serial.println("Concentration of PM1 is:");
  Serial.println(PM1/count);
  Serial.println("Concentration of PM25 is:");
  Serial.println(PM25/count);
  Serial.println("Concentration of PM10 is:");
  Serial.println(PM10/count);
  delay(500);

  WriteData();

  // Логика индикации
  unsigned int avg = (PM1 + PM25 + PM10) / 3;
  if (avg <= 100) LedColor(0, 255, 0);        // Зелёный
  else if (avg <= 300) LedColor(255, 0, 0);   // Красный
  else LedColor(0, 0, 255);                   // Синий
  delay(500);
}

void LedColor(int red, int blue, int green) {
  analogWrite(PIN1, red);
  analogWrite(PIN2, blue);
  analogWrite(PIN3, green);
}

void getWinsenData(void) {
  byte i = 0;
  int checksum = 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 && data[1] == 77) {
          PM1 += ((data[4] * 256) + data[5]);
          PM25 += ((data[6] * 256) + data[7]);
          PM10 += ((data[8] * 256) + data[9]);
          count++;
          Serial1.flush();
          break;
        }
      } else break;
    }
    i++;
    delay(10);
  }
}

void WriteData() {
  getWinsenData();
  Blynk.virtualWrite(V1, PM1/count);
  Blynk.virtualWrite(V2, PM25/count);
  Blynk.virtualWrite(V3, PM10/count);
  delay(1000);
}

Ресурсы

Производственный процесс

  1. Носовые зажимы (Toe Clamps): особенности, выгоды и как выбрать правильный
  2. Предиктивное обслуживание: эффективность и снижение рисков через данные
  3. 7 ключевых React-библиотек, которые должен освоить каждый разработчик
  4. Раскройте истинную стоимость вашего бизнеса: руководство для малых и средних производителей
  5. Кнопки-опоры для приспособлений: назначение, принцип работы и отличия от резьбовых
  6. Двигатели AC и DC: ключевые отличия и как выбрать правильный
  7. Мастерство изготовления ПП: ключевые советы для успешного прототипирования
  8. Финансирование оборудования 101: экономия, снижение рисков, безопасность бизнеса
  9. Основное руководство по погружным моторным насосам: особенности, работа и установка
  10. Центробежные насосы: ключевые особенности, применение и преимущества