Difference between revisions of "Project:Notification Board"

From London Hackspace Wiki
Jump to navigation Jump to search
m (This would likely benefit from a rewrite using https://github.com/rm-hull/luma.led_matrix and removing the Arduino using only the Raspberry Pi.)
 
(43 intermediate revisions by 17 users not shown)
Line 1: Line 1:
Project maintained by Solexious, contact via IRC or charlesyarnold@gmail.com
 
 
==Summary==
 
==Summary==
This is the board that will hang in the space.
+
[[File:102424263.jpg|thumb|Prototyping]]
 +
[[File:Jonty and sign.jpg|thumb|Installed]]
 +
This is the board that hangs in the space.
  
It will send visual and audible notifications to the space, and also publish notifications to the network, temperature, movement etc
+
It sends visual and audible notifications to the space, and also publishes notifications to the network: temperature, movement etc
 +
 
 +
Current version 0.2.2
  
 
==Phases==
 
==Phases==
:*Phase 1: <strike>Allow messages to be displayed on the LED board from IRC</strike>
+
:*Phase 1: <strike>Allow messages to be displayed on the LED board from IRC.</strike>
:*Phase 2: Add sounds when the message changes
+
:*Phase 2: <strike>Add sounds when the message changes.</strike>
:*Phase 3: Add strobe beacons
+
:*Phase 3: Add strobe beacons.
:*Phase 4: Daemon the arduino and allow connection via MQTT, add idle messages
+
:*Phase 4: Daemon the arduino and allow connection via MQTT, add idle messages.
:*Phase 5: Add temperature, light level and PIR sensors
+
 
:*Phase 6: Add i-wire, inc i-buttons
+
 
 +
Moved to separate project/arduino:
 +
:<strike>*Phase 5: Add temperature, light level and PIR sensors.</strike>
 +
:<strike>*Phase 6: Add i-wire, inc i-buttons.</strike>
  
 
==Code==
 
==Code==
Line 17: Line 23:
 
:Arduino Lib: [http://github.com/solexious/MatrixDisplay]
 
:Arduino Lib: [http://github.com/solexious/MatrixDisplay]
  
:IRC Script: [http://github.com/londonhackspace/irccat-commands/blob/master/notify.py]
+
:IRC Script: [http://github.com/londonhackspace/irccat-commands/blob/master/setBoard.py]
 +
 
 +
==Change Log==
 +
===v0.3===
 +
* Allow messages up to 162 chars long
 +
* Scroll for messages longer than the screen
 +
 
 +
===v0.2===
 +
* Include full ascii support
 +
* Add initText
 +
* Remove update speed delay
 +
 
 +
===v0.1===
 +
* Initial proof of concept
 +
* Limit to a-z A-Z and 0-9
 +
 
 +
==Protocol Specification==
 +
 
 +
===Sending a message===
 +
Currently, messages are sent directly over serial.
 +
 
 +
They are up to 160 chars long, and can only be from regular ASCII. The message is terminated with a line return.
 +
 
 +
'''This is a test msg\n'''
 +
 
 +
===Proposed new protocol===
 +
There are 2 types of message:
 +
:* Idle - for rolling messages, i.e. temperature, currently playing song, number of irc users. Will keep last value till updated.
 +
:* Alert - for one time shown messages, allows sounds
 +
 
 +
====Idle====
 +
The settings for idle messages are:
 +
* Message slot [0-5] - (see list below for reserving a slot)
 +
* Time sensitive? [0-1] - If you need to bump the idle message to be the next shown, i.e. currently playing song changes
 +
* Message [up to 21 chars]
 +
 
 +
 
 +
Examples:
 +
(Substituting STX, ETB and EOT for their respective ascii chars.)
 +
 
 +
So to send, Temperature: 21.5, you would send:
 +
 
 +
'''STX'''1'''ETB'''0'''ETB'''Temperature: 21.5'''EOT'''
 +
 
 +
 
 +
Or to send, Iron Maiden - Prowler, time sensitive:
 +
 
 +
'''STX'''2'''ETB'''1'''ETB'''Iron Maiden - Prowler'''EOT'''
 +
 
 +
 
 +
====Alert====
 +
The settings for alert messages are:
 +
* Message slot [A] - Denotes alerts from idle messages
 +
* Blink [0-1] - Blink the display for more attention
 +
* Sound [0-5] - Set off a sound, see list
 +
* Display timeout - The length of time to display the message for
 +
* Message [up to 21 chars]
 +
 
 +
 
 +
Examples:
 +
(Substituting STX, ETB and EOT for their respective ascii chars.)
 +
 
 +
To send, Ping: Jaunsicle, with sound ping and blinking for 5 seconds:
 +
 
 +
'''STX'''A'''ETB'''1'''ETB'''1'''ETB'''5'''ETB'''Ping: Jaunsicle'''EOT'''
 +
 
 +
====Message slots====
 +
* 0 - Current Number of users in #london-hack-space
 +
* 1 - Temperature/Humidity
 +
* 2 - Now Playing
 +
* 3 - suggestion: info on tube delays, i.e. http://api.tubeupdates.com/?method=get.status where status != 'good service' (docs at http://tubeupdates.com/documentation/) --[[User:AndyE|AndyE]] 22:39, 12 November 2010 (UTC)
 +
:: see also [[User:Ms7821]] [http://wiki.opentfl.co.uk/Main_Page opentfl.co.uk]
 +
:: TfL API (beta) docs [http://data.london.gov.uk/apibeta] [http://data.london.gov.uk/documents/apibeta-trackernet-services-guide.pdf] (p13) but seems to be currently offline [http://data.london.gov.uk/blog/update-trackernet-feed].
 +
 
 +
* 4 -
 +
* 5 -
 +
 
 +
====Sounds====
 +
* 0 - None
 +
* 1 - PING.WAV
 +
 
 +
==Feature Requests==
 +
 
 +
* Dynamic font loading
 +
* Individual pixel mapping
 +
* <strike>Scrolling to allow for longer messages</strike>
 +
* A fortune/motd feature - when the board has been unchanged for a while, display a random message from a file, e.g. 'clean up your own mess', 'shut the fire door when you leave' or 'do not leave the chuck key in the lathe'.
 +
 
 +
* Audio notification of new message....  Similar to Glados voice from doorbot
 +
 
 +
[[Category:Projects]]
 +
[[Category:Infrastructure]]
 +
[[Category:Space_Infrastructure_Projects]]

Latest revision as of 00:55, 15 January 2019

Summary

Prototyping
Installed

This is the board that hangs in the space.

It sends visual and audible notifications to the space, and also publishes notifications to the network: temperature, movement etc

Current version 0.2.2

Phases

  • Phase 1: Allow messages to be displayed on the LED board from IRC.
  • Phase 2: Add sounds when the message changes.
  • Phase 3: Add strobe beacons.
  • Phase 4: Daemon the arduino and allow connection via MQTT, add idle messages.


Moved to separate project/arduino:

*Phase 5: Add temperature, light level and PIR sensors.
*Phase 6: Add i-wire, inc i-buttons.

Code

Arduino Code: [1]
Arduino Lib: [2]
IRC Script: [3]

Change Log

v0.3

  • Allow messages up to 162 chars long
  • Scroll for messages longer than the screen

v0.2

  • Include full ascii support
  • Add initText
  • Remove update speed delay

v0.1

  • Initial proof of concept
  • Limit to a-z A-Z and 0-9

Protocol Specification

Sending a message

Currently, messages are sent directly over serial.

They are up to 160 chars long, and can only be from regular ASCII. The message is terminated with a line return.

This is a test msg\n

Proposed new protocol

There are 2 types of message:

  • Idle - for rolling messages, i.e. temperature, currently playing song, number of irc users. Will keep last value till updated.
  • Alert - for one time shown messages, allows sounds

Idle

The settings for idle messages are:

  • Message slot [0-5] - (see list below for reserving a slot)
  • Time sensitive? [0-1] - If you need to bump the idle message to be the next shown, i.e. currently playing song changes
  • Message [up to 21 chars]


Examples: (Substituting STX, ETB and EOT for their respective ascii chars.)

So to send, Temperature: 21.5, you would send:

STX1ETB0ETBTemperature: 21.5EOT


Or to send, Iron Maiden - Prowler, time sensitive:

STX2ETB1ETBIron Maiden - ProwlerEOT


Alert

The settings for alert messages are:

  • Message slot [A] - Denotes alerts from idle messages
  • Blink [0-1] - Blink the display for more attention
  • Sound [0-5] - Set off a sound, see list
  • Display timeout - The length of time to display the message for
  • Message [up to 21 chars]


Examples: (Substituting STX, ETB and EOT for their respective ascii chars.)

To send, Ping: Jaunsicle, with sound ping and blinking for 5 seconds:

STXAETB1ETB1ETB5ETBPing: JaunsicleEOT

Message slots

see also User:Ms7821 opentfl.co.uk
TfL API (beta) docs [4] [5] (p13) but seems to be currently offline [6].
  • 4 -
  • 5 -

Sounds

  • 0 - None
  • 1 - PING.WAV

Feature Requests

  • Dynamic font loading
  • Individual pixel mapping
  • Scrolling to allow for longer messages
  • A fortune/motd feature - when the board has been unchanged for a while, display a random message from a file, e.g. 'clean up your own mess', 'shut the fire door when you leave' or 'do not leave the chuck key in the lathe'.
  • Audio notification of new message.... Similar to Glados voice from doorbot