Tri-Color USB Controlled Tower Light with Buzzer

Price:
Sale price £74.70
incl. VAT
excl. VAT
Stock:
Only 2 units left
Quantity:

With this Tri-Color USB Controlled Tower Light with Buzzer, you can easily monitor and alert humanoids as to the status of a project, machine, or even if the bathroom is occupied!

Unlike our other tower lights, no wiring or microcontroller programming is required. It's completely plug-and-play for use with any computer that has a USB port, even a Raspberry Pi SBC - so we recommend it when you just want to get something running and don't want to noodle around with 12V power plugs and transistors. It's also got a great adjustable-angle body and three mounting holes on the base for easy installation.

The tower light is powered and controlled over USB, so just plug it right in. Inside is a microcontroller connected over a CH43x USB-to-UART chip, so you'll need to install a CH43x driver for the COM/Serial port to show up.

Once the serial port is created, connect to it over 9600 baud and send command codes to turn on and off the red, yellow and green LEDs and enable/disable the buzzer. There's also a blink command, so you don't have to continuously turn on/off the LED to have a pulsing/blinking effect. See below for an example Python script that will toggle everything on/off to test.

Technical Details

Dimensions:

  • Overall length: 25.4cm / 10"
  • Lamp diameter: 4.8cm / 1.8"
  • Lamp base diameter: ~9cm / 3.5"
  • USB cable length: 1.3m / ~50"

Python code example to control the lamp over USB

"""
Example for Adafruit USB tower light w/alarm
don't forge to `pip install pyserial` or `pip3 install pyserial`
"""

import serial
import time

serialPort = 'COM57'  # Change to the serial/COM port of the tower light
#serialPort = '/dev/USBserial0'  # on mac/linux, it will be a /dev path
baudRate = 9600

RED_ON = 0x11
RED_OFF = 0x21
RED_BLINK = 0x41

YELLOW_ON= 0x12
YELLOW_OFF = 0x22
YELLOW_BLINK = 0x42

GREEN_ON = 0x14
GREEN_OFF = 0x24
GREEN_BLINK = 0x44

BUZZER_ON = 0x18
BUZZER_OFF = 0x28
BUZZER_BLINK = 0x48

def sendCommand(serialport, cmd):
    serialport.write(bytes([cmd]))

if __name__ == '__main__':
    mSerial = serial.Serial(serialPort, baudRate)

    # Clean up any old state
    sendCommand(mSerial, BUZZER_OFF)
    sendCommand(mSerial, RED_OFF)
    sendCommand(mSerial, YELLOW_OFF)
    sendCommand(mSerial, GREEN_OFF)

    # turn on each LED set in order
    sendCommand(mSerial, RED_ON)
    time.sleep(0.5)
    sendCommand(mSerial, RED_OFF)

    sendCommand(mSerial, YELLOW_ON)
    time.sleep(0.5)
    sendCommand(mSerial, YELLOW_OFF)

    sendCommand(mSerial, GREEN_ON)
    time.sleep(0.5)
    sendCommand(mSerial, GREEN_OFF)

    # beep!
    sendCommand(mSerial, BUZZER_ON)
    time.sleep(0.1)
    sendCommand(mSerial, BUZZER_OFF)

    # Use the built-in blink modes
    sendCommand(mSerial, RED_BLINK)
    time.sleep(3)
    sendCommand(mSerial, RED_OFF)

    sendCommand(mSerial, YELLOW_BLINK)
    time.sleep(3)
    sendCommand(mSerial, YELLOW_OFF)

    sendCommand(mSerial, GREEN_BLINK)
    time.sleep(3)
    sendCommand(mSerial, GREEN_OFF)

    # Please be kind, re-wind!
    sendCommand(mSerial, BUZZER_OFF)
    sendCommand(mSerial, RED_OFF)
    sendCommand(mSerial, YELLOW_OFF)
    sendCommand(mSerial, GREEN_OFF)
    mSerial.close()

Payment & Accreditations

Payment methods
Visa Mastercard Maestro PayPal Amazon Klarna

Your payment information is processed securely. We do not store credit card details nor have access to your credit card information.

Accreditations