Giter Site home page Giter Site logo

clindbergh / express-gpio-rest-api Goto Github PK

View Code? Open in Web Editor NEW

This project forked from juangesino/express-gpio-rest-api

0.0 2.0 0.0 3 KB

Express server for a RESTful API to access the Raspberry Pi's GPIO pins.

License: MIT License

JavaScript 100.00%

express-gpio-rest-api's Introduction

Express GPIO RESTful API

Express server script for a RESTful API to access the Raspberry Pi's GPIO pins.

Turn pins on and off by sending GET requests to the Raspberry Pi.

Installation

First, make sure you have node.js and npm installed.

If you don't, open a terminal and type:

sudo apt-get install nodejs npm node-semver

Now we need to allow your user to access the GPIO pins (can only be done from root by default). We are going to use GPIO Admin for that:

git clone git://github.com/juangesino/quick2wire-gpio-admin.git
cd quick2wire-gpio-admin
make
sudo make install
sudo adduser $USER gpio

Logout and login again (more info).

Now we are ready to clone the server.

git clone https://github.com/juangesino/express-gpio-rest-api.git
cd express-gpio-rest-api
npm install

To run the script:

node app.js

Usage

The server has 3 simple routes:

GET /on/:pin_number
GET /off/:pin_number
GET /blink/:pin_number/:time_in_milliseconds

The first method just sets the pin HIGH.

The second method sets the pin LOW.

The third method sets the pin HIGH, waits the number of milliseconds you requested and then sets the pin LOW.

The server script uses the node.js library pi-gpio. This library uses the physical pin numbering (the 'Pin#' in the image bellow) for the GPIO pins:

Raspberry Pi GPIO Header

For more information about what pins to use please go to the pi-gpio docs.

Examples

The server runs by default on port 3000 (you can change this on the app.js file).

The requests should be done to the Raspberry Pi's IP address (e.g.: 192.168.0.10:3000).

Turn pin 12 on

GET /on/12

Turn pin 12 off

GET /off/12

Turn pin 12 on for 2 seconds, then turn off

GET /blink/12/2000

Contributing

  1. Fork it ( https://github.com/juangesino/express-gpio-rest-api/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

TODO

  • Read pins.
  • Check for bad params.
  • GET request should show the pin state and PUT should be used to change state.
  • Blink a given number of times.
  • Inverse blink (turn off, wait, turn on).
  • Write tests.

License

See MIT-LICENSE

express-gpio-rest-api's People

Contributors

juangesino avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.