Wouldn’t it be interesting to have an API to control our hardware, like Arduino or Raspberry Pi? We now have the tooling to make this possible and easy.
Having an API for our hardware allows us to remotely control and/or monitor our hardware with code. With this power, we can even build apps on top of our hardware!
We’ll walk through creating an API for the Raspberry Pi Zero W to control four LEDs, each connected to its own GPIO. The same idea works for other hardware too.
First, we’ll need to set up our Raspberry Pi Zero W. Unlike typical Pi setups, we can do this without a monitor. If you need help with this, check out this tutorial.
To begin, we’ll need to make sure our device is updated and the proper libraries are installed.
Update and Install Libraries
First, let’s update our Pi:
sudo apt-get upgrade && sudo apt-get update
Next, install the libraries we need:
sudo apt-get install git python-pip python-gpiozero python-pkg-resources
Clone the Code
Using Git, clone the code from GitHub:
git clone https://github.com/Losant/example-raspberry-pi-api.git
Change to the new project directory:
In the folder, you’ll see a file named “index.py”. This is where the magic happens. You can see the contents of this file in the Code section.
We still need to configure one line of the code before we can run:
device = Device("my-device-id", "my-app-access-key", "my-app-access-secret")
You can obtain the device ID, access key, and access secret from Losant.
Losant is an easy-to-use and powerful developer platform designed to help you quickly build connected applications.
2. Create a device.
In Losant, a device could be Raspberry Pi, Arduino, smart bulb, or any custom hardware. Devices can contain many sensors or attached peripherals.
2. Create an Access Key and Secret.
To connect your devices to the Losant Platform, you must use a set of security credentials called access keys. Access keys consist of a generated key and secret pair.
3. Create a Losant Experience.
Writing an API service, implementing all of the user authentication, and hosting the result somewhere is a lot of work. An Experience in Losant brings all of this functionality directly inside your Losant application.
After creation, a lot happens. We created a Walkthough Video that walks you through the process and gives some background to what’s going on.
3. Create an Endpoint
An Endpoint is a combination of an HTTP method and a route that, when invoked by an HTTP request, can fire a workflow. That workflow does some work, like control an LED, and responds to the request.