Showing posts with label Internet of Things. Show all posts
Showing posts with label Internet of Things. Show all posts

Friday, October 28, 2016

Photocell Data in ThingSpeak Can Trigger a Servo on Photon (#IoT)



In the process of learning about how the Internet of Things works, as I attempt to create a wifi-connected book, I wanted to figure out how to get sensor data from a ThingSpeak channel to trigger a Particle function, even if the data I'm using isn't super juicy.

In an earlier post, I set up my own private ThingSpeak channel and connected it to the Particle API via a web hook.  Since then, I've updated my code so that it maps the value of the analog data, constricting the readings within a range of 0-255 instead of 0-4095.
While playing around with ThingSpeak this time, I used the React and ThingHTTP apps to use the data from the photocell to trigger a servo connected to a Photon. The React app allowed me to set up a trigger related to the data.  I set it up so that a reaction would happen any time the sensor picked up a value of 30 or under (or when it was sunny and the resistance dipped).  Then, the ThingHTTP app allowed me to post an HTTP request to Particle, in much the same way you would if using the Maker Channel on If Then Than That (IFTTT).

This breakthrough is exciting, because I have figured out how to control a physical object using my own data.  Now, if I wanted to, I could use the data from a photocell to trigger a piezo tune, a servo, or an LED light show, based upon whether it's sunny or dark outside.  I'm not yet sure how I'll use this new knowledge, but it's mine nonetheless!

Tuesday, October 25, 2016

Triggering a Rickroll on a Photon with a QR Code (#IoT)


Over the past couple of days, there has been a lot of news circulating about security issues present in gadgets connected to the Internet of Things.  Keeping that in mind, I'm cautiously continuing my experimentation with the Photon, trying to be mindful of the fact that there are privacy risks involved in transforming ordinary objects into smart objects.

Thinking about ways that music might contribute to the creation of an interactive book that I'm going to be creating, I started tinkering with the code from Spark Fun's Music Time tutorial that plays Rick Astley's song "Never Going to Give You Up."  I tweaked the code by creating a new Particle function that only plays the music when the function is triggered by a web call.  I used the Maker Channel on If Then Than That to trigger it and linked it to a QR code (see previous post).

Even though electronic buzzer music can be a little annoying, I'm thinking that it would be interesting if QR codes embedded into a book could trigger different tunes or sound effects to help advance a narrative. 

Wednesday, October 5, 2016

My Photon is Sending Data to ThingSpeak! #IoT

I've been continuing to play around with my Photon, as well as trying to better understand how posts, calls, and web hooks work. After spending a couple of weeks studying and experimenting with other people's code, I've learned how to create and call my own Particle functions! This means that I'm now able to control the colors of neopixels on my Photon in a variety of ways, using HTTP web requests. This is similar to the way CheerLights works (see related blog), only my posts are limited to controlling LEDs (or a buzzer) on my device.  I can do this by typing my post information into the RESTED add-on for Firefox; I can do it through Twitter, by creating a recipe on If This Then That (IFTTT); I also figured out how to use curl (in the command line of my PC) , allowing me to test the HTML code that gets routed to my Photon.  Getting to this point has not been at all intuitive, so I'm pretty excited I've gotten this far!

Once I figured out how to use posts to control the behavior of LEDs (outputs), it occurred to me that I still didn't know how to use a Photon to read the value of sensor data (inputs). After many failed experiments, blindly attempting to alternate between digital and analog pins to figure out how they worked, I bought an ebook titled Programming the Photon: Getting Started with the Internet of Things and started reading it. In the process, I figured out why a web hook I’d created (linking my Photon to a channel on ThingSpeak) was returning nonsense data. That data was “float” data, which is generated when a microcontroller’s analog pin (in this case A0) isn’t actually attached to a sensor.  The book gave me the idea to connect a photocell and resistor to my Photon.  In the process, I discovered that the web hook actually did work, and I was actually able to get data from my device to populate a chart on a Thing Speak channel I created for this purpose! 


My next step is to figure out how to make this data more meaningful, and how I might use it (or some other type of data from my device) to talk with a wearable or book that I make.  I also need to figure out how to use some of the other features of Thing Speak, because I don't yet understand how to use MATLAB code or apply most of the Thing Speak apps.





Thursday, September 15, 2016

Internet of Things (IoT) Here I Come!

Taking inspiration from Jie Qi and Natalie Freed, I am embarking upon a quest to create a wifi connected book of my own.  While I'm only at the start of my inquiry, I've already got a few ideas swirling.

Photon Unboxing
After reading details about Natalie Freed's Tide Notebook at NEXMAP, I discovered that she used the SparkCore microcontroller to connect her book to the web.  In particular, she accessed tide data and used it to control LEDs mounted inside.  The newest iteration of SparkCore, the Particle Photon microcontroller, can also send or receive data through Particle Build.  Paired with a free open-source Internet of Things (IoT) platform called ThingSpeak, anyone can access or share data and use it to control physical objects, such as the LEDs in a book, wearable, or other type of physical object...even without an MIT degree!

Hello World!

My Remembrall
One enticing project that uses a Photon, in combination with several cloud-based apps, is the Internet Connected Remembrall, a physical orb that glows red when its owner neglects something on their to-do list.



By following the directions and really thinking about what each app was communicating with the other, I began to slowly understand how the Internet of Things (IoT) works on a small scale.

Once I got my own Photon connected to the Internet, I was able to start taking the code apart and changing it.  I literally squealed when my LED, connected to a hashtag on Twitter, turned on for the first time!

I've started learning a bit about the role of Web Hooks and JSON (Java Script Object Notation), both of which are aspects of connecting physical objects with data. Thanks to the excellent documentation in the Remembrall Instructable, I now have a road map for making my first wifi connected object tied to the data I choose.

Another thing that I've been playing with is creating an object connected via Particle Build to ThingSpeak's CheerLights channel.  In case you haven't heard of CheerLights yet (I just did), data, generated through people's tweets around the world, can be harnessed to control the color of LEDs in your own physical objects.  For example, if I send a tweet to @CheerLights and request a specific color, a Web Hook triggered by the Twitter feed will signal a change in the LED color on all of the objects connected to the data feed, including my own.



If I connect my own object to the data (in this case, a Photon with a Spark Fun Wearable Shield attached to a neopixel), I can see the light color change in near real time!