Close
0%
0%

Two-way Control with Web and Button

This is the simplest application enabling the control of a GPIO line through a hardware button control.

Similar projects worth following
You can expand the functionality of the prev app if you add a hardware button control. Pressing the button will also toggle the state of the GPIO line (LED, relay,...) which is reflected in the LED state displayed in the browser window.

You can expand the functionality of the prev app if you add a hardware button control. Pressing the button will also toggle the state of the GPIO line (LED, relay,...) which is reflected in the LED state displayed in the browser window.

GitHub Repository

Name: tps-gpio-tutorials

Repository page: https://github.com/tibbotech/tps-gpio-tutorials

Clone URL: https://github.com/tibbotech/tps-gpio-tutorials.git

Updated At: Mon Oct 10 2016

View all 7 components

  • 1
    Step 1

    Node.js Application

    Add the following code to server.js:

    server.js

    ...
    
    var button = gpio.init("S11A");
    
    var wasButtonPressed = false;
    
    button.setDirection('input');
    
    setInterval(function(){
        // If button is just released...
        if(button.getValue() === 1 && wasButtonPressed === true){
            wasButtonPressed = false;
    
            // ...reads the LED state...
            var ledState = led.getValue();
    
            //...inverses it...
            if(ledState === 1){
                ledState = 0
            }else{
                ledState = 1;
            }
    
            //...writes...
            led.setValue(ledState);
    
            //...and submits to the web app if connected
            if(clients !== undefined){
                clients.emit('tps:state:changed', ledState);
            }
        }else if(button.getValue() === 0){
            // If button is pressed
            wasButtonPressed = true;
        }
    },100);
    
    ...
    To lean more clik here

View all instructions

Enjoy this project?

Share

Discussions

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates