Overview: This week I wanted to make a juke box that someone could interrupt with a particular song (in this case Smash Mouth’s Allstar). I set it up to run locally, and made a basic site out of Flask, with a button, that then changed the values on a API. I re-used some of my code from the Alexa Blender to to grab that changing API value. The issues I ran into were mostly w/ the feather’s music maker wing. It seems to be having issues maintaining its power when you use an interrupt based play back. I”m guessing there was something wrong w/ the interrupt calls as the blocking calls to the music still worked well. After doing a bunch of troubleshooting I couldn’t get the wing to be stable. I tried different iterations, and tutorials based on using Adafruit IO / doing streaming radio, changing pins and resistors, a different SD card, re-solder, etc. But the board would peter out after a bit. I even tried to follow something to re-flash the nodeMCU, thinking it might be a corrupted memory thing, but for some reason couldn’t make a proper connection. At least I found a lot of resources on music boxes / IoT music things.
Components: Feather Huzzah, Music Maker Featherwing, Flask-Restful
Things I Experimented With: Timers, playlists, SD card.
Things I learned: Plug and play doesn’t really mean that.
Future Iterations: I’d probably set this up via a BaSS, and maybe use a different board. I’d like to still figure out what happened. As the user guide for the huzzah is pretty surface, but if you try and trouble shoot the NodeMCU there’s a rabbit hole of forums. I think as well, I need to find more robust ways of using a homebrew API.
Overview: This week I really wanted to set off a horn with my brain. Unfortunately horns require something like a 10+ amp power supply, and I did not have that. I did have some 12v 5a supplies around, but they didn’t cut it. So, no horn. I then figured I would just shut a tv off with my brain instead, because why not, and I had an old RoadShow lying around with a built in VCR and Radio. So I made a program that says if I’m really into what I’m watching, shut the TV off. Which is a jerk move, but that was the point.
I don’t know if I’d consider this an IoT project, but it did remind me that I still don’t like the Muse that much, and I’m not sure about quantified self. I did enjoy just playing around with the Arduino and the TV though. There’s something nice about the physical click of a big relay. Also maybe there’s something to combining old tech with new tech. Having the fuzzy TV around was strangely comforting and enjoyable. I don’t get the same feeling watching stuff on a computer or new TVs.
Things I Experimented With: timers, streaming data, quantified self
Things I Learned: Horns need more than 5amps. Its pretty difficult to try and bypass the power switch on an old TV if the TV is a contained unit.
Future Iterations: I don’t think I’d do this again. Mostly because I’m not a fan of The Muse. But I would like to use the TV for something else in the future. Because its kind of nice to have as a prop.
Overview: Tiny Oracle was an idea I had a few months ago. Its based around aggregating new / traffic / weather / tweets etc into one place, and then generating how a city “feels” based on that data. I didn’t get to the data part this week, but I did make some good progress with the hardware, and even started writing my own restAPI to handle requests. The results, despite it just being a tech test were whimsical.
System: This took a bit of a twisty road. Basically I started thinking I would make a Python based bot that just aggregated all my feed data, parse it, then toss some commands over to a BaaS provider like PubNub or AdafruitIO. But I once again ran into the issue w/ the Feather and its MQTT library, that there’s something buried in it, that prevents it from being totally non-blocking. I knew the particle library didn’t have this issue, so I started digging around in it, and seeing if I could re-mod the mod to re-use for the Feather. But it looked like the particle library was just doing GET requests. So I started looking around for some info on REST APIs, and decided I didn’t need a Pub/Sub setup. I found some tutorials, downloaded Flask (which I like and am familiar with), and starting making a basic API to pass on some JSON. The Feather makes a request on a timer, grabs the JSON the server serves up, and then prints out a message and does a little display based on it. I found it pretty straight forward to build this little Server / Client system. It doesn’t have any security, so its only for local testing, but I would like to make a version that does. But I would like to keep rolling my own solutions going forward.
Things I Experimented With: FLASK rest-ful, requests, protocols.
Things I Learned: A lot about basic rest apis! And that you really don’t have to send things to “my butt” if it doesn’t have to go to there. Most of the MQTT libraries for the various BaaS providers seem to have some kind of blocking issue (pubnub / adafruit) in the subscribe function. Also that a lot of data can still just be grabbed with just GET requests.
Future Iterations: I really want to get this to a point where its parsing different data feeds to build its feelings. I also want to keep building a little restAPI for more of my personal projects.