Монитор качества воздуха своими руками с датчиком Sharp GP2Y1010AU0F
Компоненты и расходные материалы
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
Необходимые инструменты и машины
|
Приложения и онлайн-сервисы
| ||||
|
Об этом проекте
Оптический датчик пыли Sharp (GP2Y1010AU0F) особенно эффективен для обнаружения очень мелких частиц, таких как сигаретный дым, и обычно используется в системах очистки воздуха. Инфракрасный излучающий диод и фототранзистор расположены по диагонали в этом устройстве, что позволяет ему обнаруживать отраженный свет пыли в воздухе.
В предыдущих видеороликах я показал вам мониторы качества воздуха на основе сенсорных плат DSM501A и PPD42NS. На этот раз я представлю вам то же устройство, но уже на базе сенсорной платы Sharp GP2Y1010AU0F, которое также очень дешево и стоит около 5 долларов. Электрическая схема этого устройства очень проста и показана на рисунке ниже. Датчик воздуха имеет очень простую конструкцию. низкое потребление тока (макс. 20 мА, типичное значение 11 мА) и возможность питания напрямую от платы Arduino. Выходной сигнал датчика представляет собой аналоговое напряжение, пропорциональное измеренной плотности пыли, с чувствительностью 0,5 В / 0,1 мг / м3.
Я изменил пример кода Arduino со страницы «Dfrobot», поэтому значения считываются в мкг / м3. Затем я написал код обработки, основанный на библиотеке "meter", чтобы эти значения представлялись на мониторе ПК в виде большого аналогового прибора, придавая ему отчетливый визуальный эффект.
Наконец, давайте сравним все три платы датчиков (DSM501A и PPD42NS, которые я описал в предыдущих видео, и Sharp GP2Y1010AU0F, описанный выше). Все три датчика очень дешевы и могут быть куплены за несколько долларов. По результатам, которые я получил, тестируя их в тех же условиях, победителем стал Sharp GP2Y1010AU0F. Есть ряд положительных моментов, среди которых:
-Он более чувствителен к очень низким значениям
-Он имеет очень низкое энергопотребление и может питаться напрямую от Arduino
-Очень простой код Arduino, который легко настраивается
-Он имеет аналоговый выход, поэтому его можно напрямую подключить к измерительному прибору без какой-либо дополнительной электроники
Этот датчик можно купить на AliExpress
https://www.aliexpress.com/item/32661666070.html?spm=a2g0s.9042311.0.0.27424c4dKW7gUj
Спасибо за просмотр
Код
- Код Arduino
- Код обработки
Код Arduino Arduino
/ * Автономный эскиз для использования с Arduino UNO и оптическим датчиком пыли Sharp GP2Y1010AU0F * / int measurePin =0; // Подключаем датчик пыли к Arduino A0 pinint ledPower =2; // Подключаем 3 вывода драйвера датчика пыли к Arduino D2int samplingTime =280; int deltaTime =40; int sleepTime =9680; float voMeasured =0; float calcVoltage =0; float dustDensity =0; void setup () {Serial.begin (9600); pinMode (ledPower, OUTPUT);} пустая петля () {digitalWrite (ledPower, LOW); // включение светодиода delayMicroseconds (samplingTime); voMeasured =analogRead (measurePin); // считываем значение пыли delayMicroseconds (deltaTime); digitalWrite (ledPower, HIGH); // выключаем светодиод delayMicroseconds (sleepTime); // 0–5 В сопоставлены с целочисленными значениями 0–1023 // восстанавливаем напряжение calcVoltage =voMeasured * (5.0 / 1024.0); // линейное уравнение взято из http://www.howmuchsnow.com/arduino/airquality/ // Chris Nafis (c) 2012 dustDensity =170 * calcVoltage - 0.1; Serial.println (Плотность пыли); // единица измерения:мкг / м3 задержка (1000);}
Код обработки C / C ++
/ * // <> // Измерить как частичный круг. Измените несколько цветов. Обратите внимание, что круг начинается под углом 90,0 градусов (6:00 часов) и движется по часовой стрелке. Метки шкалы должны быть в таком порядке. Неаппаратный пример. Создан 19 апреля 2017 года Биллом (Папа) Куджавой. Этот пример кода находится в общественном достоянии. * / import processing.serial. *; import meter. *; Serial port; String [] list; Meter m; void setup () {size (1150, 910); фон (255, 255, 200); порт =новый последовательный (это, «COM4», 9600); // Отображение полного кругового счетчика. m =новый метр (это, 125, 25, истина); // Создание экземпляра класса счетчика полного цикла. m.setMeterWidth (850); m.setFrameColor (цвет (100, 0, 0)); m.setTitleFontColor (цвет (0, 200, 0)); m.setPivotPointColor (цвет (255, 0, 0)); m.setArcColor (цвет (0, 0, 200)); m.setScaleFontColor (цвет (200, 100, 0)); m.setTicMarkColor (цвет (217, 22, 247)); // Определяем, где будет отображаться метка масштаба m.setArcMinDegrees (90.0); // (начало) m.setArcMaxDegrees (360.0); // (конец) m.setArcThickness (5); m.setNeedleThickness (4); // Устанавливаем значение счетчика в соответствии с метками шкалы. m.setMinScaleValue (0,0); m.setMaxScaleValue (800.0); m.setInputSignalOutOfRangeFontColor (цвет (0, 255, 0)); m.setMinInputSignal (0); m.setMaxInputSignal (800); m.setHighSensorWarningActive (истина); m.setHighSensorWarningValue ((float) 200.0); String [] scaleLabelsA ={"0", "100", "200", "300", "400", "500", "600", "700", "800"}; m.setScaleLabels (scaleLabelsA); // Измените заголовок с "Voltage" по умолчанию на более значимый. m.setTitle ("Качество воздуха (мкг / м3)"); // Отображаем значение цифрового счетчика. m.setDisplayDigitalMeterValue (true);} void draw () {если (port.available ()> 0) {String val =port.readString (); список =сплит (val, ','); float air =float (список [0]); println («Качество воздуха:» + воздух + «мг / м3»); m.updateMeter (int (воздух)); }}
Схема
Производственный процесс
- Датчик качества воздуха включает возможности искусственного интеллекта
- Монитор окружающей среды и качества воздуха своими руками
- Как измерить качество воздуха на OpenSensors
- Датчик качества воздуха с гелием
- Мониторинг качества воздуха Smart City на основе LoRa
- Самодельные простейшие часы Numitron IV9 с Arduino
- Датчик DHT11 со светодиодами и пьезо-динамиком
- Система мониторинга качества воздуха и мусора в помещении
- Мониторинг CO2 с помощью датчика K30
- Датчик качества воздуха на основе углерода