Skip to content

derekenos/iome

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

58 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

I/O <-> ME

iome is a platform for developing physical interfaces with a web application frontend using modern, off-the-shelf technologies.

The overall system looks like:

 ______________________          _____________________                      _________________________
| Buttons, Knobs, etc. |  --->  | Wifi-enabled micro- |  <-- WiFi ------>  | Device with a display   |
 ----------------------         | controller running  |           | \      | and a web browser, e.g. |
 ____________________           | an HTTP server and  |           |  OR    | phone, tablet, computer |
| LEDs, Motors, etc. |  <-----  | minimal web applic- |           |         --------------------------
 --------------------           | ation framework     |           |               /\   
                                 ---------------------        [ Router ] ---------'

Applications

This was created specificially to serve as a wireless HTML5 game console:

vidthumbz

More generally, it enables wireless access to physical switch, knob, etc. data via a Websocket.

This means that you can:

  1. Build/buy something like the Dev Kit v1
  2. Load it up with the iome software (if necessary)
  3. Power it up
  4. Connect your computer to the iome-{theUniqueId} Wifi Access Point that it creates by default
  5. Surf your browser over to http://192.168.4.1
  6. Open the browser dev console and do:
const ws = new WebSocket(`ws://192.168.4.1/input`)
ws.onmessage = e => {
  const data = JSON.parse(e.data)
  console.log(data)
}
  1. Watch the data change as you interact with the physical buttons, knob, etc.

From there, you can integrate that WebSocket hook into whatever web application code you want.

Connect to an Existing Wifi Access Point

The default configuration creates an Access Point on boot, but you can edit the config to specify that it connect to an existing Access Point instead. You can use the editor described here to do this. Once connected, you should, providing your AP supports mDNS, be able to access it via http://iome-{uniqueId}.local, as opposed to having to discover and specify its IP address.

all_in_one_20191010_bw

This first development kit features a familiar household rotary push-button dimmer knob as its primary physical input and three living hinge tactile switch buttons (labelled 1, 2, 3). It employs the popular, low-cost ESP32 running Micropython as the brains of the operation.

sketchy prototype

Sketchy is a motorized Etch A Sketch display appliance.