[Перевод] Автоматический дымоуловитель для пайки, основанный на Arduino
Для этого проекта вам понадобится Arduino UNO Wifi Rev. 2, инфракрасный датчик препятствий KY-032 и одноканальное реле на 5В. Некоторые элементы надо будет напечатать на 3D-принтере. Для сборки готового устройства нужно будет воспользоваться паяльником.
Обзор проекта
Создание разных электронных устройств — это интересное, творческое занятие. Но тому, кто этим занимается, нельзя забывать о безопасности. В частности, в процессе пайки электронных компонентов выделяется дым, который не стоит вдыхать. Простым решением этой проблемы является дымоуловитель для пайки.
Мои проблемы, касающиеся использования дымоуловителя, вызваны моими же ошибками. Например, часто я так погружён в мысли о том, что к чему нужно припаять, или о том, каким будет готовый проект, что попросту забываю включать вентилятор дымоуловителя. А иногда, когда надо, например, перепаять лишь одно соединение или поправить один-два провода, мне просто не хочется тратить время на включение и выключение вентилятора. Может — это от лени? Вполне вероятно, что так оно и есть.
С другой стороны, кто-то может просто включить дымоуловитель в начале работы и всё время держать его работающим. И хотя это решает задачу избавления от вредного дыма, не очень приятным может оказаться шум. Я предпочёл бы в процессе работы слушать музыку, а не шум вентилятора.
Можно ли как-то решить эту проблему? Сделать так, чтобы дымоуловитель включался только тогда, когда он нужен? Да — можно. Её решением является система, автоматически включающая дымоуловитель в нужные моменты и выключающая его тогда, когда он не нужен.
Сборка системы
Мой проект представляет собой устройство, которое автоматически включает вентилятор дымоуловителя каждый раз, когда паяльник вынимают из держателя, и выключает тогда, когда паяльник возвращают на место. При таком подходе мне не приходится заботиться о том, чтобы самостоятельно включать и выключать вентилятор, но при этом я всегда защищён от вредного дыма. Вот как выглядит держатель паяльника с установленным на нём датчиком, ответственным за включение и выключения вентилятора.Самодельная система для включения и выключения дымоуловителя
Сердцем проекта является инфракрасный датчик препятствий KY-032. Такие часто используют в проектах, где нужно обнаруживать препятствия. А я, после экспериментов, выяснил, что этот датчик хорошо показывает себя в деле обнаружения любых объектов, в том числе — паяльника. Этот датчик мы будем использовать для того чтобы узнавать о том, находится или нет перед ним паяльник, то есть — о том, установлен ли паяльник в держатель или нет.
Инфракрасный датчик препятствий KY-032▍Шаг 1: 3D-печать крепления датчика
Сначала я, пользуясь Fusion 360, спроектировал крепление для инфракрасного датчика. Я остановился на размещении датчика перпендикулярно паяльнику, на достаточном расстоянии от него, чтобы жар от паяльника не повредил бы крепление.Крепление датчика
▍Шаг 2: реле и монтажная коробка
На следующем шаге работы я подключил высоковольтный кабель к реле. Если сомневаетесь в своих способностях — не работайте с опасным напряжением и всегда помните о безопасности. Когда датчик обнаруживает то, что паяльник вынут из крепления, на реле поступает сигнал, благодаря которому замыкается соответствующая цепь и на вентилятор дымоуловителя подаётся питание.Реле и монтажная коробка
▍Шаг 3: подключение Arduino
Ниже показана схема проекта, ей я руководствовался, собирая воедино все его компоненты.Схема проекта (оригинал)
Плата Arduino, после подключения, устанавливается в особом отсеке монтажной коробки, защищающем плату от внешних воздействий.
Монтажная коробка с Arduino▍Шаг 4: программирование Arduino
Ниже приведёт код, используемый в моём проекте:
#define ledPin D4
#define sensorPin D1
#define relayPin D2
unsigned long previousMillis = 0;
const long interval = 1000;
int serialAlert = 0;
void setup() {
// тут размещают код для настройки системы, выполняемый однократно:
Serial.begin(9600);
pinMode(ledPin, OUTPUT);
pinMode(sensorPin, INPUT);
pinMode(relayPin, OUTPUT);
}
void loop() {
// тут размещают код, который надо выполнять по много раз:
unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= interval) {
previousMillis = currentMillis;
if (digitalRead(sensorPin) == LOW) {
if (serialAlert == 0) {
Serial.println("Objected Detected");
serialAlert = 1;
}
digitalWrite(ledPin, HIGH);
digitalWrite(relayPin, LOW);
}
else {
if (serialAlert == 1) {
Serial.println("No Objected Detected");
serialAlert = 0;
}
digitalWrite(ledPin, LOW);
digitalWrite(relayPin, HIGH);
}
} // окончание цикла
}
А именно, тут имеется цикл, в котором считываются показания датчика. Если датчик не «видит» объекта — срабатывает реле, включающее вентилятор дымоуловителя. Если датчик фиксирует наличие объекта — вентилятор выключается.
Вот как всё это работает.
Демонстрация работы системы автоматического включения дымоуловителяИтоги
Работать над этим проектом было очень увлекательно. Он функционирует именно так, как мне нужно. Надеюсь, мой рассказ вдохновит кого-нибудь на создание чего-нибудь такого же интересного.
Используете ли вы Arduino в каких-нибудь домашних проектах?