Ultrasonic Sensor on Raspberry Pi Node-Red
In this example, we will show you how to
- 1.Connect an HC-SR04 Ultrasonic sensor to your Raspberry Pi
- 2.Sensing through Node-Red
- 3.Publish data to IoTFlows console
- 4.Publish Alert to IoTFlows Alert Channel
To complete this project you will need:
- HC-SR04 Ultrasonic sensor
- Raspberry Pi
- Jumper Wires
- IoTFlows Platform
The HC-SR04 Ultrasonic sensor has 4 pins: ground (GND), Echo Pulse Output (ECHO), Trigger Pulse Input (TRIG), and 5V Supply (Vcc). As shown below
We will use the jumper wires to connect these 4 pins to the Raspberry pins GPIO 5V [Pin 2], GPIO GND [Pin 6], GPIO 23 [Pin 16], GPIO 24 [Pin 18].
- 1.Plug four of your male to female jumper wires into the pins on the HC-SR04.
- 2.Plug the Vcc jumper wire into GPIO 5V [Pin 2] of the Pi.
- 3.Plug the GND jumper wire into GPIO GND [Pin 6] of the Pi.
- 4.Plug the TRIG jumper wire into GPIO 23 [Pin 16] of the Pi.
- 5.Plug the ECHO jumper wire into GPIO 24 [Pin 18] of the Pi.
IMPORTANT: The sensor output signal (ECHO) on the HC-SR04 is rated at 5V. However, the input pin on the Raspberry Pi GPIO is rated at 3.3V. Sending a 5V signal into that unprotected 3.3V input port could damage your GPIO pins, which is something we want to avoid! We recommend you to use a small voltage divider circuit, to lower the sensor output voltage to something our Raspberry Pi can handle. For simplicity, we will skip this step.
You are done! You've connected your HC-SR04 Ultrasonic sensor to your Raspberry Pi.
Now that we've hooked our Ultrasonic sensor to our Pi, we need to program Node-Red to detect distance.
In your Node-Red console, make sure you have the node for a Raspberry Pi to use a SRF04 or SRF05 range finder
After installation is complete, you will see the following rpi srf node in your console
Drag and drop the rpi srf node in your canvas and configure it as follows
Click Done and that is it! you can also add a debug node to view the incoming data on your Node-Red console.
Click on the debug node and select node status (32 characters) for the values to be displayed below that node
Next, we will publish data into our IoTFlows data streams table. To do this we will Node-Red IoTFlows nodes, if you do not have these installed, go to IoTFlows Node-Red Nodes for installation details.
We will label the data stream the following:
- Data Stream Name: Ultrasonic
- Data Stream Description: Ultrasonic Sensor example
- Data Stream Units: cm
Now that we have a data stream created for our Ultrasonic sensor, we will drag and drop the datastream out node into our canvas. If you do not have this installed, go to IoTFlows Node-Red Nodes for installation details.
Double-click on the datastream out node and click on the edit button for the server
Type in your Client Id and Password, and click Add.
Your client should now be displayed as your server.
Next, we will click the refresh button in the Topic row and select our Ultrasonic sensor
Next, connect your Pi SRF node to your datastream out node and click Deploy
Now your data stream node is connected and we are receiving data into our IoTFlows data streams table, as shown below.
Next, we will publish an Alert into our IoTFlows Alerts table and send an email and text message after this alert is triggered. To do this we will use the Node-Red IoTFlows nodes, if you do not have these installed, go to IoTFlows Node-Red Nodes for installation details.
In order to trigger an alert, we will set up a simple function that tells us when the Ultrasonic sensor reaches a value of over 350.
First, we set up a function node to determine if the value has reached over 350. We will name it "is > 350?"
if(msg.payload > 350)
Next, we will set up a delay node in order to not get spammed by messages when that value is reached and stayed there continuously.
Next, we will configure the delay node, this is a personal preference so adjust parameters to what fits you best.
This will limit the number of messages we receive to just 1 message per minute and it will ignore the rest.
Next, we will set up another function node to alert us that the value has reached over 350. We will name this "Ultrasonic Alert Message"
"subject": "Distance over reached",
"description": "Ultrasonic sensor distance is over 350"
Now that we have everything set up to publish our alert, we will drag and drop the alert channel out node into our canvas. If you do not have this installed, go to IoTFlows Node-Red Nodes for installation details.
Double-click on the alert channel out node and similar to the data streams node, we will double click on the edit button for the Server and configure our Client Id and Password. If you do not have a client set up or need more information on setting up a client go to Creating a Device Client.
Next, we will click the refresh button in the Topic and select the Alert Channel that we will like to publish to.
Once everything is complete, click Done.
Next, we will connect all the nodes and click Deploy
As you can see, the alert channel out node is now connected.
We can now go to our Alert Channel in the IoTFlows platform and view the alert message
If you would like to receive text messages or email with these alert messages, turn on your notifications in your Manage Alert Channel Notifications. For more details on configuring notifications, go to Manage Alert Channel Notifications.