Нужен усилитель сигнала датчика качества воздуха MQ135? Датчик более высокого качества?

Я пытаюсь усилить сигнал моего датчика качества воздуха MQ135, чтобы он мог обнаруживать аэрозоли на расстоянии 3 футов, так как в настоящее время разрешение жалкое, оно колеблется только от 0,21 до 0,58, когда вы практически вставляете датчик. в носик бутылки, наполненной уксусом/медицинским спиртом.

Было бы идеально, если бы вы могли подсказать мне, какой усилитель сигнала купить, чтобы усилить сигнал, исходящий от этой платы?

В качестве альтернативы: можно ли увеличить чувствительность этого датчика?

В какой-то момент я хотел бы изобразить это на графике, поэтому я буду работать над приложением ASP.NET, которое сообщает мне, есть ли в моей комнате какие-либо аэрозоли или нет.

Вот код:

/*
График

Простой пример связи платы Arduino с компьютером:
значение аналогового входа 0 отправляется через последовательный порт. Мы называем это сериалом.
связь, потому что соединение отображается как для Arduino, так и для
компьютер в качестве последовательного порта, хотя на самом деле он может использовать
USB-кабель. Байты отправляются один за другим (последовательно) с Arduino
к компьютеру.

Вы можете использовать последовательный монитор Arduino для просмотра отправленных данных, или он может
могут быть прочитаны Processing, PD, Max/MSP или любой другой программой, способной считывать
данные из последовательного порта. Код обработки ниже отображает полученные данные в виде графика.
так что вы можете видеть, как значение аналогового входа изменяется с течением времени.

Схема:
Любой датчик аналогового входа подключается к аналоговому контакту 0.

создан в 2006 г.
Дэвид А. Меллис
изменено 9 апреля 2012 г.
Том Айго и Скотт Фицджеральд

Этот пример кода находится в общественном достоянии.

http://www.arduino.cc/en/Tutorial/График
*/

void setup() {
  // инициализируем последовательную связь:
  Serial.begin(9600);
}

void loop() {
  // отправить значение аналогового входа 0:
  Serial.println(analogRead(A0));
  // ждем немного аналого-цифрового преобразователя
  // для стабилизации после последнего чтения:
  delay(20);
}

/* Processing code for this example

 // Графический скетч


// Эта программа принимает строки в кодировке ASCII
// из последовательного порта на скорости 9600 бод и графики их. Он ожидает значения в
// диапазон от 0 до 1023, за которым следует новая строка или новая строка и возврат каретки

// Создано 20 апреля 2005 г.
// Обновлено 24 ноября 2015 г.
// Том Айгоу
// Этот пример кода находится в открытом доступе.

import processing.serial.*;

Serial myPort;        // Последовательный порт
int xPos = 1;         // горизонтальное положение графика
float inByte = 0;

void setup () {
  // устанавливаем размер окна:
  size(400, 300);

  // Список всех доступных последовательных портов
  // при использовании Processing 2.1 или более поздней версии используйте Serial.printArray()
  println(Serial.list());

  // Я знаю, что первый порт в списке последовательных портов на моем Mac
  // это всегда мой Arduino, поэтому я открываю Serial.list()[0].
  // Откройте любой порт, который вы используете.
  myPort = new Serial(this, Serial.list()[0], 9600);

  // не генерируйте serialEvent(), если вы не получили символ новой строки:
  myPort.bufferUntil('\n');

  // устанавливаем исходный фон:
  background(0);
}
void draw () {
  // нарисовать линию:
  stroke(127, 34, 255);
  line(xPos, height, xPos, height - inByte);

  // на краю экрана возвращаемся в начало:
  if (xPos >= width) {
    xPos = 0;
    background(0);
  } else {
    // увеличиваем позицию по горизонтали:
    xPos++;
  }
}


void serialEvent (Serial myPort) {
  // получаем строку ASCII:
  String inString = myPort.readStringUntil('\n');

  if (inString != null) {
    // обрезаем все пробелы:
    inString = trim(inString);
    // преобразовать в int и сопоставить с высотой экрана:
    inByte = float(inString);
    println(inByte);
    inByte = map(inByte, 0, 1023, 0, height);
  }
}

*/

