- How to Adjust X and Y Axis Scale in Arduino Serial Plotter (No Extra Software Needed)Posted 4 months ago
- Elettronici Entusiasti: Inspiring Makers at Maker Faire Rome 2024Posted 4 months ago
- makeITcircular 2024 content launched – Part of Maker Faire Rome 2024Posted 6 months ago
- Application For Maker Faire Rome 2024: Deadline June 20thPosted 8 months ago
- Building a 3D Digital Clock with ArduinoPosted 1 year ago
- Creating a controller for Minecraft with realistic body movements using ArduinoPosted 1 year ago
- Snowflake with ArduinoPosted 1 year ago
- Holographic Christmas TreePosted 1 year ago
- Segstick: Build Your Own Self-Balancing Vehicle in Just 2 Days with ArduinoPosted 1 year ago
- ZSWatch: An Open-Source Smartwatch Project Based on the Zephyr Operating SystemPosted 1 year ago
Two-way Control with Web and Button
Web site:
http://tibbo.com/linux/nodejs/two-way-control-web-button.htmlProject Summary:
This is the simplest application enabling the control of a GPIO line through a hardware button.
Full Project:
About the Application
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.
What you need
Besides the hardware used in the prev app you will also need:
- 1 x Tibbit #38 (push button)
- 1 x Tibbit #00_3 (2 direct I/O Lines with 5V and Ground)
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
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); ...