Автоматическая система включения системы фильтрации воздуха в мастерской при звуках пилы


Используя контроллер Arduino, микрофон и твёрдотельное реле можно собрать устройство, которое услышав громкий звук работы циркулярной пилы — автоматически включит систему фильтрации воздуха (для удаления древестной пыли).

Система AudioBot работает очень просто: используя микрофон (в виде модуля детектирования звука), она реагирует на громкий шум (который указывает на включение пилы) и через твёрдотельное реле (Single Phase DC 3-32V to AC 24-380VAC SSR-40DA 40A Solid State Relay Module), включит систему фильтрации воздуха (на два часа), чтобы очистить воздух от пыли.

Программа (скетч) для Arduino

#include <Wire.h>
#include <LiquidCrystal_PCF8574.h>

LiquidCrystal_PCF8574 lcd(0x27); // set the LCD address to 0x27 for a 16 chars and 2 line display

int relayPin = 2; //fan relay control
int sensorPin = 3; //sound sensor
int onPin = 4; //on button
int offPin = 5; //off button
int ledPin = 13; //onboard led
boolean val = 0;
int show;
int hours = 0; // start hours
int minutes = 0; //start min
int seconds = 30; //start seconds

void setup()
{
  Serial.begin (9600);
  pinMode(relayPin, OUTPUT);
  pinMode(sensorPin, INPUT);
  pinMode(onPin, INPUT);
  pinMode(offPin, INPUT);
  pinMode(ledPin, OUTPUT);
  digitalWrite(relayPin, LOW); //relay off
  digitalWrite(sensorPin, LOW); //microphone
  digitalWrite(onPin, HIGH); //on button
  digitalWrite(offPin, HIGH); //off button

  int error;

  Wire.begin();
  Wire.beginTransmission(0x27); //Your LCD Address
  error = Wire.endTransmission();

  if (error == 0) {
    Serial.println(": LCD found.");
  } else {
    Serial.println(": LCD not found.");
  }
  lcd.begin(16, 2); // initialize the lcd
  show = 0;
} // setup()

void loop()
{
  //microphone sound detection
  val = digitalRead(sensorPin);
  if (val == HIGH) //sound detected
  {
    hours = 2;
    minutes = 0;
    seconds = 0;
  }
  else //silence
  {
  }

  //button on
  val = digitalRead(onPin);
  if (val == LOW) //button pushed
  {
    hours += 1;
  }
  else //no push
  {
  }

  //button off
  val = digitalRead(offPin);
  if (val == HIGH) //button pushed
  {
    hours = 0; //stop time
    minutes = 0; //stop time
    seconds = 0; //stop time
  }
  else //no push
  {
  }

  //time countdown
  if (seconds > 0)
  {
    seconds -= 1;
  }
  else
  {
    if (minutes > 0) {
      seconds = 59;
      minutes -= 1;
    }
    else
    {
      if (hours > 0)
      {
        seconds = 59;
        minutes = 59;
        hours -= 1;
      }
    }
  }
  //fan power
  if (hours + minutes + seconds > 0)
  {
    digitalWrite(relayPin, HIGH); //turn the fan on
    lcd.setBacklight(200);
    lcd.clear();
    lcd.setCursor(0, 0);
    if ( (seconds % 2) == 0)
    {
      lcd.print("FANBOY ACTIVE *");
      digitalWrite(ledPin, HIGH); //led on
    }
    else
    {
      lcd.print("FANBOY ACTIVE * ");
      digitalWrite(ledPin, LOW); //led off
    }
    lcd.setCursor(0, 1);
    lcd.print(" H:");
    lcd.print(hours);
    lcd.print(" M:");
    lcd.print(minutes);
    lcd.print(" S:");
    lcd.print(seconds);
  }
  else
  {
    digitalWrite(relayPin, LOW); //turn the fan off
    lcd.clear();
    lcd.setBacklight(0);
  }

  delay(1000);

  //Serial.print("Hours: ");
  //Serial.print(hours);
  //Serial.print(" Minutes: ");
  //Serial.print(minutes);
  //Serial.print(" Seconds: ");
  //Serial.print(seconds);
  //Serial.print(" OnPin: ");
  //Serial.print(val = digitalRead(onPin));
  //Serial.print(" OffPin: ");
  //Serial.println(val = digitalRead(offPin));

} // loop()

Ссылки
The AudioBot system

По теме
Обжарка кофейных зёрен при помощи Arduino
Автоматизация стола IKEA SKARSTA при помощи Arduino
Автоматизация токарного станка при помощи Arduino
Система уведомления о готовности кофе на Arduino
Станок для нарезки кабеля на базе Arduino

Arduino
Ардуино что это и зачем?
Arduino, термины, начало работы
КМБ для начинающих ардуинщиков
Состав стартера (точка входа для начинающих ардуинщиков)


Добавить комментарий

Arduino

Что такое Arduino?
Зачем мне Arduino?
Начало работы с Arduino
Для начинающих ардуинщиков
Радиодетали (точка входа для начинающих ардуинщиков)
Первые шаги с Arduino

Разделы

  1. Преимуществ нет, за исключением читабельности: тип bool обычно имеет размер 1 байт, как и uint8_t. Думаю, компилятор в обоих случаях…

  2. Добрый день! Я недавно начал изучать программирование под STM32 и ваши уроки просто бесценны! Хотел узнать зачем использовать переменную типа…

3D-печать AI Arduino Bluetooth CraftDuino DIY Google IDE iRobot Kinect LEGO OpenCV Open Source Python Raspberry Pi RoboCraft ROS swarm ИК автоматизация андроид балансировать бионика версия видео военный датчик дрон интерфейс камера кибервесна манипулятор машинное обучение наше нейронная сеть подводный пылесос работа распознавание робот робототехника светодиод сервомашинка собака управление ходить шаг за шагом шаговый двигатель шилд юмор

OpenCV
Робототехника
Будущее за бионическими роботами?
Нейронная сеть - введение