I'm sure I'm not alone in constantly getting grief from my family (and/or friends) when I don't call enough. But I honestly don't remember to do it. So then I have to explain why it didn't occur to me to call someone out of the blue at whatever time is convenient for me (but not necessarily for them).
"There's got to be a better way!!"
As a geek, my inclination is for a technological solution. So, I'm building a little, cellular-connected device that I'm calling the "Notification Alert Generator Box," or "NAGBox" which provides a simple interface (Buttons!) to request a call from a specific loved one via SMS!
I should have updated this post a while ago, but here it is now! I have completed the NAGBox project and have deployed, not just the 3 to my mother, brother, and sister, but also one to my grandmother. As it turns out, she's legally blind and now living on her own. She can't dial the phone and certainly can't use a computer, so reaching out for assistance is difficult. After making it clear that this is not an emergency assistance device (get one of those "I've fallen and can't get up!" boxes for that), I updated the top of the one I was going to keep for myself so that she could use it. It's got much larger text and is turned horizontal instead of vertical. She can now use it to contact each of her 3 kids (now fully grown adults) when she needs something...or just wants to talk. So far it has been great. She loves it, and I feel awesome for making something that's not only a fun project, but also very useful!
This is the last project post for NAGBox (unless something changes). Thanks for following the project!
I finally got my printer back after having it tied up on a large contract job for nearly a month. I've since been designing and tweaking the case design. I'm quite happy with it at this point, and am very nearly ready to start printing the final "production" versions. I posted some pics below. I've included many features in my design that I didn't originally consider. That's the awesome part of rapid prototyping with a 3D printer! Some of those features include magnets for mounting to metal surfaces (I added divots in the back to allow for the added height), rubber feet for traction (not pictured), a keyhole mount for attaching it to a wall with a screw, direct USB access to the Arduino Micro (hopefully never needed), and a lip around the inside of the bottom piece to better align the top and bottom when assembled.
At this rate, I'm hoping to get the NAGBoxes deployed by the end of this month!
Been a while since I posted an update. That's because I haven't been able to do much on the NAGBox lately since my 3D Printer has been tied up on customer prints for nearly a month now. But that's almost over, so I should be able to continue with the build soon. Since I'll be putting these in the hands of my relatives, I need more than just the one successful prototype. So I've been building more of them. Each one is cleaner than the last, so that's been fun to do.
So far my biggest problem with this whole project has been the lack of time. There' no time to build, no time to design the case, no time to print the cases! Baby Steps...
Yep, as you can probably gather from the title of this post, it finally works. I rebuilt the whole thing only to find out that it still didn't work. I had a high degree of confidence that my hardware was done right (both times), so it had to be the code. Sure enough, after staring at it for hours, I found it. There was a single character in the string I was sending to the Skywire cellular modem that shouldn't have been there. Stupid plus sign. As soon as I removed the offending character, NAGBox starting sending text messages like a champ.
Now I just need to make 3 more! And now that I know what size the board & components will be, I can design and print the cases for them. Looks like I'm not going to get these done in time for Christmas after all. That's a bummer. Oh well, it'll be the best post-Christmas present my family members ever got.
I'm the victim of gremlins. They're nefarious and sneaky. And they've foiled all of my attempts to move this project forward.
As I mentioned in my previous post, the NAGBox works perfectly on the breadboard. The LEDs do their thing, the buttons prompt a single response from the microcontroller, which in turn communicates with the Skywire cellular modem, and moments later I receive a text message telling me to call a specific loved one. It's wonderful, and I never tire of pushing the buttons and getting the messages, exactly how I designed it to work.
But then I transferred my design to a PCB and it all broke. Everything is hooked up (almost) exactly the same way as it is on the breadboard, except a bit more compact, and with a few connectors to make the button board detachable from the PCB. So it should work. But it doesn't. I've spent a lot of time troubleshooting, diagnosing and treating potential sources of issues, but still don't have a working prototype. So, I'm going to rebuild it from scratch.
Granted, it's only on a breadboard currently, so there's still some work needed to do to get it all consolidated onto a single PCB. But when I hit one of the physical buttons, I get a text message asking me to call...me (I can't very well be texting other people if this is going to be a surprise when they receive it).
I'm still waiting on a few parts I'll use in my final build, but I can start putting the PCB together at least. So, that's the next step.
I've got my code pretty much done (in theory). I haven't yet flashed the Pro Micro and tried doing anything with it yet since I don't have any inputs or outputs yet wired up. I'll take that on next. The code ended up being a bit of a challenge because, rather than going the easy-yet-inefficient route of creating separate functions for each button with a great deal of redundancy between them, I decided to create a 2-Dimensional Array instead. Problem is, Arduino apparently doesn't actually support multi-dimensional arrays. BUT it does support Arrays of Arrays! So that's what I did.
I also came up with a name to go along with the NAG acronym (since I'm pretty sure my family wouldn't appreciate me calling it the NAGBox, yet I still want to). So, this is now officially the "Notification Alert Generator Box!"
Next step is getting the power situation figured out, (the Skywire cellular modem and Arduino run at different voltages) and wiring up a Proof of Concept so I can test my code and then figure out why it didn't work.
I've ordered all of the parts needed for the NAGBoxes now, and am just waiting for them to arrive. In the meantime, I've been working on some of the code that will run on the Arduino Pro Micro. It's fairly straightforward since there's not a lot going on in these things. The majority of it is just reading a button, initiating a cellular connection, sending the SMS, and signaling to the user that their request was received, or successfully sent through the use of the LEDs in the buttons. Hopefully I'll have more to report in a couple of days, after my parts have all arrived!
Step 1 in any project is coming up with the idea/concept, right? DONE!
Step 2 is planning out the build. That's where I'm at now. It needs to be super simple, as this will be used by my mother, sister, and brother. None of them are technically adept (no offense to any of them). So things like jog wheels, options, multiple steps, or even screens should be avoided, if possible. It needs to have 1 step--Push The Button. Unfortunately, that will limit the expandability in the future. If I've only got 3 hardware buttons on each device, then I don't have the option to add another person into the NagBox loop sometime in the future. Oh well, dedicated hardware buttons is what I'm going with.
I considered going with a WiFi-connected solution, but I feel like that might just be asking for trouble. First, I'd have to know what WiFi networks exist in each person's house so I can pre-configure the devices to connect once they arrive at that person's house (assuming they even have WiFi available, and know what the password is). Then, the device would be responsible for detecting and successfully joining the WiFi network when it gets there. If it doesn't do that properly, the only thing that can be done is to have them ship it back to me so I can tweak it and try again. Plus, if they do anything with their WiFi network in the future (get a new router, etc.) then the NagBox devices likely won't work anymore. The answer? Get these connected in such a way that they are pre-configured and working before they even get to each person's house. The only good way to do that is with cellular. And using a NimbeLink Skywire modem, I can avoid carrier certifications and carrier contracts for their own branded USB modems.
So that's my plan. 4 total devices, each pre-configured to work on Verizon's cellular network and send an SMS message to one of the other 3 people when one of the dedicated buttons is pushed.