Сделал скетч для детектора дыма. Хотелось бы узнать насколько он говтов к реальным условиям. Обратил внимание на параметр val - со временем он уменьшается и стремиться к нулю, почему так происходит и что с этим делать? Вот скам код: Код (C++): var SSID = 'setb'; var PASSWORD = 'pass'; var NAME = 'tureg123456789'; var temp = require('@amperka/thermometer').connect(A2); var dweet = require('@amperka/dweetio').connect(NAME); var led = require('@amperka/led').connect(A1); var gasSensor = require('@amperka/gas-sensor').connect({ dataPin: A4, // разъём SVG heatPin: P7, // разъём GHE model: 'MQ2' }); var myBuzzer = require('@amperka/buzzer').connect(P8); /* function run() { setInterval(function() { }, 1000); } */ gasSensor.preheat(function() { var basePpm = gasSensor.calibrate(); print('PPM base in current environment: ', basePpm); setInterval(function() { var val = gasSensor.read('LPG'); print('LPG PPM =', val); dweet.send({ temperature: temp.read('C'), gas: val }); if (val > 20) { myBuzzer.turnOn(); myBuzzer.frequency(4000); myBuzzer.toggle(); myBuzzer.beep(0.5, 0.5); } led.blink(0.1, 0.9); }, 1000); }); var wifi = require('@amperka/wifi').setup(function(err) { wifi.connect(SSID, PASSWORD, function(err) { print('Click this link', dweet.follow()); //run(); }); });
Весь алгоритм заключен в одной функции: Код (Javascript): gasSensor.preheat(function() { var basePpm = gasSensor.calibrate(); print('PPM base in current environment: ', basePpm); setInterval(function() { var val = gasSensor.read('LPG'); print('LPG PPM =', val); dweet.send({ temperature: temp.read('C'), gas: val }); if (val > 20) { myBuzzer.turnOn(); myBuzzer.frequency(4000); myBuzzer.toggle(); myBuzzer.beep(0.5, 0.5); } led.blink(0.1, 0.9); }, 1000); }); Именно она телебонькает ваш датчег и выдает что-то не то. Значит нужно смотреть библиотеку, что вы применяете, сравнивать ее с даташитом и делать выводы. И кто должен этим заниматься?
Навскидку, я бы попробовал уменьшить интервал опроса датчеГа. Посмотрите по даташиту как часто можно его тренькать.
где это смотреть? сейчас пытаюсь переделать код под датчик MQ-9, не могу понять исходя из этого мануала http://wiki.amperka.ru/js:gas-sensor#cycleheat кроме замены prehead на cycleheat, нужно что то еще делать или нет? Опять же какой интервал задать? Боюсь сделать что то неправильно, вдруг потом боком выйдет, перегреется и сам будет причиной пожара
не знаю, а какой может? Он может определять угарный газ, а это больше имеет отношение пожару чем MQ2, разве нет?
датчик дыма ну так это датчик угарного газа и прочих горючих газов. Дым здесь причем? СО может образоваться и вовсе без дыма, как и дым без СО. При пожаре и хорошем доступе кислорода CO выгорает до CO2.
На датчик подать напряжение через резистор. МК отслеживать напряжение в линии. Как только упало, значит датчик сработал. Какое напряжение подать в линию - смотрим паспорт на датчик.