NEWS
Управление 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);
! }
! });
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden