Доброго времени суток.
прошу прощения что немного не в тему, но вроде как по тематике ближе всего
проблема в следующем:
накидал проект для мониторинга аквариума с использованием того что в теме
разделил на два модуля.
1-ый - управление кнопками и реле
2-ой - вывод инфо на дисплей
var gpiobutton = require('gpiobutton');
var buttonSpec = {gpiono:19};
var buttonSpec2 = {gpiono:18};
var buttonL = new gpiobutton.button(buttonSpec);
var buttonF = new gpiobutton.button(buttonSpec2);
var onoff = require('onoff');
var Gpio = onoff.Gpio,
relayIn1 = new Gpio(2,'out' );
relayIn2 = new Gpio(6,'out' );
buttonL.on("buttonpress", function(event) {
var value = (relayIn1.readSync()+1) % 2;
relayIn1.write(value, function() {
// console.log("Changed LED state to: " + value);
});
});
buttonF.on("buttonpress", function(event) {
var value = (relayIn2.readSync()+1) % 2;
relayIn2.write(value, function() {
// console.log("Changed LED state to: " + value);
});
});
второй:
//read gpio state //
var valueL=1;
var valueF=1;
var onoff = require('onoff');
var Gpio = onoff.Gpio,
relayIn1 = new Gpio(2,'out' );
relayIn2 = new Gpio(6,'out' );
var light = 'Light ON ';
var fito = 'Fito ON'
//LCD part
var ip = require('ip');
var ds18b20 = require('ds18b20');
var LCD = require('lcdi2c');
var sleep = require('sleep');
var lcd = new LCD( 0, 0x27, 20, 4 );
//lcd.createChar(0,[0x18,0x18,0x3,0x4,0x4,0x4,0x3] );
var now = 0;
lcd.on();
//lcd.setBacklight();
lcd.clear();
lcd.home();
function run() {
now = new Date();
var time1 = now.toLocaleTimeString([], {hour: '2-digit', minute:'2-digit', hour12: false});
var date1 = now.toLocaleDateString([], {month: 'long',day: 'numeric', year: 'numeric'});
valueL = (relayIn1.readSync()) % 2;
valueF = (relayIn2.readSync()) % 2;
// console.log('value= '+value)
if (valueL==0){
light = 'Light ON ';
}
else light = 'Light OFF';
if (valueF==0){
fito = 'Fito ON ';
}
else fito = 'Fito OFF';
//Print and check for errors. If errors found, shut down gently.
lcd.println( date1 + ' ' + time1 + ' ', 1 );
lcd.println( light + ' | ' + fito, 2 );
lcd.println( 'Aqua Temp C = '+ ds18b20.temperatureSync('28-041663a8bcff') + ' ' , 3 );
var myip=ip.address();
lcd.println( 'IP= '+myip, 4 );
setTimeout(() => run(), 100);
};
run();
проблема в том, что по истечении 3-4 часов работы модуль дисплея выгружается из памяти.
помогите понять почему