Widow's Might

About the project

How do we bridge today’s digital divide to connect homebound and elderly persons with helpful existing services?

Project info

Difficulty: Moderate

Platforms: AdafruitTwilioBlues Wireless

Estimated time: 1 day

License: GNU General Public License, version 3 or later (GPL3+)

Items used in this project

Hardware components

Adafruit Miniature Wired LEDs - 0805 SMT LED - Warm White - 5 pack Adafruit Miniature Wired LEDs - 0805 SMT LED - Warm White - 5 pack x 1
Adafruit Lithium Ion Polymer Battery - 3.7v 2500mAh Adafruit Lithium Ion Polymer Battery - 3.7v 2500mAh x 1
Adafruit Mini GPS PA1010D (Qwiic / QT) Adafruit Mini GPS PA1010D (Qwiic / QT) x 1
Adafruit Relegendable Plastic Keycaps Adafruit Relegendable Plastic Keycaps x 1
Adafruit Kailh Mechanical Key Switches Adafruit Kailh Mechanical Key Switches x 1
Adafruit Neokey 1x4 (Qwiic / QT) Adafruit Neokey 1x4 (Qwiic / QT) x 1
Blues Starter Kit Blues Starter Kit x 1

Software apps and online services

@JordanAbacus : Tips for increasing CircuitPython durability for field deployments @JordanAbacus : Tips for increasing CircuitPython durability for field deployments
Autodesk Tinkercad Autodesk Tinkercad
JLCPCB Custom Enclosure (3D Printing) JLCPCB Custom Enclosure (3D Printing)
Twilio SMS Messaging API Twilio SMS Messaging API
Blues Notehub.io Blues Notehub.io
Mu Editor Mu Editor
Adafruit CircuitPython Adafruit CircuitPython
MicroPython MicroPython

View all

Story

My Heartfelt Idea: Looking After Elders

Most churches have service ministries, like handy people to fix issues inside and outside a home. Fall season means leaf raking and stick pickup; so many leaves and sticks! And what about elders who are hungry? Churches have food ministries too. It also doesn't have to be church-based services; any service can be connected.

It's time to connect the dots using some awesome hardware and cool IoT technology!

Non-emergency Service Buttons

Adafruit makes inspiring hardware and this little NeoKey 1x4 button pad was the spark of my idea!

AdaFruit NeoKey 1x4 QT

AdaFruit NeoKey 1x4 QT

AdaFruit NeoKey 1x4 QT

Whether you call it I2C or Qwiic or Stemma QT or QW/ST or SCSI (just kidding sort-of) 🌼 daisy 🌼 chains 🌼 are 🌼 great! And solderless too!

Make Your Own Photo Keycaps

Adafruit Relegendable Plastic Keycaps for MX Compatible Switches

Adafruit Relegendable Plastic Keycaps for MX Compatible Switches

Adafruit Relegendable Plastic Keycaps for MX Compatible Switches

My Prototype Keycaps

Prayer VisitButton

U+1F64F

U+1F64F

U+1F64F

Food VisitButton

U+1F35E

U+1F35E

U+1F35E

Handy VisitButton

U+1F4A1

U+1F4A1

U+1F4A1

Lawn VisitButton

U+1F342

U+1F342

U+1F342

The Make or Break Requirement

Elders don't have Wi-fi networks.

My device requires a network and I can't assume elders have any form of wireless network. I could go big and build my own LoRa municipal network, but I don't really want to sink time into that, if I don't have to. How about going small instead?

Requirement Exceeded: Blues LTE Notecard

When you buy a Blues LTE Notecard, you receive enough built-in, prepaid LTE connectivity and cloud integration credits to probably last for the entire lifetime of your device, especially a very low-volume communications device like mine.

Blues Notecard a.k.a MVP

Blues Notecard a.k.a MVP

Blues Notecard a.k.a MVP

Blues Notecard Carrier Boards (Notecarriers)

The diminutive Blues Notecard plugs into your choice of carrier boards; I chose the Notecarrier-F and its companion Swan R5 Feather.

Choose Your Weapon of Mass Fun

Choose Your Weapon of Mass Fun

Choose Your Weapon of Mass Fun

Blues Notecarrier-B above is pure simplicity with its QT connectedness; I'm eyeballing it for future smaller sized device implementations.

SparkFun Electronics also carries the Blues MicroMod Starter Kit which gives devs their choice of microprocessor too. It's a veritable buffet of electronics choices pictured below!

SparkFun Blues Wireless MicroMod Starter Kit

SparkFun Blues Wireless MicroMod Starter Kit

SparkFun Blues Wireless MicroMod Starter Kit

Open Hardware Moment

I would be remiss if I didn't spotlight Blues' open hardware repository, which electronics wizards can (and have) remixed into new, optimal devices to solve specific problems and use cases. I would love to learn how to craft my own PCBs... I think I can! I think I can! 🚂

Recipe for Disruption (and happy joy joy feelings)

Recipe for Disruption (and happy joy joy feelings)

Recipe for Disruption (and happy joy joy feelings)

MicroPython and CircuitPython

I intended the device to be powered by MicroPython / CircuitPython as a professional challenge; this code can be reused to serve as the foundation for many "service button" ideas swimming around in my head. 🐬 🧠

Elder Device Operation

Elder presses any given service button and a JSON message is sent from the device over LTE to Blues Notehub.io then sent to Twilio's SMS API to send alerts to defined service teams.

Elder Button Press to SMS Group Distribution

Elder Button Press to SMS Group Distribution

Elder Button Press to SMS Group Distribution

Device Asks: Where Am I?

Blues LTE Notecard has built-in cellular triangulation which is totally awesome, but my device required an higher level of precision to enable door-to-door mapping for service teams. I use the GPS coordinates to generate a very precise Google Maps SMSed to services teams. FYI: There is code to make the NeoKey's buttons turn red when there's not a GPS fix. I do recommend the device being placed closer to a window than not, but big things come in tiny packages... I've been pleasantly surprised at getting double-digit satellite connections while being fully inside a home or building.

This project is focused on non-emergency services, but with a high precision GPS on-board, it does become feasible to connect the device to an emergency help service like Noonlight's API. It also becomes possible to get transportation services for elder trips to the doctor or food deliveries using Uber's API.

Adafruit Mini GPS PA1010D - UART and I2C - STEMMA QT

Adafruit Mini GPS PA1010D - UART and I2C - STEMMA QT

Adafruit Mini GPS PA1010D - UART and I2C - STEMMA QT

Caregiver Device Registration

My goal for the device is a take home device; just grab and take to an elder's home. But how does the device know anything about its user? My code.py ships with some generic names and defaults, but Blue's cloud provides developers a method to set environmental variables on a per-device basis over LTE. So that's the foundation of my device's registration. Here's How-to make Google Forms submit fields as JSON to an API endpoint of your choosing.

Why reinvent the wheel? Google Forms works fine.

Why reinvent the wheel?  Google Forms works fine.

Why reinvent the wheel? Google Forms works fine.

Remote Device Fleet Management‽

While I was sleeping, Blues was solving more problems that I hadn't even thought of yet. How would I know if a remote device is stuck and needs resetting? What if I have a software bug or optimization, how would I deploy an update remotely? Blues has pulled out all the stops for developers with its Fleet Management toolset and Notecard Outboard Firmware Updating.

"I've got the power!"

Code

widows-might @ GitHub

Credits

Leave your feedback...