Things Bus: Difference between revisions

From Pumping Station One
Wikibot (talk | contribs)
m Bot: Cosmetic changes
Line 10: Line 10:
There are 3 basic node types in things bus:
There are 3 basic node types in things bus:


* Sensors. Sensors produce data
* Sensors. Sensors produce data
* Actuators. Data Sinks consume data, and probably do something interesting with it.
* Actuators. Data Sinks consume data, and probably do something interesting with it.
* Neurons. Neurons take in sensory data, manipulate it in some way, and send the data to actuators.
* Neurons. Neurons take in sensory data, manipulate it in some way, and send the data to actuators.


=== Sensors ===
=== Sensors ===


A simple of an example of a sensor would be a temperature sense in the space. A temperature sensor would be a Raspberry Pi hooked into a temperature sense, and would send out the current temperature every 5 minutes.
A simple of an example of a sensor would be a temperature sense in the space. A temperature sensor would be a Raspberry Pi hooked into a temperature sense, and would send out the current temperature every 5 minutes.


Sensors make data available by using a zmq bind PUB socket.
Sensors make data available by using a zmq bind PUB socket.
Line 22: Line 22:
=== Actuators ===
=== Actuators ===


An Actuator is something that, when triggered, does something. It doesn't have to be physical. An actuator could be as simple as an led wired into a Raspberry Pi that can be triggered by a Neuron.
An Actuator is something that, when triggered, does something. It doesn't have to be physical. An actuator could be as simple as an led wired into a Raspberry Pi that can be triggered by a Neuron.


Actuators consume data by using a zmq bind PULL socket
Actuators consume data by using a zmq bind PULL socket
Line 41: Line 41:
Examples:
Examples:


* A Dust Collection Node would likely be both a sensor (Is it on?) and an actuator (Turn it on)
* A Dust Collection Node would likely be both a sensor (Is it on?) and an actuator (Turn it on)


== A Simple Example ==
== A Simple Example ==


The following is an example of a Neuron. It connects to sensory input, the hackerpspace's front and back doors, and sense data to an actuator, zirc, an actuator that writes data to #pumpingstationone on irc.freenode.net
The following is an example of a Neuron. It connects to sensory input, the hackerpspace's front and back doors, and sense data to an actuator, zirc, an actuator that writes data to #pumpingstationone on irc.freenode.net


Before running the example, you must have a recent python, recent libzmq installed, and must have pyzmq installed.
Before running the example, you must have a recent python, recent libzmq installed, and must have pyzmq installed.
Line 77: Line 77:
== Hardware ==
== Hardware ==


We are targetting Beagle Bone Blacks for node hardware. While in theory, the hardware can be anything, having a consistent dev platform is useful.
We are targetting Beagle Bone Blacks for node hardware. While in theory, the hardware can be anything, having a consistent dev platform is useful.


The BBB has 2 blocks of GPIO lines, and the capability of supporting up to 4 Serial devices. A lot of the types of data we want to collect are available over gpio and serial.
The BBB has 2 blocks of GPIO lines, and the capability of supporting up to 4 Serial devices. A lot of the types of data we want to collect are available over gpio and serial.


==Things Bus Broker ==
== Things Bus Broker ==


For certain types of nodes, a broker that maintains state is useful.
For certain types of nodes, a broker that maintains state is useful.  
For details of this system, see https://github.com/eastein/thingsbus
For details of this system, see https://github.com/eastein/thingsbus