#OktoberfestOfThings
Marc’s write-up of how this project came together

I know a guy who put a tilt sensor in his beer mug. It lets him know precisely how much he drank during Oktoberfest

http://www.wired.com/opinion/2012/12/20-12-st_thompson/

Supporting multiple data streams

The Android BtGateway app used in the first prototype now supports a simple format describing the body of the Pachube PUT request. The current feed with level and tilt data streams looks like this in the Arduino code:

  btSerial.print(“level,”);
  btSerial.print(levelSensorValue);
  btSerial.print(“\n”);
  btSerial.print(“tilt,”);
  btSerial.print(tiltSensorValue);
  btSerial.print(“\n\n”);

More or different data streams can be added without changing the BtGateway app. Sending the entire HTTP request from the Arduino would probably make sense too, but for now this works just fine. This will come in handy for more serious applications, too e.g. http://make.opendata.ch/doku.php?id=project:openmedsensor.

Source
Adding the Liquid Level Sensor

Still a bit tired from field testing, I tried to get the liquid level sensor working tonight at SGMK MechartLab. As you can see on the pictures here it’s been modified by shortening it and adding hot glue to seal the cut. Look at Figure 6, Voltage Divider Circuit in this spec to see how to attach it to the Arduino. Slowly filling the glass with water resulted in the curve below. Unfortunately the first third of measurements does not make much sense. This could of course be the result of cutting the delicate sensor. Seems that this way we will not be able to decide if a Maßkrug is empty if it’s filled less than a third. (If you look at all the orphaned Maßkrugs that might not matter much in practice, though…)

Anyway, during the experiments in the lab, Urban walked by, saw the accelerator and immediately proposed to use it to deduct the beer level from the angle in which the Maßkrug is held when drinking. This is pure genius and would work for the iPhone version as well. Good night.

Testing the first Prototype

After a day of intense hacking, some preliminary Wiesn research and a late morning of hectic programming and debugging we took the #OktoberfestOfThings prototype out for a first Sunday afternoon field test at the original Oktoberfest.

  

Everything is still very shaky, but passing security was no problem, mounting to a freshly served Maßkrug is easy, the SIM works and the first few measurements were successfully transmitted! Also, quite a few people came by to ask what’s going on. 

The first #OktoberfestOfThings data feed is https://cosm.com/feeds/78026

See you there next year for round two…

Building the first Prototype

This weekend I went to Munich carrying a case full of components, tools and a simple plan to build and test the first #OktoberfestOfThings prototype. As the Gadgeteer 3G module we planned to use is still in development, the current design uses an Arduino Nano, a BlueSMiRF-RN-v1 Bluetooth module and a Nexus S Android phone running a Bluetooth to Internet gateway app which I started writing on the four hour train ride from Zürich.

My friend Jürgen let us use his kitchen table as a work bench. The Liquidware LiPo battery pack provided the base to which we stuck two small breadboards. It holds the sensors, an ADXL335 accelerometer and a tilt switch. The unit is easy to mod and has just enough room for one or two other sensors. The remaining space fits the Bluetooth module.

 

Then, the MakerBot printed Maßkrug iPhone Adapter was hot glued to the assembly. This provides a quick and easy way to mount / un-mount it to the Maßkrug and has the advantage of keeping the electronics away from the wet glass.

On the next pictures you can also see the hot glue happy modding and mounting of the liquid level sensor which was later removed again due to lack of a connector or courage to solder the delicate contacts. But adding it back is definitely on the to-do list.

    

So there’s the first real #OktoberfestOfThings prototype in all its glory. Charging and programming the setup can be done via the respective USB plugs of the LiPo module and the Arduino Nano. The data is read from the sensor by the Arduino and sent via Bluetooth to the Android app running on the Nexus S. We also bought a cheap pre-paid SIM card which lets the phone connect to the Internet via 3G. Currently the value of the tilt sensor is stored on Pachube (now Cosm). Other measurements might be more interesting but there the interpretation part remains to be done. However, a first test shows that the setup works end-to-end.

Force Resistive Sensor (FSR)

And here’s a possible way to mount http://www.adafruit.com/products/166 - a force resistive sensor (FSR). There’s a nice tutorial on Adafruit on how to use it.

   

Flex Sensor

Also got http://adafruit.com/products/182 - a flex (bend) sensor - to try this idea.

 

Not sure about the aesthetics…

Liquid Level Sensor

Got a liquid level sensor (https://www.sparkfun.com/products/10221 or https://www.adafruit.com/products/463) and used this setup to test it:

It does change its resistance depending on how deep it’s immersed into liquid. But unfortunately, as the data sheet unambiguously states

To work properly the sensor must remain straight and must not be bent

Which means it’s not of very much use to this project. A bit like drinking with a huge straw that constantly pokes your eye. And judging from how it looks on the lower end, cutting the sensor almost certainly breaks it forewer.

The manufacturer does offer the sensors in arbitrary lengths, but probably not at a discount. Of course I only read all this after having bought it. Good there’s always another side project around the corner…

UPDATE: Just emailed Milonetech.com and almost instantly got a super friendly and helpful reply from Chris Milone stating that the sensor can be cut off, if you seal the cut with super glue and don’t mind that it only works when submerged at least an inch. Definitely got to try that.