Editor’s note: Maybe you got a chance to check out our IoT Smart Office demo at the OAUX Exchange during OpenWorld. If not, don’t fret, we’ll describe its many cool bits here, beginning with this post from Raymond (@yuhuaxie) on his smart badge build. A Smart Office needs an equally smart badge.
We showcased the Smart Office at OAUX Exchange.
You put on a badge and walked into an office in the future, and everything came alive. You may be dazzled by the lights, screens, voice commands and gesture, and may not have paid any attention to the badge. Well, the badge is the key to start all the magical things when you approach the office. And it is worth some mention of its build.
The classical version:
If you tried it at the Exchange event, you can feel it is just like a normal badge, except it is a little heavier and has a vivid display.
Inside that home-made leather pouch, there is a 3.5” TFT display, a large recycled LiPo battery (taken out of a thin power bank we got at Kscope15), and one controller called LightBlue Bean (@punchthrough), which happened to be the same controller inside “Smart Bracelet” we showcased a year earlier to light up different colors to guide you an expo path.
The Smart Badge needs to be programmable and to tell its presence, so that we can program it to be a particular persona, and it can indicate to other listener (a Raspberry Pi server acting as IoT brain) about its presence or approaching to Smart Office.
The LightBlue Bean does the job perfectly, as it has two personalities: BLE and Arduino compatible controller. We created an iOS app to talk to the Bean over Bluetooth to set up persona, and the Arduino side of Bean would control the TFT display to show proper badge image.
When the person wearing the Smart Badge approaches the office, the Raspberry Pi server would detect its coming, and can send out a remote notification to iPhone and Apple Watch, so that you can “check in” to the office from an Apple Watch, and then start the whole sequence of Smart Office coming alive.
At the OAUX Exchange event, due to limited space issue, we did not use BLE presence detection we built, but instead, we used a time-delay mechanism to send out notification to Apple Watch.
For those curious minds, we prepared another version, to show the components inside the Smart Badge. I would call it . . .
The techno version:
Instead of stacking up the components, we spread the components so people can see the parts and wiring. We designed and laser-cut acrylic sheets to make a transparent case, and it resembles the typical laminated badge you see at conferences.
As you can see, the wiring between the Bean and TFT is pretty much for the display control over SPI protocol, plus one wire to access SD card inside TFT display board, and another wire to control the backlight. The BLE part is all over wireless.
We connected the TFT display with NodeMCU over hardware SPI, and similar approach for access SD card and backlight control. Since NodeMCU has so many more pins available (some PWM pins too), we can actually control the backlight to dim at many brightness level, instead of just turning on and off, as in the Bean case.
The NodeMCU is flushed as an Arduino variant, and set up as a web server with its built-in wifi capability. The iOS app mentioned earlier can program this Smart Badge using HTTP request over wifi. In fact, it can be programmed using any browser or CLI, without the need of tethering to iPhone.
NodeMCU is such a recent toy on the block, that it takes some time to get it work with TFT display. For example, the image just does not look right when controlled by NodeMCU. After some perseverance, it was straightened out.
The card version:
We were considering making the Smart Badge as small as possible. This design was to make it just a bit larger than the TFT display, by stacking NodeMCU behind TFT, and use a tiny proto-board to neatly wire everything. It is about the size of a deck of card, hosted in a transparent acrylic case.
Figured that it does not look like a badge, but it is a nice little display hooked on the Internet, that can sit on a desktop. So I decided to fit in a 3 x AAA everyday battery, instead of the LiPo battery which usually use JST connector and is a hassle to recharge.
Currently, this version can show a badge, also do some slide shows. But it can do much more – with NodeMCU (ESP8266), it is a web server that can listen for instructions, it is web client to pull information from outside, it runs MQTT to react to outside events, and it has many pins to hook up sensors and controllers. Plus that the TFT is a touch display, we can make touch input to switch to different modes, etc.
It could be a real functional Smart Office monitor/notification center.
I guess this is just the starting point of a little toy.