The IoT has incredible potential for making life easier for everyone, even more so for people with disabilities. We all know that the IoT is a game-changer for home automation, sensor data acquisition/management, and industrial applications, but it can also make all sorts of new jobs available for people with disabilities - that is, only if the digital interfaces we're building are accessible!
What's the goal?
This project is about demonstrating how web accessibility techniques can be integrated into any IoT project, and the kinds of impacts it can have for people who experience digital products differently. We'll build a rad one-page, proof-of-concept dashboard UI that can be used by anyone to monitor real-time sensor data and manage notifications or output events based on changes in sensor data streams.
Rather than try to build a literal standalone MVP product that can be spun up into a start-up, this project is more about creating a dialogue in the IoT space around accessibility and providing a great, open-source example that any project team or company can use to make their experiences more inclusive.
For demo purposes, we'll also build a basic IoT-enabled sensor platform to remotely feed real-time data to the dashboard. This sensor platform can be used as a sort of "extra-sensory buddy" with sensors for proximity/distance, ambient light, and temperature. Users can place the "buddy" wherever they'd like in order to get information about things happening in their environment that they may not otherwise know about.
Finally, to make our demo even more awesome let's try to build a fun, overpowered IoT-enabled vibration motor that will make sure that everyone gets the notifications, whether they like it or not!
This project will consist of three components:
- A highly accessible, responsive, web-based UI for monitoring and acting on sensor data.
- An IoT-enabled portable hardware sensor platform to feed real-time data to the dashboard for demo purposes.
- An IoT-enabled device with a powerful vibration motor that can be controlled via the dashboard.
The exact stack is TBD based on the skillsets of the members that join the team, but will generally consist of:
- Semantic, native HTML with light use of ARIA for enhanced accessibility.
- CSS for styling and responsive behaviors
- A simple CSS framework like Bulma may be used to normalize the look-and-feel and make prototyping easier.
- A full-on app framework like React or Vue might be overkill, but if the team members are more comfortable using one than going with vanilla JS, let's use one!
To demonstrate interesting use cases, lets build out a simple IoT-enabled, portable "sensor buddy" that enables users to watch for changes in the environment around them. Imagine how useful a point-and-shoot "trip wire" would be for someone with a visual impairment! Here are a couple sensors and possible use cases I can think of, but if you can dream up others I'm all for it!
- Distance sensor for presence and proximity monitoring. Can be used to remotely sense when someone enters or leaves a location, or a door opens/closes, or some other movement happens in the environment.
- Ambient light sensor for detecting presence of room lights or sunlight.
- Contact heat sensor (metal plate with thermistor) to remotely detect when something gets hot, like a stove-top.
This device really just needs to constantly read sensor data from input pins, then transmit it over WiFi so that the dashboard and display it. Nothing fancy - maybe 20-50 lines of Arduino code!
Vibration motor output device
To demonstrate how the dashboard could be used for both input AND output, let's see if we can build another small IoT-enabled device that controls a powerful vibration motor to be used for non-visual, non-auditory notifications to users. All that would be needed would be a decently-powerful motor, an appropriate 5V-compatible motor driver, an appropriate power source, and another IoT board.
Here are the tasks that I can think of that would be required for this project:
- Set up a skeleton project for the dashboard interface
- Create speculative lo-fi wireframes for the dashboard to define it's key features and interactions.
- Research and decide on packages to use for dashboard interface.
- Real-time data acquisition
- Create a parts list (BOM) (before hackathon)
- Order parts for sensor platform (before hackathon)
- Create a high-level schematic / wiring diagram for the sensor platform.
- Consider designing and 3D printing an enclosure for the sensor platform.
- Research particulars of obtaining, transmitting, and displaying sensor data. Maybe a flowchart?
Vibration motor output device
- Create parts list (BOM) (before hackathon)
- Order parts (before hackathon)
What to expect
- Most electronics parts will be ordered ahead of time and provided at the event.
- If anything is still needed, a mid-day Ax-Man run may be in order!
- We'll spend at least some of the morning doing project planning, wireframing, and researching to make sure that the dashboard and IoT devices will work together without major problems.
- Split up to work on different project components based on interest (dashboard, sensor buddy, vibration motor device, documentation/illustration, etc)
- It'd be amazing if someone could design enclosures or functional parts for the two IoT devices. I'll bring my Prusa MK3 3D printer and some filament for anyone to use as needed!
- Whoever is doing this should collaborate with the electronics folks to plan layout and get part dimensions. I can bring some digital calipers to make this easier.
- Keep the design(s) simple so they don't take too much time - planning for about 2-4 hours of printing time needed.
How you can help
This project would benefit from people who know a thing or two about front-end web development and/or basic hardware prototyping.
- People with even a little experience in front-end development
- I'll collaborate with you to make the UI aspects accessible!
- People with some electronics experience - breadboarding, Arduino-based programming, reading docs/datasheets, maybe some soldering
- We'll use a well-documented platform (like Particle Argon/Photon or Adafruit Huzzah), so you won't be having to reinvent the wheel!
- People with some experience in 3D modelling and 3D printing to prototype some enclosures or functional parts for the IoT devices
- People with UX, illustration, graphic or industrial design skills who can help dream up, illustrate, and communicate use cases to non-technical folks.
- How things get built is fun and all, but this project is also about communicating why IoT accessibility is so important - I'd love some assistance here from a designer or artist!