Skip to content

Digital personal assistant for my dorm room. Name comes from Bruno, Brown University's mascot...don't make fun of it, BrYOUno is a great name.

Notifications You must be signed in to change notification settings

RyanHecht/BrYOUno

Repository files navigation

BrYOUno v1.0

The in-dorm personal assistant
Features, demos, and partial dependency list below

BrYOUno main setup

Background

A personal automation assistant for my dorm room is something I've planned on making before even coming to college, and luckily for me, an automation class gave me an excuse to make it sooner than I'd expected! Armed with a Raspberry Pi, some electronics, an Arduino Uno, and a whole 'lotta Python, I've created version 1.0 of BrYOUno (Bruno to his friends). Ask him how he's doing!

Features

*Automates dorm lightswitch

*Plays Google Play Music

*Plays audio from MCParks Audio Server (a personal project of mine)

*Lists, adds, and completes Todoist tasks

*Queries Brown Dining API (or it will, when the API is updated)

*Logs all actions/errors to SQLite database

*Voice activated, or controllable from web dashboard

Control flow

Control flow

Lights

*GPIO digital output to infrared transmitter circuit

*Sends signal to infrared receiver, which inputs to an Arduino Uno

*Arduino Uno switches the state of a servo, which turns a piece of wood housing the lightswitch

Lights setup

#####Lights Demo Video

IMAGE ALT TEXT HERE

Google Play Music

*GMusicProxy, open source locally hosted Google Play Music API

*User chooses between song, artist, playlist, or station, system obtains necessary information, then fetches the M3U playlist file

*M3U file is handed off to mplayer subprocess, which plays the audio

*Stopped with Flask API call, “/music/stop”

#####Google Play Music Demo Video

IMAGE ALT TEXT HERE

Task Management

*ToDoist API/Python wrappers

*User is orally prompted whether they’d like to list, add, or complete a task

*Process is looped, so you can perform multiple operations at a time

#####Todoist Demo Video

IMAGE ALT TEXT HERE

Alternative input

In addition to voice commands, system may be controlled through web dashboard (Made with Google's Materialize CSS library) I have this one running on a tablet mounted above my bed.

IMAGE ALT TEXT HERE

Data logging

All actions and errors are logged in an SQLite database, which is viewable online with sqllite-web

database-viewer

Hardware Dependencies

+Raspberry Pi (model 3 used)

+Microphone with onboard sound card

+Speakers

+Electronics for IR transmitter circuit (transmitter/LED, PNP transistor, resistor)

+Electronics for IR receiver (receiver, servo)

+Arduino (Uno used)

+Tablet/Phone/Computer for web interface

Software Dependencies on Raspberry Pi (partial list, I'm more than likely forgetting stuff)

+Raspian 8

+Python 2.7

+Snowboy

+SpeechRecognition

+PyAudio 0.2.9+

+Websocket client

+pyttsx

+Flask

+WSGI webserver

+sqlite-web

+GMusicProxy

+pytodoist

+urllib

That's all I can think of, if I'm missing anything, feel free to open an issue!

About

Digital personal assistant for my dorm room. Name comes from Bruno, Brown University's mascot...don't make fun of it, BrYOUno is a great name.

Resources

Stars

Watchers

Forks

Packages

No packages published