|
| 1 | +# Heroic Unix Pipes connecting your devices to the Internet! |
| 2 | + |
| 3 | +<img src=images/pipebot-example2.gif width=100% style="border: none"> |
| 4 | + |
| 5 | + |
| 6 | + |
| 7 | + |
| 8 | + |
| 9 | + |
| 10 | + |
| 11 | +## Why Unix Pipes? |
| 12 | +The Unix Pipe is a universal standard for connecting two programs. Below you will find programs pulling data from devices and programs for push data to databases that you can mix and match connecting them using the Unix Pipe on something like the $35 Raspberry Pi computer. |
| 13 | + |
| 14 | + |
| 15 | + |
| 16 | + |
| 17 | + |
| 18 | + |
| 19 | + |
| 20 | +## Devices |
| 21 | + |
| 22 | + |
| 23 | +#### Raspberry Pi Temperature |
| 24 | +Pull the temperature from the Raspberry Pi's temperature sensor on the CPU. |
| 25 | + |
| 26 | +- URL: https://github.com/PipeBots/pipebot-raspberry-pi-cpu-temperature-cli |
| 27 | +- Download: https://github.com/PipeBots/pipebot-raspberry-pi-cpu-temperature-cli/archive/0.0.0.zip |
| 28 | + |
| 29 | + |
| 30 | +#### 1-wire temperature sensor |
| 31 | +- URL: https://github.com/openpipekit/opk-1-wire-cli |
| 32 | +- Download: https://github.com/openpipekit/opk-1-wire-cli/archive/4.tar.gz |
| 33 | + |
| 34 | + |
| 35 | +#### Arduino Firmata adaptor |
| 36 | +An Open Pipe Kit command line interface to any Arduino using the Firmata firmware, which is connected to any sensor via analog, digital, i2c etc interface. By Jeff Warren of Public Lab. |
| 37 | + |
| 38 | +- URL: https://github.com/jywarren/opk-firmata-cli |
| 39 | + |
| 40 | + |
| 41 | +#### SHT1x humidity/temperature sensor |
| 42 | +Open Pipe Kit driver for SHT1x humidity/temperature sensors for Raspberry Pi, based on pi-sht1x node library, built for Public Lab's Particle Sensing project: http://publiclab.org/wiki/particle-sensing |
| 43 | + |
| 44 | +- URL: https://github.com/jywarren/opk-sht1x-cli |
| 45 | + |
| 46 | + |
| 47 | +#### Thermofisher PDR1500 dust sensor |
| 48 | +An Open Pipe Kit command line interface for interacting with the ThermoFisher pDR-1500 optical dust sensor over USB, built for Public Lab's Particle Sensing project: http://publiclab.org/wiki/particle-sensing |
| 49 | + |
| 50 | +- URL: https://github.com/jywarren/opk-thermofisher-pdr1500-cli/ |
| 51 | + |
| 52 | + |
| 53 | +#### Dylos dust sensor |
| 54 | +An Open Pipe Kit command line interface for interacting with the Dylos DC1100 optical dust sensor over USB, built for Public Lab's Particle Sensing project: http://publiclab.org/wiki/particle-sensing |
| 55 | + |
| 56 | +- URL: https://github.com/jywarren/opk-dylos-cli |
| 57 | +- Download: https://github.com/jywarren/opk-dylos-cli/archive/v0.0.1.tar.gz |
| 58 | + |
| 59 | + |
| 60 | +#### Speck dust sensor |
| 61 | +An Open Pipe Kit command line interface for interacting with the CMU Create Lab's Speck optical dust sensor, built for Public Lab's Particle Sensing project: http://publiclab.org/wiki/particle-sensing |
| 62 | + |
| 63 | +- URL: https://github.com/jywarren/opk-speck-cli/ |
| 64 | + |
| 65 | + |
| 66 | +#### Shinyei PPD42 Dust Sensor |
| 67 | +An Open Pipe Kit command line interface for interacting with the Shinyei PPD42 optical dust sensor, built for Public Lab's Particle Sensing project: http://publiclab.org/wiki/particle-sensing |
| 68 | + |
| 69 | +- URL: https://github.com/jywarren/opk-shinyei-ppd42-cli/ |
| 70 | + |
| 71 | + |
| 72 | +#### Temper1 Waterproof Temperature Sensor |
| 73 | +This is our classic temperature sensor for $16. Unfortunately it was discontinued recently in favor of the temper2 sensor. We have a temper2 on the way and we'll test to see if this driver works with it. In the meantime, if you have a temper1 USB sensor, give this a try! |
| 74 | + |
| 75 | +- URL: https://github.com/openpipekit/opk-cli--temper1 |
| 76 | +- Download: https://github.com/openpipekit/opk-cli--temper1/archive/0.5.0.tar.gz |
| 77 | + |
| 78 | + |
| 79 | +#### Grove DHT Pro Humidity for GrovePi |
| 80 | +- URL: https://github.com/openpipekit/opk-cli--grove-dht-pro-humidity |
| 81 | +- Download: https://github.com/openpipekit/opk-cli--grove-dht-pro-humidity/archive/0.1.0.tar.gz |
| 82 | + |
| 83 | + |
| 84 | +#### Grove DHT Pro Temperature for GrovePi |
| 85 | +- URL: https://github.com/openpipekit/opk-cli--grove-dht-pro-temperature |
| 86 | +- Download: https://github.com/openpipekit/opk-cli--grove-dht-pro-temperature/archive/0.1.0.tar.gz |
| 87 | + |
| 88 | + |
| 89 | +#### TI Sensor Tag |
| 90 | +Wireless Bluetooth device with IR Temperature Sensor, Humidity Sensor, Pressure Sensor, Accelerometer, Gyroscope, Magnetometer. |
| 91 | + |
| 92 | +- URL: https://github.com/openpipekit/opk-cli--sensortag |
| 93 | +- Download: https://github.com/openpipekit/opk-cli--sensortag/archive/0.2.0.tar.gz |
| 94 | + |
| 95 | + |
| 96 | +#### Yoctopuce USB Temperature Sensor |
| 97 | +A USB temperature sensor from Yoctopuce http://www.yoctopuce.com/EN/products/usb-environmental-sensors/yocto-temperature |
| 98 | + |
| 99 | +- URL: https://github.com/openpipekit/opk-cli--yoctopuce-temperature |
| 100 | +- Download: https://github.com/openpipekit/opk-cli--yoctopuce-temperature/archive/0.1.0.tar.gz |
| 101 | + |
| 102 | + |
| 103 | + |
| 104 | + |
| 105 | + |
| 106 | + |
| 107 | +## Databases |
| 108 | + |
| 109 | + |
| 110 | +#### Spreadsheet on your USB Drive |
| 111 | +A CLI for saving data to CSV so it can be opened in Excel, Libre Office, or Google Sheets. |
| 112 | + |
| 113 | +- URL: https://github.com/openpipekit/opk-cli--simple-csv |
| 114 | +- Download: https://github.com/openpipekit/opk-cli--simple-csv/archive/0.2.0.tar.gz |
| 115 | + |
| 116 | + |
| 117 | +#### Adafruit IO |
| 118 | +- URL: https://github.com/openpipekit/opk-cli--adafruit-io |
| 119 | +- Download: https://github.com/PipeBots/pipebot-adafruit-io-cli/archive/0.1.0.zip |
| 120 | + |
| 121 | + |
| 122 | +#### Google Sheets by Cloudstitch |
| 123 | +Push to a Google Sheet using your Cloudstitch project. |
| 124 | + |
| 125 | +- URL: https://github.com/openpipekit/opk-cli--cloudstitch-google-sheets |
| 126 | +- Download: https://github.com/openpipekit/opk-cli--cloudstitch-google-sheets/archive/0.4.0.tar.gz |
| 127 | + |
| 128 | + |
| 129 | +#### FarmOS |
| 130 | +- URL: https://github.com/rjsteinert/opk-cli--farmos |
| 131 | +- Download: https://github.com/rjsteinert/opk-cli--farmos/archive/0.1.0.tar.gz |
| 132 | + |
| 133 | + |
| 134 | +#### Dat: versioned data, collaborated |
| 135 | +A CLI for a Dat database `http://dat-data.com/`. Dat is a version-controlled, decentralized data tool for collaboration between data people and data systems. |
| 136 | + |
| 137 | +- URL: https://github.com/openpipekit/opk-cli--dat |
| 138 | +- Download: https://github.com/openpipekit/opk-cli--dat/archive/v0.0.1.tar.gz |
| 139 | + |
| 140 | + |
| 141 | +#### Fido: email alerts if out of bounds |
| 142 | +A push CLI that will send an email if piped value is over maximum and under minimum. The email will only trigger once for every time the piped value is in range and then goes out of range. |
| 143 | + |
| 144 | +- URL: https://github.com/openpipekit/opk-cli--fido |
| 145 | +- Download: https://github.com/openpipekit/opk-cli--fido/archive/v0.2.0.tar.gz |
| 146 | + |
| 147 | + |
| 148 | +#### Phant online: try data.sparkfun.com |
| 149 | +- URL: https://github.com/openpipekit/opk-cli--phant |
| 150 | +- Download: https://github.com/openpipekit/opk-cli--phant/archive/0.5.0.tar.gz |
| 151 | + |
| 152 | + |
| 153 | +#### Drupal Thing API |
| 154 | +- URL: https://github.com/openpipekit/opk-cli--drupal-thing |
| 155 | +- Download: https://github.com/openpipekit/opk-cli--drupal-thing/archive/0.0.2.tar.gz |
| 156 | + |
| 157 | + |
| 158 | +#### CouchDB |
| 159 | +- URL: https://github.com/openpipekit/opk-cli--couchdb |
| 160 | +- Download: https://github.com/openpipekit/opk-cli--couchdb/archive/0.0.0.tar.gz |
| 161 | + |
| 162 | + |
| 163 | + |
| 164 | + |
| 165 | + |
| 166 | + |
| 167 | + |
| 168 | + |
| 169 | + |
| 170 | + |
| 171 | + |
| 172 | + |
| 173 | + |
| 174 | + |
| 175 | + |
| 176 | + |
| 177 | + |
| 178 | + |
| 179 | +## Standards |
| 180 | +Each command must have a `--help` option and we recommend help output follows the docopt standard (http://docopt.org/). |
| 181 | + |
| 182 | + |
| 183 | +#### pull command |
| 184 | +A `pull` command for getting a single reading of one or more sensors on a device. |
| 185 | + |
| 186 | +- Issuing a pull command will print a value on a new line and then exit. |
| 187 | +- If there are more than one sensor values returned, |
| 188 | + |
| 189 | + |
| 190 | +#### stream command |
| 191 | +A `stream` command for getting multipe readings of one or more sensors on a device. When a line is returned is up to the logic of the `stream` program. |
| 192 | + |
| 193 | +- Event based sensors make sense to stream as opposed to issuing a `pull` at an arbitrary interval that may miss events. |
| 194 | +- Stream commands do not exit after returning a value but instead keep alive. |
| 195 | +- Every new value is delimited by a new line. |
| 196 | + |
| 197 | + |
| 198 | +#### detect command |
| 199 | +A `detect` command to detect the Sensor IDs available on a device. |
| 200 | + |
| 201 | + |
| 202 | +#### push command |
| 203 | +A `push` command for sending one or more sensor values to a database. Compatible with piping from both `pull` and `stream`. |
| 204 | + |
| 205 | +- Accepts input over a `--value=<value>` option or over STDIN (`echo "42" | ./database-cli/push`). |
| 206 | +- `push` commands exit immediately after completing execution when using the `value` parameter. |
| 207 | +- `push` receiving input over a pipe only exit when they receive an exit code over the pipe from another command. |
| 208 | +- Support `stream` command by looking for values on new lines. |
| 209 | +- When the database requires a schema and at least one field name, use the `--field_name=<field_name>` option. To keep thing simple for now, we take a schemaless approach. See experimental specifications below for schema based approaches. |
| 210 | + |
| 211 | + |
| 212 | +#### install command |
| 213 | +An `install` install command for initialization of required environment variables and downloading of dependencies. |
| 214 | + |
| 215 | +- An install command for initialization of required environment variables and downloading of dependencies. |
| 216 | + |
| 217 | + |
| 218 | +#### onboot command |
| 219 | +An `onboot` command for things that need to be done every time a machine boots and before the push or pull commands are used. |
| 220 | + |
| 221 | + |
| 222 | + |
| 223 | + |
| 224 | + |
| 225 | + |
| 226 | + |
| 227 | +## Get involved |
| 228 | +* [Email Forum on Google Groups](https://groups.google.com/forum/#!forum/open-pipe-kit) |
| 229 | +* [Live Chat on Gitter](https://gitter.im/openpipekit/openpipekit) |
| 230 | +* [Monthly Hangout, first thursday at 8pm ET](https://plus.google.com/hangouts/_/rjsteinert.com/open-pipe-kit) |
| 231 | +* [Research Notes tagged on Public Lab](https://publiclab.org/tag/open-pipe-kit) |
| 232 | +* [Forum posts tagged on Farm Hack]() |
0 commit comments