Making things talk: PeeNodes, a JeeNode powered toilet laser

Written by
Martin Poggenclaas
02 Mai 2012

This post is a follow up to our recent article about low-cost electronics, it’s another quick report about our ongoing expedition into the world of interconnected things. In our previous report we identified our perfect low cost hardware for wireless communication. Now it was time to find out how we can put these modules and sensors together in a way that would allow designers to prototype distributed applications and services. We set ourselves a few goals for this sprint:

– Build a minimalistic platform for ongoing IoT experiments
– Prototype interactions between people, things and software
– Solve a real world problem in our office with the help of this platform
– Learn along the way

This is what we came up with …

The result: PeeNode  – A JeeNode powered toilet laser

PeeNode is a system we’ve set up in our office space. It indicates if the bathroom is currently occupied. The status of the toilet is visualized via laser. Yes, a real laser!

Behind the scenes: Goals, insights and findings

In order to be able to reuse the code and to build a simple platform that would allow us further experiments we set ourself a few design goals:

– Use JeeNode modules for simple wireless communication
– Allow realtime interactivity between products, sensors, native apps and web applications
– Allow rapid mobile prototyping with HTML5 front-ends
– Leverage the most interesting and exciting web frameworks in order to build a framework that’s actually fun to prototype with

Insight: Our favorite tools

      Meet node.js – A multipurpose toolkit for network applications

node.js is one of the current rising stars of the Open Source web community. It’s a framework that allows you to create scalable web applications in Javascript that can easily be extended by a whole range of contributed modules. Matthias is actually in love with it and might write another article on this topic.

      Pusher – The glue for realtime applications

Using node.js enables you to use a bunch of great realtime frameworks – see for a rock-solid example. Nevertheless we decided  to leverage a service called Pusher as our realtime platform. It is a pre-built and solid realtime service one can build upon. It takes advantage of the new Websocket API to open up an ongoing connection with web frontends. This programming model allows us to keep a persistent connection between intefaces and to trigger realtime events.

      Mongodb – It’s like a database for human beings

As Javascript is the main weapon of choice and the consistent language from backend to frontend we decided to extend this design conecpt to the database. Mongodb is a NoSQL database that natively talks Javascript and seemed like a perfect fit for us.

To be continued …

Now that we have a setup that we can use to build further experiments we’ll keep on evolving the platform. Please let us know what you think about our findings so far – we’re always curious about having a chat. Last but not least we’d like to thank Max Williams from Pusher for the instant beta-support, Jean-Claude Wippler for creating the great JeeNode devices and providing the easy-to-use RF12 library and Alex of tinkerlog for helping us to fight our way through converting low level data-types like ints and bytes.

Team – We created this thing together

  • Martin (Chief of soldering department and JeeNode lover)
  • Matthias (Head of backend fumbling and Javascript weirdo)
  • Sven (Front end artist and pixel perfectionist)
  • Jonas (Musical meastro and retro-keyboard collector)


07 October 2015

私はそう思い喜ん私が見つけた、あなたのウェブサイト| Askjeeve| | AOLの|ビンビン| GoogleのDiggに見て、私は研究していたが、事故|ミス|ブログは}、私は本当に素晴らしい {仕事、素晴らしいを維持でくださいより。
06 October 2015

私はそう思いうれしい私が見つけた、あなたの検索| Askjeeve| | AOLの|ビンビン| GoogleのDiggに見て、私は研究していたが、事故|ミス|ブログは}、私は本当に素晴らしい {仕事、素晴らしいを維持でくださいより。
24 September 2015

鑑賞持続性あなたが入れブログと詳細情報あなたオファー。イッツ素晴らしい古い情報材料再ハッシュをそれは同じではありませんしながら、たまに中のブログに遭遇する。 素晴らしい読んでください!あなたのサイトと私は追加だ|私は、ブックマークを保存した事があるRSSフィード私のGoogleアカウントにフィード。
23 September 2015

こんにちは!私はこれにしてきた宣誓かもしれない前に、しかし後に {読書|ブラウジング|チェックポストのいくつかを、私はそれが私には新機能が実現。 とにかく、私は間違いだうれしい私はそれを発見し、私はなるだろうブックマーキングとバックチェック頻繁!
22 September 2015

こんにちは|あなたは使用して作業しているどのブログのプラットフォームには、心共有する旨でしょうか?私は今すぐに、近い将来にが、私はハード抱えている私自身のブログを開始するために計画が行く BlogEngine間に選択を時間を/ Wordpressの/ b2evolutionのとDrupalの。異なる、最もブログをようで、私が何かを探していますユニークあなたので、私が尋ねる理由がある。 PS私の謝罪というのオフトピックが、私は聞いていた!
22 September 2015

; これについて|スパム問題問題を持っていますか私もブロガーだ、と私はいた好奇心あなたの状況を、 私たちの多く作成しているいくつかの素晴らしい手続き、私たちが見ていると為替と 他人 、興味を持っている場合|電子メールの電子メール私に撃つなぜ。
18 January 2013

When might this be ready for commercial use (where can I purchase one)?
08 May 2012

Nice work! Any chance you'd be willing to open source this? We've got the same "problem" at my work.Thanks,Dennis MillerBend, Oregon, US
08 May 2012

due to security reasons we decided to use a 5V USB power supply. The 5V power supply is mounted into an empty socket housing (as seen in the video).Cheers, Martin
08 May 2012

how did you do the power supply for the nodes?
08 May 2012

@Fredrik. We used a LDR (light dependent resistor) to measure the light. When the input light-value is high enough, a packet is sent to the server.Hope that helps – Martin
08 May 2012

Thank you, this is very interesting. Looking forward to the next!
07 May 2012

So exactly are you sensing that the room is occupied?

Leave a reply

Case Studies