NEWS
Управление GPIO в orange pi zero
-
Доброго дня, подскажите кто знает при помощи чего можно реализовать управление GPIO orange pi zero к которой будут подключены релейные модули для управления светом, спасибо
-
! var gpio = require("gpio");
! var gpioSensDoor = 87;
! var gpioRelLamp1 = 88;
! var gpioSensMotion = 89;
! var gpioRelLamp2 = 94;
! createState('SensDoor','',{type:'boolean',role:'indicator.state',read:true});
! createState('RelLamp1','',{type:'boolean',role:'indicator.state',read:true});
! createState('RelLamp2','',{type:'boolean',role:'indicator.state',read:true});
! createState('SensMotionVestibul','',{type:'boolean',role:'indicator.state',read:true});
! /*
! var gpioObjsCount1, gpioObjsCount2, gpioObjsCount3, gpioObjsCount4, gpioObjsCount5, gpioObjsCount6,
! gpioObjsCount7, gpioObjsCount8, gpioObjsCount9, gpioObjsCount10, gpioObjsCount11, gpioObjsCount12,
! gpioObjsCount13, gpioObjsCount14, gpioObjsCount15, gpioObjsCount16, gpioObjsCount17;
! */
! // Calling export with a pin number will export that header and return a gpio header instance
! var gpio87 = gpio.export(gpioSensDoor, {
! // When you export a pin, the default direction is out. This allows you to set
! // the pin value to either LOW or HIGH (3.3V) from your program.
! direction: 'in',
! // set the time interval (ms) between each read when watching for value changes
! // note: this is default to 100, setting value too low will cause high CPU usage
! interval: 100,
! // Due to the asynchronous nature of exporting a header, you may not be able to
! // read or write to the header right away. Place your logic in this ready
! // function to guarantee everything will get fired properly
! ready: function() {
! }
! });
! var gpio88 = gpio.export(gpioRelLamp1, {
! direction: 'out',
! ready: function() {
! }
! });
! var gpio89 = gpio.export(gpioSensMotion, {
! direction: 'in',
! ready: function() {
! }
! });
! var gpio94 = gpio.export(gpioRelLamp2, {
! direction: 'out',
! ready: function() {
! }
! });
! // bind to the "change" event
! gpio87.on("change", function(val) {
! // value will report either 1 or 0 (number) when the value changes
! if ( val == 1 ) {
! setState('SensDoor', true, true);
! } else {
! setState('SensDoor', false, true);
! }
! });
! gpio89.on("change", function(val) {
! // value will report either 1 or 0 (number) when the value changes
! if ( val == 1 ) {
! setState('SensMotionVestibul', true, true);
! } else {
! setState('SensMotionVestibul', false, true);
! }
! });
! on("RelLamp1", function (obj) {
! if ( obj.newState.val == 1 ) {
! gpio88.set();
! } else {
! gpio88.set(0);
! }
! });
! on("RelLamp2", function (obj) {
! if ( obj.newState.val == 1 ) {
! gpio94.set();
! } else {
! gpio94.set(0);
! }
! });