The Neverending Story

This is my first IoT project. I made it in the context of the workshop 'Johnny-Five-is-Alive' at the University of applied Sciences Potsdam.

IoT

After doing research in the web for 'Internet of Things', I came very fast to the conclusion, that there are many useless Things (Internet of useless Things). The most things are about something like a fridge that twitters. However there are also big themes like an autonomous agriculture, which can save a lot of energy and ressources, due to highly efficient logistics. So some data of the internet is very powerful. However a lot of things are about: 'Because we can'. Probably the IoT is in its early stage, therefore people in the maker scene are playfully trying out the limits of IoT and startups do have a high speculation in this new market segment. Yet, we can not predict if it will reveal as a flop like the dotcom boom or a new technical revolution. So knowing that, having a look at the brief span of two weeks and being really new in this topic, I was not expecting more as an outcome than a 'toy' that will hopefully work.

Idea

I wanted to do 'something' with the thermal printer. I know it is a sin for a designer to adapt the concept to the tool. It has to be the other way around. Get the concept first and then implement it with a tool. I did it wrong. But I use the two weeks as an excuse. I was inspired by the game 'Mad Libs', where one player prompts the other player to substitute blanks in a story. Finally the nonsensical story is read aloud. As well I was inspired by the uninspired myself. Sometimes I really need a good story, an anecdote I can refer to and it will trigger growing ideas. The problem I have with the Internet as an inspiration is, that you search for the idea and the idea does not come to you. The last case I like way more. It is passive, not so stressful and I like the cliché of an artist who walks into the landscape to draw. So the source of inspiration is everywhere and you do not need to search for it. So adding both things up it might be useful to have a machine that passively spits out stories. Meaningful or nonsensical. It does not matter. Maybe it is enough if you have a good inspirational laugh in the morning while drinking your coffee.

Implementation

The hardware part was done in a few minutes. The thermal printer is provided by a 5-9 V/DC and 2A current power supply. Only 3 wires go to the arduino. One GND, the receive (RX) and transmitter (TX) pins. Fortunately I found a thermal printer library for node.js by Xavier Seignard. That makes it possible to use the arduino firmata and programm the arduino with javascript. The next step was designing an index.html for the website. The clients are supposed to draw on a little canvas and write down one line of narration. I made the canvas with P5.js. The hardest part was getting along with node.js. It is mostly server-sided programming, I had never touched before. So with the help of express, a node.js web framework, I was able to set up a local webserver and create a web application. Basically the application saves the images and texts of the clients on the server. To manage the data I have created two json-files. To develop the story further the client always needs the final state of the story as orientation, thus the last item of the json-array. So I have to implement it on the website. Nearly the same works for the printer which should print immediately when the newest content has been sent - getting the last index of the images and texts.
The following node packages were used for the project:

  • async
  • body-parser
  • deasync
  • express
  • get-pixels
  • serialport
  • thermalprinter

Sadly this is the proof that the printer used to work.

This is the website:

and finally this is how a story could have looked like, except that it would have been printed out upside down.