/* Max/MSP v5 patch for this example
 ----------begin_max5_patcher----------
1591.3oc0YszbaaCD9r7uBL5RalQUAO3CvdyS5zVenWZxs5NcfHgjPCIfJIT
RTxj+6AOHkoTDooroUs0AQPR73a+1cwtK3WtZxzEpOwqlB9YveAlL4KWMYh6
Q1GLo99ISKXeJMmU451zTUQAWpmNy+NM+SZ2y+sR1l02JuU9t0hJvFlNcMPy
dOuBv.U5Rgb0LPpRpYBooM3529latArTUVvzZdFPtsXAuDrrTU.f.sBffXxL
vGE50lIHkUVJXq3fRtdaoDvjYfbgjujaFJSCzq4.tLaN.bi1tJefWpqbO0uz
1IjIABoluxrJ1guxh2JfPO2B5zRNyBCLDFcqbwNvuv9fHCb8bvevyyEU2JKT
YhkBSWPAfq2TZ6YhqmuMUo0feUn+rYpY4YtY+cFw3lUJdCMYAapZqzwUHX8S
crjAd+SIOU6UBAwIygy.Q1+HAA1KH6EveWOFQlitUK92ehfal9kFhUxJ3tWc
sgpxadigWExbt1o7Ps5dk3yttivyg20W0VcSmg1G90qtx92rAZbH4ez.ruy1
nhmaDPidE07J+5n2sg6E6oKXxUSmc20o6E3SPRDbrkXnPGUYE.i5nCNB9TxQ
jG.G0kCTZtH88f07Rt0ZMMWUw8VvbKVAaTk6GyoraPdZff7rQTejBN54lgyv
HE0Ft7AvIvvgvIwO23jBdUkYOuSvIFSiNcjFhiSsUBwsUCh1AgfNSBAeNDBZ
DIDqY.f8.YjfjV1HAn9XDTxyNFYatVTkKx3kcK9GraZpI5jv7GOx+Z37Xh82
LSKHIDmDXaESoXRngIZQDKVkpxUkMCyXCQhcCK1z.G457gi3TzMz4RFD515F
G3bIQQwcP3SOF0zlkGhiCBQ1kOHHFFlXaEBQIQnCwv9QF1LxPZ.A4jR5cyQs
vbvHMJsLll01We+rE2LazX6zYmCraRrsPFwKg1ANBZFY.IAihr8Ox.aH0oAL
hB8nQVw0FSJiZeunOykbT6t3r.NP8.iL+bnwNiXuVMNJH9H9YCm89CFXPBER
bz422p8.O4dg6kRxdyjDqRwMIHTbT3QFLskxJ8tbmQK4tm0XGeZWF7wKKtYY
aTAF.XPNFaaQBinQMJ4QLF0aNHF0JtYuHSxoUZfZY6.UU2ejJTb8lQw8Fo5k
Rv6e2PI+fOM71o2ecY1VgTYdCSxxUqLokuYq9jYJi6lxPgD2NIPePLB0mwbG
YA9Rgxdiu1k5xiLlSU6JVnx6wzg3sYHwTesB8Z5D7RiGZpXyvDNJY.DQX3.H
hvmcUN4bP1yCkhpTle2P37jtBsKrLWcMScEmltOPv22ZfAqQAdKr9HzATQwZ
q18PrUGt6Tst2XMCRUfGuhXs6ccn23YloomMqcTiC5iMGPsHsHRWhWFlaenV
XcqwgCQiGGJzptyS2ZMODBz6fGza0bzmXBj7+DA94bvpR01MffAlueO7HwcI
pWCwmzJdvi9ILgflLAFmyXB6O7ML0YbD26lenmcGxjVsZUN+A6pUK7AtTrPg
M+eRYG0qD9j4I7eEbco8Xh6WcO.or9XDC6UCiewbXHkh6xm5LiPEkzpJDRTu
mEB44Fgz4NCtJvX.SM1vo2SlTCZGAe7GZu6ahdRyzFOhYZ+mbVVSYptBw.K1
tboIkatIA7c1cTKD1u.honLYV04VkluHsXe0szv9pQCE9Ro3jaVB1o15pz2X
zYoBvO5KXCAe0LCYJybE8ZODf4fV8t9qW0zYxq.YJfTosj1bv0xc.SaC0+AV
9V9L.KKyV3SyTcRtmzi6rO.O16USvts4B5xe9EymDvebK0eMfW6+NIsNlE2m
eqRyJ0utRq13+RjmqYKN1e.4d61jjdsauXe3.2p6jgi9hsNIv97CoyJ01xzl
c3ZhUCtSHx3UZgjoEJYqNY+hYs5zZQVFW19L3JDYaTlMLqAAt1G2yXlnFg9a
53L1FJVcv.cOX0dh7mCVGCLce7GFcQwDdH5Ta3nyAS0pQbHxegr+tGIZORgM
RnMj5vGl1Fs16drnk7Tf1XOLgv1n0d2iEsCxR.eQsNOZ4FGF7whofgfI3kES
1kCeOX5L2rifbdu0A9ae2X.V33B1Z+.Bj1FrP5iFrCYCG5EUWSG.hhunHJd.
HJ5hhnng3h9HPj4lud02.1bxGw.
-----------end_max5_patcher-----------

 */

