I wanted to share a project that I just finished with parts mostly from Adafruit. I have also posted schematics, code and pics which might be of help to others. I just wanted to share. Thanks for all your help… A few months ago, some college colleagues and I started work on a prototype for patent number 7,535,358 B2, Method and Apparatus for Electronically Tracking Luggage. This was the Xerox fellowship project that our group had to complete for the semester. Having led the effort and tackling the hardware aspect, I decided to publish a small report on the work that was accomplished along with the design details. All the hardware that was used is open source and cost around $250.
Since assembling the RGB LCD Shield, I’ve been thinking about what types of data could take advantage of being able to easily change the backlight color. Air quality index is a good fit; AIRNow provides colored ranges for the index which indicate air quality at a broad level using green, yellow, and red. I revisited the code for having the Internet of Things Printer fetch a data feed from Pachube and updated it to optionally track a single datastream within the feed. I’m using:
I inserted the pins on the shield stacking headers into the headers on the Arduino, then inserted the shield’s pins into the stacking headers. The added height of the stacking headers means the RGB LCD shield clears the Ethernet jack on the Arduino; but, the overall structure is still stable and reasonably compact.
During setup, the backlight is set to teal to distinguish from the green / yellow / red of the actual data screens. I’m also displaying the IP address for a few seconds to help with troubleshooting any network issues.
// Short delay so the IP can be spot checked.
lcd.setCursor(0, 1);
lcd.print(Ethernet.localIP());
delay(3000);
With the backpack and accompanying library, it’s straightforward to change the color of the backlight. These calls can be wrapped in an if-else structure to map ranges of values to different colors:
if (curValue <= 50) {
lcd.setBacklight(GREEN);
} else if (curValue <= 100) {
lcd.setBacklight(YELLOW);
} else {
lcd.setBacklight(RED);
}
The result is that, at a glance, I can see that the air quality is good today. If I’m interested, I can take a closer look and see when the data was collected and the exact value of the index.
Fortunately for me (but unfortunately for grabbing example images), our air quality was good every time I checked. I ended up mocking up some data to show how things would look if the air quality were moderate.
And then again if the air quality were poor.
This general approach can be modified and used with a variety of data. One example is display temperature and using blue to indicate when the temperature is too cold and red to indicate too hot. It’s also possible to use a local sensor reading to generate the value which determines the backlight color.
Modifying the original code to handle datastream entries resulted in a few areas that need some explanation. The most straightforward change was in the request URL; which now conditionally includes a datastream ID:
When working with the feed API, I made use of the Last-Modified header in the HTTP response to decide if the data had changed. Unfortunately, the response for the datastream does not include a Last-Modified header field. Fortunately, it does include an ETag header field which changes when the data changes.
Finally, the original JSON parsing code viewed the end of the outermost object as the end of the parse and assumed all data had already been processed:
if(!depth) return true; // End of file
...
// process data
...
In order to handle a JSON feed where the outermost object contains the data, I changed this conditional to continue to the processing code and exit afterward if the flag variable isDataObjectRoot has been set (this flag defaults false, and is set to true if and only if a datastream ID has been specified):
if(!depth && !isDataObjectRoot) return true; // End of file
...
// process data
...
if(!depth && isDataObjectRoot) return true; // End of file
Otherwise, processing one datastream entry was very similar to processing the entire feed. The full source code is available on GitHub and can be modified to track other data by opening the LCDFeed example and filling in the following fields:
char *apiKey = ""; // Developer API key
char *feedId = ""; // Feed ID
char *datastreamId = ""; // Datastream ID
I’m interested in seeing what other data can be displayed using this general approach and what types of conditions could be indicated by other colors.
I am using the 2.25″ thermal receipt printer for an art project. I wanted an easy way to print things directly from my computer, so I wrote a little script to do that. The program reads input (from a document, or from the command-line) and sends it to the printer. Commands are parsed for images, barcodes, and other special printer functions.
Adafruit IoT Printer Project Pack “Internet of Things” printer. Build an “Internet of Things” connected mini printer that will do your bidding! This is a fun weekend project that comes with a beautiful laser cut case. Once assembled, the little printer connects to Ethernet to get Internet data for printing onto 2 1/4″ wide receipt paper. The example sketch we’ve written will connect to Twitter’s search API and retrieve and print tweets according to your requests: you can have it print out tweets from a person, a hashtag, mentioning a word, etc! Once you’ve gotten that working, you can of course easily adapt our sketch to customize the printer.
The project is not very difficult but does require some light soldering, so you’ll want to have a little experience with a soldering iron. You’ll also need a small flathead screwdriver to assemble the box. It’s also best if you’ve had a little Arduino experience so you can feel comfortable downloading the IDE and uploading our example sketch.
This pack does not contain an Arduino+Arduino Ethernet Shield, Arduino Ethernet or Ethernet cable To complete the project you will need to add either an Arduino + Ethernet Shieldor an Arduino UNO Ethernet. If you’re using an Arduino UNO Ethernet you will also need an FTDI friend or FTDI cable to upload the sketch. A plain straight-thru Ethernet cable is also required (any length)
I realized I wanted a cheat sheet for working with box drawing on Adafruit’s Internet of Things Printer while I was playing around with making the Pachube data feed look swanky. This is my attempt to capture the character codes for the various types of possible boxes. This was gathered from a combination of the printer’s test printout, Anders’s work on this forum thread, and the Unicode section of Wikipedia’s entry on box drawing. If you can think of additional characters or a different breakdown in the information that would make the cheat sheet more useful, please feel free to leave feedback in the comments section
I tweaked the code that came with the IoT Printer to print Pachube datastream entries instead of tweets. Currently it’s showing the feed for Boston air quality.
Adafruit IoT Printer Project Pack “Internet of Things” printer. Build an “Internet of Things” connected mini printer that will do your bidding! This is a fun weekend project that comes with a beautiful laser cut case. Once assembled, the little printer connects to Ethernet to get Internet data for printing onto 2 1/4″ wide receipt paper. The example sketch we’ve written will connect to Twitter’s search API and retrieve and print tweets according to your requests: you can have it print out tweets from a person, a hashtag, mentioning a word, etc! Once you’ve gotten that working, you can of course easily adapt our sketch to customize the printer.
The project is not very difficult but does require some light soldering, so you’ll want to have a little experience with a soldering iron. You’ll also need a small flathead screwdriver to assemble the box. It’s also best if you’ve had a little Arduino experience so you can feel comfortable downloading the IDE and uploading our example sketch.
This pack does not contain an Arduino+Arduino Ethernet Shield, Arduino Ethernet or Ethernet cable To complete the project you will need to add either an Arduino + Ethernet Shieldor an Arduino UNO Ethernet. If you’re using an Arduino UNO Ethernet you will also need an FTDI friend or FTDI cable to upload the sketch. A plain straight-thru Ethernet cable is also required (any length)
The firm says that microcontrollers based on the “Flycatcher” architecture will pave the way for the “internet of things” – the spread of the net to a wider range of devices.
Here’s our Arduino based “Internet of Things” camera. It’s a simple remote monitoring using the Eye-Fi wireless SD card and Adafruit Data Logging Shield for Arduino. The Eye-Fi card is a tiny wireless memory card. It stores photos and fits inside a camera just like a regular SD card, but also has built-in WiFi transceiver that can upload images to your computer, smartphone or to various photo-sharing sites. We use one here when taking pictures for our tutorials — it’s a great timesaver, eliminating the extra USB transfer step that’s otherwise necessary. Can the Eye-Fi card work in an Arduino SD card adapter? You bet! Adding a TTL Serial JPEG camera, together with some minimal prep work, we can then create a self-contained wireless monitoring camera with motion-sensing capabilities. Hide it inside a hollowed-out book or a plush dinosaur toy and discover who’s been eating all your Thin Mints cookies!
What makes this combination way cooler than just a normal SD card or a USB cable to a computer is all the infrastructure provided by the Eye-Fi service — not just transferring images to your computer, but pushing them to your smartphone, photo-sharing sites like Flickr, issuing email or Twitter notifications, etc. This is all configured through the Eye-Fi application — there’s no additional coding required.
It’s really easy to change the output of the Internet of Things Printer– the Twitter query is just one line of code you modify in the Arduino sketch. In this video I show you how to reprogram the IoTP to print Jenny Holzer aphorisms directly on my desk (although yes, I realize the twitter account isn’t run by Holzer herself).
NEW PRODUCT – Adafruit IoT Printer Project Pack “Internet of Things” printer. Build an “Internet of Things” connected mini printer that will do your bidding! This is a fun weekend project that comes with a beautiful laser cut case. Once assembled, the little printer connects to Ethernet to get Internet data for printing onto 2 1/4″ wide receipt paper. The example sketch we’ve written will connect to Twitter’s search API and retrieve and print tweets according to your requests: you can have it print out tweets from a person, a hashtag, mentioning a word, etc! Once you’ve gotten that working, you can of course easily adapt our sketch to customize the printer.
The project is not very difficult but does require some light soldering, so you’ll want to have a little experience with a soldering iron. You’ll also need a small flathead screwdriver to assemble the box. It’s also best if you’ve had a little Arduino experience so you can feel comfortable downloading the IDE and uploading our example sketch.
This pack does not contain an Arduino+Arduino Ethernet Shield, Arduino Ethernet or Ethernet cable To complete the project you will need to add either an Arduino + Ethernet Shieldor an Arduino UNO Ethernet. If you’re using an Arduino UNO Ethernet you will also need an FTDI friend or FTDI cable to upload the sketch. A plain straight-thru Ethernet cable is also required (any length)
Wanted to put the thermal printer in something, to keep it from flopping around, and noticed this cigar box. Which was the perfect size. And then I thought, hey, why not throw an ethernet arduino in there too, and make it like one of these? So now I basically have this. Right now it’s printing William Gibson’s tweets until I figure out how to get ISS pass data to it.
NEW PRODUCT – Adafruit IoT Printer Project Pack “Internet of Things” printer. Build an “Internet of Things” connected mini printer that will do your bidding! This is a fun weekend project that comes with a beautiful laser cut case. Once assembled, the little printer connects to Ethernet to get Internet data for printing onto 2 1/4″ wide receipt paper. The example sketch we’ve written will connect to Twitter’s search API and retrieve and print tweets according to your requests: you can have it print out tweets from a person, a hashtag, mentioning a word, etc! Once you’ve gotten that working, you can of course easily adapt our sketch to customize the printer.
The project is not very difficult but does require some light soldering, so you’ll want to have a little experience with a soldering iron. You’ll also need a small flathead screwdriver to assemble the box. It’s also best if you’ve had a little Arduino experience so you can feel comfortable downloading the IDE and uploading our example sketch.
This pack does not contain an Arduino+Arduino Ethernet Shield, Arduino Ethernet or Ethernet cable To complete the project you will need to add either an Arduino + Ethernet Shieldor an Arduino UNO Ethernet. If you’re using an Arduino UNO Ethernet you will also need an FTDI friend or FTDI cable to upload the sketch. A plain straight-thru Ethernet cable is also required (any length)
NEW PRODUCT – Adafruit IoT Printer Project Pack “Internet of Things” printer. Build an “Internet of Things” connected mini printer that will do your bidding! This is a fun weekend project that comes with a beautiful laser cut case. Once assembled, the little printer connects to Ethernet to get Internet data for printing onto 2 1/4″ wide receipt paper. The example sketch we’ve written will connect to Twitter’s search API and retrieve and print tweets according to your requests: you can have it print out tweets from a person, a hashtag, mentioning a word, etc! Once you’ve gotten that working, you can of course easily adapt our sketch to customize the printer.
The project is not very difficult but does require some light soldering, so you’ll want to have a little experience with a soldering iron. You’ll also need a small flathead screwdriver to assemble the box. It’s also best if you’ve had a little Arduino experience so you can feel comfortable downloading the IDE and uploading our example sketch.
This pack does not contain an Arduino+Arduino Ethernet Shield, Arduino Ethernet or Ethernet cable To complete the project you will need to add either an Arduino + Ethernet Shieldor an Arduino UNO Ethernet. If you’re using an Arduino UNO Ethernet you will also need an FTDI friend or FTDI cable to upload the sketch. A plain straight-thru Ethernet cable is also required (any length)
Ninja Blocks are simple but powerful open source hardware backed by an amazing web service called Ninja Cloud that allows your Ninja Block to talk to your favorite web apps.
Each Ninja Block comes with an RGB LED and built-in temperature sensor and accelerometer. Four expansion ports and a regular USB port allow you to add further inputs and outputs.
Ninja Cloud allows you to control your Ninja Blocks without writing a single line of code.
This is a nifty idea and very well thought-out, but it gets even better, because Ninja Blocks are open-source hardware. They have pushed the Eagle files to github, so you can check them out (or make your own).
When Supermechanical turned toKickstarter to crowd source funding of its Internet of Things project, its cofounders were no doubt optimistic. But it’s questionable that even they would have believed that pledges amounting to nearly a half a million dollars — way more than 1,000 percent of the funding goal — would roll in with time to spare. But that’s what happened: as of 5:00 p.m. eastern time Jan. 2, some 3,548 people had pledged $497,939, with 20 hours to go before the deadline.
This is so cool, and it has enormous potential — think nanotransponders for the Internet of Things (or sub-dermal radios). From nanotechweb:
The first graphene device capable of significant voltage amplification (more than 10 dB) has been fabricated by researchers in Italy. The result confirms that the “wonder material” could compete head-on with silicon as the material of choice in electronics and is not simply limited to niche, low-voltage gain, high-frequency applications as currently thought.
The voltage amplifier (a device capable of amplifying small alternating voltage signals) is the main building block in analogue electronics. Thanks to its unique electrical and mechanical properties, graphene (a sheet of carbon atoms arranged in a honeycomb-like lattice just one atom thick) should be ideal for use in a host of technological devices – such as high-speed transistors – and in photonics. However, many scientists believe that it cannot compete with silicon in applications requiring voltage amplification, like analogue amplifiers and digital logic gates.
…
Even though it is their first graphene amplifier, it already shows “remarkable performance”, according to Sordan and colleagues – with a flat frequency response well exceeding the audio range (>20 kHz) and a very low total harmonic distortion (<1%).
As this is happening, though, the protean Internet technologies of computing and communications are rapidly spreading beyond the lucrative consumer bailiwick. Low-cost sensors, clever software and advancing computer firepower are opening the door to new uses in energy conservation, transportation, health care and food distribution. The consumer Internet can be seen as the warm-up act for these technologies.
The concept has been around for years, sometimes called the Internet of Things or the Industrial Internet. Yet it takes time for the economics and engineering to catch up with the predictions. And that moment is upon us.