npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

node-red-contrib-grovepi-iot4h

v0.1.4

Published

Node Red nodes for IoT4H workshops and the use of GrovePi+ sensors and actuators.

Downloads

65

Readme

IoT4H GrovePI Nodes

This project was developed and tested on Raspberry Pi 4 with GrovePi+ on Bullseye (Rasperry Pi OS 11), Node 18.19.1 and npm 10.2.4.

Installation

  1. npm install node-red-contrib-grovepi-iot4h (in /home/pi/.node-red/node_modules/)
  2. node-red-restart

Nodes

See https://www.dexterindustries.com/GrovePi/engineering/port-description/

In addition to a node for each of the most common sensors, there are four “general” nodes.

  1. Digital Input, values: 0 or 1
  2. Analog Input, values: 0 to 1023
  3. Digital Output, values: 0 or 1
  4. Analog Output, values: 0 to 255

msg Properties

See https://nodered.org/docs/user-guide/messages

Usually, the "value" of a message is stored in its payload field. To make integration with other nodes easy, the payload of a sensor message only contains its values, all additional information is stored in other properties.

If a sensor returns multiple values (e.g. temperature and humidity), msg.payload is an array of these values.

In addition to that, msg.valueTypes is an array of value type specifications {unit: ..., name: ..., type: ...}.

This additional information is used for displaying sensor values on the LCD and when sending datapoints to the OpenDash platform.

The name and id values used in the open.DASH JSON object are stored in msg.sensorname and msg.sensorid.

user is set by the "RMQ Output" node and uses the "Username" value entered in the node configuration.

“Event Mode”

For some sensors, like the button, it might be useful to send an event only when the sensor value changes.

To do so, set the reading interval to a low value (e.g. 200ms), then connect the sensor to a "rbe" node.

This node only lets messages through if their payload has changed. It can be found at the bottom of the "Functions" section.

Code Replacement Nodes

  1. Save Variable
  2. Load Variable
  3. Timestamp
  4. Comparison Filter
  5. Threshold Filter
  6. Variable Comparison Filter
  7. Moving Average
  8. Array Index

Inputs / Sensors

  1. Button
  2. Switch
  3. Rotary Angle
  4. Potentiometer
  5. DTH11 Temperature & Humidity
  6. DTH22 Temperature & Humidity
  7. Analog Input
  8. Digital Input
  9. Water
  10. Moisture
  11. Piezo Vibration
  12. Gas
  13. Ultrasonic Ranger
  14. Air Quality
  15. Light

Outputs / Actuators

  1. LCD RGB-Backlight
  2. LED
  3. Buzzer

Sensors

  1. Analog Output
  2. Digital Output

I2C Sensors

When connecting a I2C sensor, it doesn't matter which pin is used.

Troubleshooting

If a sensor returns false instead of a numeric value, check if the red LED on the GrovePI board is on.

In that case, disconnect all sensors from the board, detach the GrovePI board and put it back on.

Credits

Package contents obtained in part from node-red-contrib-od-grovepi and extended with own nodes for easier access to complex functionality. The main purpose is to avoid using written code at all.

Salvaged packages for existing sensor nodes for NodeRed: