Rhasspy

Rhasspy is a loosely connected set of tools for creating a personal voice assistant. Each of the tools, including speech recognition and speech generation, can run on your own computer without sending your private data off to a cloud-based service (although you can still choose to do so).

The components within Rhasspy's pipeline can talk to each other using various methods such as by posting data to a web URL or launching a program in response to a command.

Using an RFID module

Passive RFID tags are basically just little antennas with an extremely low power integrated circuit. When the IC is activated by power induced by the antenna, it generates a signal to transmit a small amount of data, such as an ID number.

This RC522 RFID module can read RFID tags and write to RFID tags that support writing. The RFID tag has a 4-byte (or 32-bit) UID, which means there are about 4.3 billion unique possibilities. Although that sounds like a lot, there are some situations where it's not considered enough to prevent collisions or brute-force guessing.

Passive infrared (PIR) motion sensors

A passive infrared (PIR) motion sensor can detect changes in infrared radiation, most often in order to detect the motion or presence of people or animals.

The sensor can be thought of as a two-pixel infrared camera. It has two internal infrared sensors and circuitry to detect changes between them. The internal sensors are covered by a Fresnel lens that determines the PIR device's field of view.

The following relates specifically to the HC-SR501 model, but it should also apply to similar PIR motion sensors for hobbyists.

Node-RED

Node-RED is a browser-based programming tool for interacting with hardware devices, online services, and other software that you may be running. Programming is done using a combination of JavaScript and a visual programming language consisting of nodes that receive some kind of data, transform or act upon the data, and then send messages out to other connected nodes. These small programs are called flows.

MQTT security

MQTT servers can be set up in a very permissive configuration, which makes the protocol easy to work with but leaves it vulnerable to mischief by anyone connected within the perimeter of the network.

This may not be a problem if you're just using MQTT for novelty and maybe to turn a lamp on and off. It's also not problematic if your network is perfectly secured from outsiders. However, if you are using MQTT for physical access control or important appliances such as heating and cooling, it is essential to set up a more secure system.

Using an LED matrix module

The MAX7219 LED matrix module used in this example has 64 distinct LEDs that can be individually turned on or off in the Arduino code.

It uses SPI to control 64 individual LEDs while consuming just three GPIO pins on the microcontroller, plus the VCC and GND pins for powering the LED module. The module also has output pins that can be chained together with up to eight (or more) modules.

We will use a library called LEDMatrixDriver, which purports to be faster than another library called LedControl.

Blinking an LED

Many impressive projects involve LED light effects of some sort. At the heart of it all is the concept of turning an LED on and off in a regular pattern. Doing this is very easy!

To light an LED, all you need is a power source and a resister. We will use the Arduino itself to provide power from one of the pins. Turning this pin on and off (changing the voltage state from from HIGH to LOW) will cause the LED to blink.

Infrared receiver modules

Infrared receiver modules are commonly used in remote control systems, and sometimes for line-of-sight wireless data transmission.

For the IR receiver module pictured here, which is based on a VS1838B sensor receiving a 38 kHz carrier, we will use a library called IRremote, which includes support for several different modules and protocols.

The module has three pins, labeled `G`, `R`, and `Y`. These letters may (or may not) stand for green, red, and yellow, which happen to be sensible colors to use for the wires connecting ground, voltage, and signal pins, respectively.

Home Assistant

Home Assistant is home automation software, primarily intended for installation on a Raspberry Pi computer. It is an ambitious project with an active community.

Some ways people use Home Assistant

If home automation sounds interesting, but you're at a loss for applications specific to your home, here are a few ideas to spark your imagination. Some of these will take a bit of work to set up using additional tools such as . It won't always be easy, but just about anything is possible once you develop a plan and follow through with it.

Subscribe to