, 👍0

Обсуждение

Итак, чтобы ответить на вопрос: оказывается, есть разные датчики для каждого другого обнаруживаемого там .... какой кошмар! Аммиак - MQ137 Угарный газ - MQ-7 Хлор - MQ 7 Диоксид хлора - MQ2 Этиленоксид - MQ-2 Фтор - MQ-3 гидразин Водород - MQ-8 Водородный фторид - MQ-8 Сероводород - MQ136 Оксид азота - MQ-7 Двуокись азота - MQ-4 Кислород Роща - датчик газа (O2) Артикул: 101020002 Озон - mq-3 Фосген mq-7 Фосфин mq-7 Силан - MQ-6 Диоксид серы MQ-136, @Ycombinatordev

Будет более понятно, что вы хотите получить, если вы будете обращаться к одной теме за сообщением. Какой датчик использовать; как настроить чувствительность; как отображать данные — эти три вопроса можно решать отдельно. Тратить время на то, чтобы смешать их вместе., @James Waldby - jwpat7

Что за плата именно? Поиск в Google «MQ135» показывает дискретную деталь, для которой требуется переменное калибровочное сопротивление, и затем ее необходимо откалибровать в соответствии с вашим приложением. В зависимости от платы, он может уже иметь некоторое кондиционирование/усиление., @Dave X

Спасибо, Дэйв , это всего лишь плата Arduino, я покрутил на ней переменный потенциометр, чтобы получить точные показания… я не увидел значительного усиления… https://olimex.files.wordpress.com/ 2015/05/mq-1.jpg, @Ycombinatordev

целое значение датчика; инт8 = 8; недействительная установка () { Серийный.начать(9600); pinMode (pin8, ВЫХОД); } пустой цикл () { значение датчика = аналоговое чтение (0); // прочитать аналоговый входной контакт 0 Serial.print (значение датчика, DEC); // печатает прочитанное значение Serial.println("ppm"); если (значение датчика > 500) { //Активируем цифровой выходной контакт 8 - загорится светодиод цифровая запись (контакт 8, ВЫСОКИЙ); } еще { // Деактивировать цифровой выходной контакт 8 - светодиод не загорится цифровая запись (pin8, НИЗКИЙ); } задержка(50); }, @Ycombinatordev

* «Оказывается, для каждого отдельного обнаруживаемого объекта есть отдельный датчик» * и некоторые говорят: такие датчики действительно обнаруживают частицы газа, но для дешевых датчиков вы никогда не узнаете, измеряют ли они то, что рекламируется., @Arjan


1 ответ


1
int sensorValue;
int pin8 = 8;
void setup()
{
  Serial.begin(9600);
  pinMode(pin8, OUTPUT);

  }

  void loop()
  {
    sensorValue = analogRead(0); // прочитать аналоговый входной контакт 0
    Serial.print(sensorValue, DEC); // печатает прочитанное значение
    Serial.println("ppm");
    if (sensorValue > 500) {
      //Активируем цифровой выходной контакт 8 - загорится светодиод
      digitalWrite(pin8, HIGH);
    }
    else
    {
      // Деактивировать цифровой выходной контакт 8 - светодиод не загорится
      digitalWrite(pin8, LOW);

    }
    delay(50);

}
,