Skip to content
the poor coder

Node-RED blink

Poor Man
Published
Reading time
3 min read
On this page

If you are looking to make a simple LED blink using Node-RED, you are in the right place. In this answer, I will explain how to use the built-in inject and function nodes in Node-RED to control an LED connected to a GPIO pin on a Raspberry Pi.

Step 1: Set up the hardware#

Before we can start controlling anything with Node-RED, we need to set up the hardware. Connect an LED to a GPIO pin on your Raspberry Pi. Make sure to include the appropriate resistor to prevent damaging the LED. For example, if you connect the LED to GPIO pin 18, connect a 220 ohm resistor between the positive leg of the LED and pin 18. Connect the negative leg of the LED to a ground pin on the Raspberry Pi.

Step 2: Import the necessary nodes#

In order to control the GPIO pins on the Raspberry Pi, we need to install the node-red-contrib-gpio module. To do this, go to the menu in Node-RED and select "Manage Palette." Click on the "Install" tab and search for "gpio." Install the node-red-contrib-gpio module.

Step 3: Create the flow#

Now that we have our hardware set up and our necessary nodes installed, we can create the flow in Node-RED. Drag an inject node onto the flow and set it to inject a message every second. Then drag a function node onto the flow and wire it to the inject node.

Text

[{"id":"b1fb46c9.9b2d5","type":"inject","z":"e025121c.8c33d","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"1","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":190,"y":140,"wires":[["44ce6d8.7a038a4"]]},{"id":"44ce6d8.7a038a4","type":"function","z":"e025121c.8c33d","name":"Toggle LED","func":"var state = context.get('state') || 0;\nstate = state ? 0 : 1;\ncontext.set('state', state);\n\nmsg.payload = state ? \"on\" : \"off\";\nmsg.topic = \"18\";\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":390,"y":140,"wires":[["3c3f213b.28c9f8"]]},{"id":"3c3f213b.28c9f8","type":"gpio out","z":"e025121c.8c33d","name":"","state":"true","stateType":"bool","pin":"18","intype":"str","debounce":"25","read":false,"write":true,"x":550,"y":140,"wires":[]}]

The function node included in the flow toggles the state of the LED between on and off every time the inject node sends a message. The gpio out node included in the flow reads the state from the function node and sends it to the GPIO pin connected to the LED.

Step 4: Deploy the flow#

After creating the flow, deploy it by clicking the "Deploy" button in the top right corner of the Node-RED screen. Your LED should now be blinking!

If you want to change the frequency of the blink, you can change the rate at which the inject node sends messages. If you want to use a different GPIO pin, you can change the pin number in the function node and the gpio out node.

That's it! With just a few simple steps, you can now control an LED connected to a Raspberry Pi using Node-RED.

Keep going

2023

how to sort an array

How to Sort an Array If you have an array and you want to order its elements in a specific way, you need to use a sorting algorithm. There are several sorting algorithms available, but two of the most commonly used are…

javascript2 min read
2023

jquery mobile or desktop

jQuery Mobile or Desktop? As a web developer, I have had some experience with both jQuery Mobile and jQuery Desktop. Both frameworks have their pros and cons, and which one to use really depends on the specific project…

javascript1 min read
2023

node.js folder structure

Node.js Folder Structure If you are new to Node.js, it can be daunting to create a folder structure that will work for your project. The structure you choose will depend on the size and complexity of your project. Here…

javascript1 min read
ESC