### Check out this tutorial to see how easy it is to set up hardware flows with Node-RED's drag-and-drop interface.
![No coding required: Node-RED on a Raspberry Pi](https://opensource.com/sites/default/files/styles/image-full-size/public/images/life/hardware_hammer_sign.jpg?itok=vh76LBib "No coding required: Node-RED on a Raspberry Pi")
Image by :
Thomas Hawk on[Flickr][12].[CC BY-NC 2.0][13]. Modified by Opensource.com
Node-RED is a programming tool that lets you quickly connect hardware devices using a browser-based editor. It comes with a wide range of nodes that can be used to build flows in a drag-and-drop manner, significantly reducingyour development time.[Node-RED][14]is installed with Raspian Jessie for Raspberry Pi, and there is also an option to download Node-RED separately.
More on Raspberry Pi
* [Our latest on Raspberry Pi][1]
* [What is Raspberry Pi?][2]
* [Getting started with Raspberry Pi][3]
* [Send us your Raspberry Pi projects and tutorials][4]
To show you how it works, we'll build a simple tool using Node-RED to communicate with a cellular modem connected to a Raspberry Pi. With cellular modems, you can send/receive data from your Raspberry Pi over a cellular network. You can use one of the 3G/4G USB dongles commonly available through cellular network providers, or you can connect a development boardwith a 3G or 4G wireless modem.
Whether you're connecting with a USB dongle or a development board, the connection interface to the Raspberry Pi is through a USB port. In this tutorial,I'm connecting a[SIM900][15]development board to Raspberry Pi through a USB-to-serial converter cable.
### [node_red1.png][5]
![Connecting SIM900 to Raspberry Pi through a USB-to-serial converter cable](https://opensource.com/sites/default/files/u128651/node_red1.png "Connecting SIM900 to Raspberry Pi through a USB-to-serial converter cable")
The first step is to check that the SIM900 development board is connected to the Raspberry Pi.
### [node_red2a.png][6]
![Checking that the SIM900 development board is connected](https://opensource.com/sites/default/files/u128651/node_red2a.png "Checking that the SIM900 development board is connected")
The USB-to-serial adapter shows up here as one of the USB devices connected to the Raspberry Pi.
Next, check the USB port number the SIM900 board is connected to.
### [node_red3a.png][7]
![Checking the SIM900 board's USB port number](https://opensource.com/sites/default/files/u128651/node_red3a.png "Checking the SIM900 board's USB port number")
In the last line above, you can see that the SIM900 board (connected through the USB-to-serial converter) is connected to**ttyUSB0**on the Raspberry Pi. Now we're ready to start using Node-RED.
Launch Node-RED on the Raspberry Pi.
### [node_red4a.png][8]
![Launching Node-RED in Raspberry Pi](https://opensource.com/sites/default/files/u128651/node_red4a.png "Launching Node-RED in Raspberry Pi")
Download this[sample flow][16]and import it into Node-RED. Note that the flow file is a JSON representation of the graphical UI.
The imported flow should look like this in Node-RED:
### [node_red5.png][9]
![The imported flow in Node-RED](https://opensource.com/sites/default/files/u128651/node_red5.png "The imported flow in Node-RED")
Injection nodes set up[AT commands][17]required to query the modem. The**Add Newline**function node appends**\r\n**to the AT commands passed from the injection nodes. Output from**Add Newline**is then wired to the**Serial Out**node, which writes data to the serial port. The AT command response from the modem is read through the**Serial In**node, which outputs the response to the**Debug**window. Make sure the serial port number and port speed are configured in both the**Serial In**and**Serial Out**nodes.
Node-RED is an easy-to-use programming tool that can be used to quickly integrate and test hardware devices. As you can see from this tutorial, connecting and testing a cellular mode with Raspberry Pi using Node-RED required no coding at all.
For more information about Node-RED and other ways it can be used, visit[the project's website][18].