- Arduino uno
- Видео, демонстрирующее работу проекта
- Выбор режима питания нагревателя
- Датчик газа mq-135
- Для arduino урока нам понабиться:
- Исходный код программы (скетча)
- Макетная плата
- Модуль oled дисплея (0.96’ oled display module)
- Необходимые компоненты
- Подключение датчика co2 модели mh-z19b с помощью аналогового выхода vo
- Подключение и настройка
- Пример кода mq135 для arduino.
- Простейший измеритель co2 за 2000 рублей и полчаса
- Скетч
- Скетч для считывания показаний датчика
- Собираем анализатор co2 на базе arduino uno
- Схема подключения mq135 к arduino.
- Схема проекта
- Управляем вентиляцией с помощью детектора углекислого газа mt8057
- Вывод по работе с датчика mq135.
Arduino uno
Я не буду подробно останавливаться на том, какие бывают Arduino Uno (оригинальные, китайские поделки, разные ревизии т.д.), а также подробным образом расписывать технические характеристики. Скажу только, что у меня китайская Arduino Uno, которая выглядит примерно так как на рисунке:
На платформе расположены 14 контактов (pins), которые могут быть использованы для цифрового ввода и вывода и 6 аналоговых (A0-A5). Какую роль исполняет каждый контакт — зависит от вашей программы. Все они работают с напряжением 5 В и рассчитаны на ток до 40 мА. Также каждый контакт имеет встроенный, но отключённый по умолчанию резистор на 20–50 кОм.
Теперь, показав вкратце, что и как выглядит и из чего состоит, можно попробовать собрать наш первый анализатор CO2 и посмотреть его в работе.
Видео, демонстрирующее работу проекта
733 просмотров
Выбор режима питания нагревателя
В сенсоре предусмотрено два режима работы, переключаемых джампером.
Датчик газа mq-135
Датчик MQ-135 относиться к полупроводниковым приборам. Принцип работы датчика основан на изменении сопротивления тонкопленочного слоя диоксида олова SnO2 при контакте с молекулами определяемого газа. Чувствительный элемент датчика состоит из керамической трубки с покрытием Al2O3 и нанесенного на неё чувствительного слоя диоксида олова.
Внутри трубки проходит нагревательный элемент, который нагревает чувствительный слой до температуры, при которой он начинает реагировать на определяемый газ. Чувствительность к разным газам достигается варьированием состава примесей в чувствительном слое.
Для arduino урока нам понабиться:
Сам датчик MQ-135 представляет собой цилиндрическое устройства с 6 контактами. И выполняется в 2 корпусах.
Для работы с датчика необходима небольшая обвязка.
В данном Arduino уроке, мы будем рассматривать подключения модуля, на основе датчика MQ135. Модуль имеет необходимую обвязку, а также оснащен компаратором и подстроечным резистором. Это позволяет получить сигнал на цифровую ножку модуля D0.
Когда концентрация ниже установленного параметра, на цифровом выходе датчика логическая 1, и зеленый светодиод не светиться, задать чувствительность датчика можно с помощью подстроечного резистора. При повышении концентрации, светодиод включается и на цифровом пине появляется логический ноль. Используя данный пин, датчик можно использовать без микроконтроллера.
Схема модуля выглядит примерно так. В интернете нет точной схемы данного модуля.
Для подключения модуля необходим источник питания 5в. Не менее 800 мВт. Это связано с тем, что чувствительный элемент датчика нужно подогревать. По документации, температура чувствительного элемента не ниже 42 С. При этом корпус датчика не нагревается и при прикосновении теплый. Для отвода тепла датчик закрыт металлической сеткой.
Разберем технические характеристики газоанализатора:
- напряжение питания: 5V;
- время прогрева: около 1 мин;
- потребляемый ток: 130-150 мА;
- диапазон рабочих температур: -10 … 45 С;
- выходной сигнал TTL уровня;
- габариты: 35 х 20 х 21 мм;
- вес: около 10 г.
Исходный код программы (скетча)
intsensorIn=A4; #include <SPI.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #define SCREEN_WIDTH 128 // ширина OLED дисплея в пикселах #define SCREEN_HEIGHT 64 // высота OLED дисплея в пикселах // контакты, к которым подключен OLED дисплей по интерфейсу SPI (default case): #define OLED_MOSI 9 #define OLED_CLK 10 #define OLED_DC 11 #define OLED_CS 12 #define OLED_RESET 13 Adafruit_SSD1306display(SCREEN_WIDTH,SCREEN_HEIGHT, OLED_MOSI,OLED_CLK,OLED_DC,OLED_RESET,OLED_CS); voidsetup(){ Serial.begin(9600); // используем значение опорного напряжения по умолчанию analogReference(DEFAULT); display.begin(SSD1306_SWITCHCAPVCC); display.clearDisplay(); display.display(); } voidloop(){ //Read voltage intsensorValue=analogRead(sensorIn); // преобразуем считанное с выхода АЦП значение в напряжение floatvoltage=sensorValue*(5000/1024.0); if(voltage==0) { Serial.println(“Fault”); } elseif(voltage<400) { Serial.println(“preheating”); } else { intvoltage_diference=voltage–400; floatconcentration=voltage_diference*50.0/16.0; // Print Voltage Serial.print(“voltage: “); Serial.print(voltage); Serial.println(“mv”); //Print CO2 concentration Serial.print(“CO2 Concentration: “); Serial.print(concentration); Serial.println(“ppm”); display.setTextSize(2); display.setTextColor(WHITE); display.setCursor(18,43); display.println(“CO2”); display.setCursor(63,43); display.println(“(PPM)”); display.setTextSize(2); display.setCursor(28,5); display.println(concentration); display.display(); display.clearDisplay(); } delay(2000); } |
Макетная плата
Как известно, для сборки устройств разрабатываются и создаются печатные платы, например, вот такие:
Понятно, что самостоятельно делать такую плату ради прикола, как в моем случае, вряд ли захочется, тем более, что это может занять достаточно много времени. Поэтому для быстрой сборки различных электрических схем без пайки существуют макетные платы (они же — макетные доски, они же breadboard’ы).
Выглядит макетная плата вот таким незамысловатым образом:
Внутри макетной платы расположены медные пластины-рельсы. При этом, крайние рельсы (помеченные красным и синим цветом) расположены вдоль макетной платы, а остальные (помеченные латинскими буквами и цифрами) — поперёк макетной платы. Такое расположение рельс позволяет собирать самые разнообразные электрические схемы, подключая различные элементы схемы как последовательно, так и параллельно:
Модуль oled дисплея (0.96’ oled display module)
OLED (Organic Light-Emitting Diodes, органический светоизлучающий диод) – это светоизлучающая технология, которая применяется в большинстве современных телевизоров. В OLED дисплеях используется тот же принцип формирования изображения, что и в современных телевизорах, только количество пикселей в них значительно меньше.
Для нашего проекта мы использовали монохромный 7-ми контактный OLED дисплей SSD1306 с диагональю 0.96”. Он может использовать 3 различных коммуникационных протокола: 3-х проводный SPI, 4-х проводный SPI и I2C.
Назначение его контактов (распиновка) приведены в следующей таблице.
Номер контакта | Название контакта | Альтернативное название контакта | Назначение контакта |
1 | Gnd | Ground | земля |
2 | Vdd | Vcc, 5V | напряжение питания (в диапазоне 3-5 В) |
3 | SCK | D0, SCL, CLK | используется как контакт синхронизации (clock pin). Применяется в интерфейсах I2C и SPI |
4 | SDA | D1, MOSI | контакт данных. Применяется в интерфейсах I2C и SPI |
5 | RES | RST, RESET | контакт сброса модуля. Применяется в интерфейсе SPI |
6 | DC | A0 | контакт команд (Data Command pin). Применяется в интерфейсе SPI |
7 | CS | Chip Select (выбор чипа) | используется когда несколько устройств взаимодействуют по интерфейсу SPI |
Подключение данного дисплея к плате Arduino рассматривалось в этой статье, а все проекты с использованием данного дисплея на нашем сайте вы можете посмотреть по следующей ссылке.
Технические характеристики OLED дисплея SSD1306:
- драйвер микросхемы OLED: SSD1306;
- разрешение: 128 x 64;
- угол зрения: >160°;
- входное напряжение: 3.3V ~ 6V;
- цвет пикселов: синий;
- диапазон рабочих температур: -30°C ~ 70°C.
Необходимые компоненты
- Плата Arduino Nano (купить на AliExpress).
- Инфракрасный датчик гравитации CO2 (Gravity Infrared CO2 Sensor V1.1) (купить на AliExpress).
- 0.96’ SPI OLED Display Module – модуль OLED дисплея с диагональю 0.96’ и поддержкой интерфейса SPI (купить на AliExpress – если будете покупать по приведенной ссылке, то выбирайте модель OLED дисплея с 7 контактами).
- Макетная плата.
- Соединительные провода.
Подключение датчика co2 модели mh-z19b с помощью аналогового выхода vo
Приветствую всех, кто интересуется качеством воздуха в помещении и хочет это контролировать и управлять.
Я сам заинтересовался этим вопросом недавно и решил пощупать датчик CO2 MH-Z19B своими руками. Меня вдохновило много статей, например Тёмная сторона MH-Z19.
Однако нигде (даже в инструкции) я не нашел как работать с пином Vo…
Я обратил внимание вот на что: в статье Обзор инфракрасного датчика CO2 MH-Z19 упоминается такой пункт:
На некоторых интернет-магазинах, например, “
Датчик углекислого газа CO2 MH-Z19B
” указывается подобная информация:
(как под копирку)
Но в инструкции (тут) указано чуть подробнее:
А если копнуть еще, то в инструкции (
тут
) указано еще подробнее:
Я быстро погуглил и… ничего не нашел про этот выход! Странно, подумал Штирлиц, быстро подключил этот выход на аналоговый вход ESP8266 (для Arduino это тоже актуально) и начал исследовать.
Выводы:
- Напряжение на аналоговом выходе изменяется от 0,4xx до 2,002в.
- Аналоговый выход повторяет напряжением цифрового сигнала ppm.
- При изменении командами UART диапазона ppm 2k, 5k, 10k соотвественно изменяется диапазон преобразования Vo.
- Максимальное значение Vo=2,001в не изменяется в зависимости от диапазона, в качестве диапазона преобразования нужно устанавливать максимальное значение в ppm (2/5/10к).
- Минимальное значение Vo изменяется в зависимости от диапазона (?), а сам диапазон начинается от 400ppm.
- Если подобрать фактическое значение АЦП контроллера, то можно получить достойное соотвествие между напряжением и уровнем ppm. В диапазоне до 2k погрешность между цифровым сигналом UART и аналоговым преобразованием Vo не превышает нескольких единиц ppm.
- Можно или с помощью преобразователя USB-TTL или с помощью Arduino первично настроить датчик (отключить автокалибровку и перевести в «домашний» диапазон 400…2000ppm) и далее работать с ним как с аналоговым сигналом.
Как я преобразовывал:
[...]
const word cADC00v = 3; // ADC = 3 уе. при 0.0v
const word cADC04v2k = 235; // ADC = 235 уе. при 400ppm @2k
const word cADC04v5k = 174; // ADC = 174 уе. при 400ppm @5k
const word cADC04v1k = 153; // ADC = 153 уе. при 400ppm @10k
const word cADC20v = 646; // ADC = 646 6уе. при 2.0v
word ADC = analogRead(A0); // Чтение 10 бит ADC 0...1023
long Vin = map(ADC, cADC00v, cADC20v, 0, 2001); // Напряжение 0..3,3v по даташиту, фактически до 2,001v
long ppm_2k_04_2 = map(ADC, cADC04v2k,cADC20v, 400, 2000); // Преобразование Vo в ppm в диапазоне 2k
long ppm_5k_04_2 = map(ADC, cADC04v5k,cADC20v, 400, 5000); // Преобразование Vo в ppm в диапазоне 5k
long ppm_10k_04_2 = map(ADC, cADC04v1k,cADC20v, 400,10000); // Преобразование Vo в ppm в диапазоне 10k
[...]
«Магические» числа подобрал экспериментально. Так получилось и быстрее и точнее. При попытке посчитать очень точно, математически, фактически получилась большая погрешность.
Почему у меня так работает (0,4…2,0в а не 0…2,5в) я не знаю. Датчик куплен пару дней назад, производство 26 сентября 2022г. На корпусе выбит диапазон до 5к ppm.
Зачем это мне нужно? (ответ на «вот я бы сделал не так…»)
Ну… есть люди, которые любят держать паяльник в руках, а вот с контроллерами не дружат. Для них аналоговый выход это как минимум включить/выключить вентилятор, как максимум — плавное управление скоростью вытяжки/приточки/рекуператора.
А конкретно у меня: в соседней комнате уже 2 года работает система вентиляции, которую я сделал на свободно-программируемом промышленном контроллере. Т.к. контроллер промышленный, то и система программирования специфическая, не уверен, что на нем можно написать свой протокол обмена по UART. Да, там есть последовательный порт RS484, который прекрасно работает по ModBus, но этот порт занят системой диспетчеризации.
А вот что есть — свободный аналоговый вход, который можно настроить на 0-10в. И так имея всего около 30$ можно проапгрейдить систему вентиляции на интеллектуальное энергосбережение (вентилировать только тогда, когда нужно, и ровно на столько, на сколько нужно).
P.S.: код SoftSerial.readBytes(mhzBuffer, 9); на моем ESP8266 отказался работать. Убил на это около пяти часов жизни. Здесь это обсуждали, но прочитал я уже позже. Писал свою функцию в стиле if (SoftSerial.available() { x=SoftSerial.read(); }
.
Подключение и настройка
Датчик газа MQ-135 подключается к управляющей электронике по 5 проводам. Для подключения используются два трёхпроводных шлейфа. Для быстрого подключения модуля к Iskra JS или Arduino используйте Troyka Shield.
С Troyka Slot Shield можно обойтись без лишних проводов.
Пример кода mq135 для arduino.
Снять показание с датчика можно без использования сторонних библиотек. Вот такой простой пример кода, поможет получить данные с цифрового и аналогового пина, и вывести полученные значения в монитор порта.
#define analogPin A0 // аналоговый выход MQ135 подключен к пину A0 Arduino #define digitalPin 3 // цифровой выход подключен к пину 3 float analogValue; // для аналогового значения byte digitalValue; // для цифрового значения, можно, кстати и boolean, но не суть void setup() { Serial.begin(9600); // инициализация последовательного порта pinMode(analogPin, INPUT); // режим работы аналогового пина pinMode(digitalPin, INPUT); // режим работы цифрового пина delay(1000); // устаканимся } void loop() { analogValue = analogRead(analogPin); // чтение аналогового значения digitalValue = digitalRead(3); // чтение цифрового значения Serial.print("Current value: "); // вывод аналогового значения в последовательный порт Serial.println(analogValue); Serial.print("Threshold: "); // вывод цифрового значения в аналоговый порт Serial.println(digitalValue); delay(5000); // задержка, чтобы не мельтешило перед глазами }
Простейший измеритель co2 за 2000 рублей и полчаса
В большинстве самоделок используют датчик MH Z19B, но у него есть нехорошая особенность – если помещение не проветривается до состояния уличного воздуха каждый день, показания начинают “уплывать” (датчик автоматически калибруется каждый день и считает минимальный уровень CO2 в помещении за 400 ppm). Я заказал два более продвинутых датчика – Sensair S8 004-0-0053 (он обошёлся мне в $28.86, сейчас стоит $32.30) и Telaire T6703 (его я купил за $19.41, сейчас он стоит $28.35).
Я подключил датчики к Arduino Nano (его можно купить за $2.98), но можно использовать и другую плату Arduino. Для отображения значения CO2 используется дешёвый светодиодный экранчик TM1637 (он стоит $0.67). Для соединения удобно использовать готовые провода с коннекторами Dupont F-F (20 штук по 10 см стоят $0.87), для подключения сенсоров их можно разрезать пополам и подпаять.
Помимо индикации на экранчике, мои измерители передают данные в порт, поэтому их можно подключить к компьютеру, зайти в режим платформы Arduino “Монитор порта” (скорость 9600), наблюдать значения CO2 и использовать измеритель, как даталоггер (нужно просто скопировать данные из окошка монитора порта в Excel).
Кстати, экран можно не подключать и пользоваться только монитором порта.
Оба сенсора дают точные результаты (я сравнивал с хорошими измерителями уровня углекислого газа Даджет МТ8057s и AZ Instruments 7798 CO2 datalogger). Более дешёвый Telaire T6703 мне понравился даже больше – он выходит на правильные показания секунд за тридцать после включения и его результаты ближе к результатам дорогих приборов с двухлучевыми сенсорами.
Если вы захотите повторить одну из этих простых конструкций, я собрал всё, что нужно в одном архиве – там и скетчи для Arduino, и схемы подключения и необходимая библиотека.
Я планирую добавить к моим измерителям поддержку дешёвого цветного TFT-экрана (https://anemometers.ru/1191683.html) и трёх или четырёх реле для управления вентиляцией в зависимости от уровня углекислого газа в помещении. Как только сделаю это, напишу такую же инструкцию для повторения этих самоделок.
© 2021, Алексей Надёжин
Десять лет я каждый день пишу о технике, скидках, интересных местах и событиях. Читайте мой блог на сайте ammo1.ru, в ЖЖ, Дзен, МирТесен.
Мои проекты:
Lamptest.ru. Тестирую светодиодные лампы и помогаю разобраться, какие из них хорошие, а какие не очень.
Elerus.ru. Собираю информацию об отечественных электронных устройствах для личного использования и делюсь ей.
Вы можете связаться со мной в Телеграм @ammo1 и по почте ammo1@mail.ru.
§
Увидел в магазине настолько непонятный с виду электроприбор, что даже спросил продавцов, что это. Оказалось “выжигатель сорняков”. По-английски…
Вчера я не смог вставить в пост про робота-газонокосилку видео, которое снял и смонтировал. Посмотрите его – надеюсь будет интересно. Я сейчас…
Мне надоело каждую неделю косить траву на дачном участке и я решил изучить рынок роботов-газонокосилок. В рекламе и роликах на Youtube не нашлось…
27 июня Декатлон закрывает все магазины в России. 23 июня я оказался в магазине в ТЦ Авиапарк. То, что я там увидел, не может не впечатлять.…
Каждый банк мечтает, чтобы клиенты пользовались только их продуктами, но я “неправильный” клиент. У меня сейчас 24 карты разных банков, при этом ношу…
После двух неудачных попыток покупки дешевых клавиатур, я решил прислушаться к советам многих комментаторов и купил эту клавиатуру. Попользовавшись…
Бензогенератор позволяет обеспечить электричеством бытовые электроприборы при аварии электроснабжения. Я изучил генератор с четырёхтактным двигателем…
У нас, в колхозе “Заветы Кузьмича”, планшеты ремонтируют так. 🙂 Родственница попросила хоть как-то оживить старый планшет. Сначала он перестал…
В комментариях к моей заметке о вновь открывшихся магазинах ОБИ несколько человек спросили о ценах на электроинструменты. Вчера я снова оказался в…
Скетч
Для переносного датчика MH-Z19 с дисплеем Nokia 5110. Потребуются библиотеки Adafruit_GFX_5110 и DHT11.
#include<SPI.h>#include<Adafruit_GFX.h>#include<dht11.h>#include<Adafruit_PCD8544.h>Adafruit_PCD8544display=Adafruit_PCD8544(7,6,5,4,3);dht11DHT;#defineDHT11_PIN8#definepwmPin2#defineLedPin13intprevVal=LOW,times=0;longth,tl,h,l,ppm;voidsetup(){ Serial.begin(9600); pinMode(pwmPin,INPUT); pinMode(LedPin,OUTPUT); display.begin(); display.clearDisplay(); display.setContrast(60); display.setTextSize(2); display.setTextColor(BLACK);}voidloop(){ longtt=millis(); //чтение PWM от CO2 intmyVal=digitalRead(pwmPin); if(myVal==HIGH){ digitalWrite(LedPin,HIGH); if(myVal!=prevVal){ h=tt; tl=h-l; prevVal=myVal; } } else{ digitalWrite(LedPin,LOW); if(myVal!=prevVal){ l=tt; th=l-h; prevVal=myVal; ppm=5000*(th-2)/(th tl-4); Serial.println("PPM = " String(ppm)); display.clearDisplay(); display.setCursor(0,0); if(ppm<1000) display.println(String(ppm) "ppm"); else display.print(String(ppm) "ppm"); times ; if(times>=3){ times=0; intchk=DHT.read(DHT11_PIN); // Чтение данных switch(chk){ caseDHTLIB_OK: break; caseDHTLIB_ERROR_CHECKSUM: display.println("Checksum error, t"); break; caseDHTLIB_ERROR_TIMEOUT: display.println("Time out error, t"); break; default: display.println("Unknown error, t"); break; } // Выводим показания влажности и температуры display.print("Hum:"); display.println(DHT.humidity,1); display.print("Temp:"); display.println(DHT.temperature,1); } display.display(); } }}
Скетч для считывания показаний датчика
Итак, судя по тому, что удалось найти (см. выше) по работе датчика MQ135, наша задача получить значение сопротивления с аналогового выхода и каким-либо образом преобразовать значение этого сопротивления в значение концентрации интересующего нас вещества. В нашем случае — это CO2.
Скетч у меня получился вот такой:
Теперь загружаем скетч в Arduino Uno так, как я показывал в прошлой статье и открываем в меню Arduino IDE «Инструменты — Монитор порта». Через несколько секунд в мониторе порта появились следующие значения:
Во время работы датчика я на него немного подышал и по картинке видно, что датчик сработал. Однако, что он показывает для нас пока остается загадкой. Точнее даже не так — остается загадкой значение концентрации CO2 в атмосфере моей комнаты.
Завтра приступим к «расшифровке» данных датчика MQ-135, посмотрим как можно интерпретировать получаемые значения, а заодно разберем один вопрос, который не дает мне покоя уже достаточно долгое время.
Собираем анализатор co2 на базе arduino uno
Вообще, для себя, как для человека достаточно далекого от электроники, хотя и любящего иногда повозиться с оной, я при работе с Arduino придерживаюсь старого доброго правила, описанного в замечательной повести Анджея Сапковского «Ведьмак». Кто читал эту книгу, тот наверняка вспомнит изречение медика Русти:
«Шейте красное с красным, желтое с желтым, белое с белым. Так наверняка будет хорошо…»
Вот и Arduino точно так же — соединяем VCC на датчике с VCC на Arduino Uno, аналоговые выходы с аналоговыми входами — так наверняка заработает.
Попробуем реализовать это правило в деле. Я соединил выход A0 на датчике с пином A0 на Arduino Uno, выход D0 на датчике с пином D4, ну и, соответственно, подвел питание 5В. Получилась вот такая хрупкая конструкция:
Судя по тому, что на датчике загорелся светодиод питания, а датчик пусть и не сильно, но нагрелся, можно сказать, что с аппаратной частью работы мы более менее справились. Теперь набросаем небольшой скетч, суть которого будет заключаться в том, чтобы отправить в COM-порт показания датчика MQ135.
Схема подключения mq135 к arduino.
Назначение пинов датчика MQ135:
- Vcc – питания 5в.
- GND – «-» питания.
- D0 – цифровой пин.
- A0 – аналоговый пин.
Схема проекта
Схема подключения инфракрасного датчика CO2 к плате Arduino представлена на следующем рисунке.
Как видите, схема достаточно простая. Инфракрасный датчик CO2 и OLED дисплей запитываются от контактов 5V и GND платы Arduino. Сигнальный аналоговый контакт датчика CO2 подключен к контакту A0 платы Arduino Nano. OLED дисплей подключен к плате Arduino по интерфейсу SPI. Соединения между OLED дисплеем и платой Arduino представлены в следующей таблице:
OLED дисплей | Плата Arduino |
GND | Ground |
VCC | 5V |
D0 | 10 |
D1 | 9 |
RES | 13 |
DC | 11 |
CS | 12 |
После сборки проекта на макетной плате у нас получилась конструкция следующего вида:
Управляем вентиляцией с помощью детектора углекислого газа mt8057
Многие пользователи популярного детектора углекислого газа (CO2) MT8057S задают нам вопросы о том, как реализовать с помощью данного детектора управление приточной или вытяжной вентиляцией. Просмотрев наш ассортимент, мы нашли устройство, с помощью которого и хотим предложить решение данной задачи.
Внешний вид детектора можно увидеть на рис. 1.
Рис. 1
В качестве силового элемента управления вентилятором был выбран модуль MP515. Внешний вид модуля можно увидеть на рис. 2
Рис. 2
MT8057 представляет собой точный прибор, для измерения в составе воздуха концентрации CO2. Прибор оснащен жидкокристаллическим дисплеем, для точного контроля и тремя индикаторами, для оперативного контроля концентрации углекислого газа. В качестве приятного дополнения прибор показывает состояние температуры в месте его установки. При необходимости, с помощью кнопок управления можно изменить включение индикации оперативного контроля.
MP515 представляет собой силовое реле с электронным ключом. Модуль предназначен для управления силовыми электроприборами до 2000 Вт от слаботочных выходов различных датчиков и устройств управления, обеспечивая гальваническую развязку от электроприбора. Для управления модулем необходимо напряжение от 1В до 5В, которое можно получить от головного устройства. В модуле предусмотрено место для установки беспроводного приемника MK324 диапазона 433 МГц. Питать модуль можно как от источника напряжением 5В, например PW0512, так и от USB порта ПК или адаптера зарядки смартфона или телефона.
Для подключения силового реле нам потребуется разобрать MT8057. Для этого, необходимо с помощью маленькой отвертки отогнуть защелки в пазах корпуса датчика рис. 3.
Рис. 3
Затем открутите три винта и отсоедините трубку забора воздуха рис. 4.
Рис. 4
Теперь извлеките плату и расположите ее индикацией на себя. Затем необходимо будет припаять один из трех проводов к крайнему резистору RledR, ограничивающего ток красного светодиода с надписью LedR, рис. 5.
Рис. 5
Второй провод подпаиваем к выводу кнопки ModeKey подключенной к общей шине платы. Третий вывод подпаиваем к среднему контакту элемента THRO, рис. 6.
Рис. 6
На данный вывод приходит напряжение питания 5В. Это напряжение нам необходимо для питания силового модуля MP515. Собственно говоря, такое подключение нам позволит питать всю схему как с microUSB входа самого датчика, так и с miniUSB входа силового модуля. Это будет полезно при инсталляции данной схемы.
Схему подключения вентилятора к силовому реле можно увидеть на рис. 7
Рис. 7
При необходимости ручного управления приточной вентиляцией, совместно с силовым модулем, можно применить комплект беспроводного управления MK324, рис. 8.
MK324 представляет собой комплект из четырех канального передатчика и приемника, диапазона 433 МГц. Питание пульта осуществляется от 12В элемента питания, серии 23А. Время работы от одного элемента не менее 1 года. Приемник рассчитан на напряжение питания 5В. Дальность работы комплекта составляет 30м. Этого вполне достаточно для применения в условиях частного дома или квартиры. Так как в беспроводном модуле будет задействован только один канала управления, то свободные можно задействовать для управления освещения или других электроприборов.
Рис. 8
Данный комплект без особых усилий устанавливается на штатное место, предусмотренное в силовом реле MP515. После такой несложной модификации, появится возможность принудительно включать приточную вентиляцию при желтой индикации датчика СО2.
Вариант установки вентилятора, приточной вентиляции, можно увидеть на рис. 9.
Рис. 9
Видео работы системы в сборе можно увидеть тут:
Свежего вам воздуха!
Вывод по работе с датчика mq135.
Датчик имеет ряд минусов:
- Прогрев перед работай.
- Сложность настройки и калибровки.
- Неточные показания.
Плюсы. Их ни так и много. Один плюс — это стоимость. Данный датчик в разы дешевле аналогичных датчиков качества воздуха.
Итог можно сделать следующий, датчик использовать можно только для мониторинга качества воздуха в неответственных помещениях и для сигнализации, которая будет реагировать на резкое увеличение углекислого газа в воздухе. Например, пожарная сигнализация.
Смотрите другие уроки подключения датчиков к Arduino: