Internet of Things kit for hackdays/spaces
Roughly every quarter my employer, Red Gate, has a ‘Down Tools Week’ which is a week long opportunity to hack on ideas that never get space in a normal work day. This cycle our theme is the Internet of Things, so I’m pulling together kits to get people up and running. The key criteria are:
- The audience is primarily software engineers so minimise the electronics knowledge required
- Eliminate the need for hardware hacking skills such as soldering
- Provide enough diversity of kit (more than just a pile of Arduino’s) to enable people to create something interesting and useful within the week
- The parts shouldn’t be too expensive and should be fairly mainstream
Here’s what I have so far. If you have ideas on alternatives or things I’ve missed then add to the comments at the end. I’ve listed the original supplier (Sparkfun, Adafruit etc) as well as the UK distributor I used (mostly Proto Pic or Farnell).
Networking
I’d like people to experiment with different options for networking IoT devices. So I started with the following kits:
Bluetooth Low Energy
Bluetooth Low Energy (BLE) or Bluetooth Smart is an update to the Bluetooth spec which allows for very low power consumption making it ideal for IoT devices and wearables. Newer generation Android and IPhones support BLE out of the box allowing direct interfacing from mobile applications.
There are a couple of really nice kickstarters proving single board Arduino-based BLE devices - RFduino and BLEduino. I missed both when they were doing their campaigns and they’re a bit hazy on when they would be able to ship. So decided to go the more pedestrian route and get a separate board. RedBearLab make a couple of nice looking ones - the BLE shield or the BLE mini so I grabbed one of the latter.
- BLE mini (Seeedstudio / Proto Pic)
ZigBee
ZigBee is a specification for a suite of high level communication protocols used to create personal area networks built from small, low-power digital radios. Though low-powered, ZigBee devices can transmit data over long distances by passing data through intermediate devices to reach more distant ones, creating a mesh network.
This is an easy one as the XBee kit is a commonly used for IoT. I decided that for ease of use I’d get three parts: An XBee Explorer USB for direct serial connection from a laptop to aid debugging, a Arduino with the Wireless Shield to act as a device, and a Raspberry Pi with a Slice of Pi to act as a hub. Top off with a couple of series 2 XBee modules.
- Xbee explorer USB (Sparkfun / Proto Pic)
- Arduino wireless shield (Farnell)
- Slice of Pi (Ciseco)
- Xbee module v2 (Farnell)
Radio Frequency Identification (RFID)
RFID is the wireless non-contact use of radio-frequency electromagnetic fields to transfer data, for the purposes of automatically identifying and tracking tags attached to objects.
We have a HiTag2 based Paxton system at Red Gate. ib technology do a reader module which is easy to use through a simple serial interface (more on this in a later blog post). So I picked up their RWD Dev board, and a RWD-HiTag2 module.
- RWD-Hitag2 (ibtechnology)
- RWD dev board (ibtechnology)
Near Field Communication (NFC)
Near field communication (NFC) is a set of standards for smartphones and similar devices to establish radio communication with each other by touching them together or bringing them into proximity, usually no more than a few inches.
NFC doesn’t seem to be well supported on the Arduino - in particular it won’t work with phones which is the fun bit! Adafruit to the rescue again with their mbed NFC starter pack which includes an mbed and their PN532 breakout board all driven by the μNFCstack developed by local Cambridge company AppNearMe.
- mbed NFC starter pack (Adafruit)
Lightweight Local Automation Protocol (LLAP)
LLAP is an easy to use, licence free, “open” and standardised method to send data between local networks of low cost wired or wireless devices. Designed by UK company Ciseco and implemented in their ISM band (868 to 915 Mhz) RF kit.
Ciseco are a small UK company who are doing nice bits of kit at a low price, so I really wanted to support them and get them into the mix. Similar to the ZigBee setup, I went for a SRF stick for laptop debugging, a Raspberry Pi with Slice of Radio as a hub, and an Arduino with the Wireless Shield and an XRF module to act as a device.
- SRF stick (Ciseco)
- Slice of Radio (Ciseco)
- Arduino wireless shield (Farnell)
- XRF module (Ciseco)
- 4Gb SD card for Ciesco (Ciseco)
GSM
GSM (Global System for Mobile Communications) is a standard developed by the European Telecommunications Standards Institute (ETSI) to describe protocols for second generation (2G) digital cellular networks used by mobile phones.
I’ve not had a lot of experience with using mobile networks for devices. 3G network modules seem a bit expensive, so after a bit of hunting around I decided to experiment with the GPRS+GPS Quadband module for Arduino / Raspberry Pi from Cooking Hacks - if you’re going to be on the move then might as well throw in GPS!
- GPRS Quadband module (Cooking Hacks)
- GPRS antenna (Cooking Hacks)
- GPS antenna (Cooking Hacks)
Wifi
Wi-Fi is a popular technology that allows an electronic device to exchange data or connect to the internet wirelessly using radio waves.
The easiest, but not necessarily cheapest or most efficient, option is to connect your device directly to the Internet by Wifi. Adafruit do a lovely little SPI board at a reasonable price for the TI CC3000 wifi chip. I also couldn’t resist an Arduino compatible Spark Core, which is also CC3000 based - hopefully it will arrive in time.
- CC3000 breakout (Adafruit / Proto Pic)
- Spark core (Spark Core)
Low power IPv6 (6LowPan, RPL, CoAP)
IETF protocols for low-power IPv6 networking, including the 6lowpan adaptation layer, the RPL IPv6 multi-hop routing protocol, and the CoAP RESTful application-layer protocol.
Had a bit of trouble finding affordable options for this. Using a Raspberry Pi as a hub with the Contiki OS (an OS in 40Kb of RAM!) looks like a viable option, but getting cheap nodes seems difficult - Arduino Megas running μIPv6 are kind of supported, but the Arduino port doesn’t seem very active or loved.
I did spend a long time admiring Libelium’s Waspmotes which seems a very polished platform, but in the end I decided on Openmote who are building out boards based on the TI CC2538 system on a chip. This will allow 2.4GHz 802.15.4 communications via a CC2520 radio paired with an ARM Cortex M3 and will be compatible with 6LowPan style platforms such as Thingsquare, Libelium and Contiki.
- Open mote (Openmote)
Platforms / Software
Platform recommendations are difficult as there are so many to choose from at the moment - this is a whole blog post on its own. At the moment I’m just pointing people towards some of the most well known to get experience:
- Backends: Xively, Thingworx
- 6LowPan: Thingsquare, Libelium
- Other software: Node-Red, MQTT, The Thing System
Microcontrollers
Arduino
The Arduino will be the primary platform due to it’s low cost and ease of use.
- Arduino Uno (Farnell)
- Arduino sidekick basic kit (Cooking Hacks)
Raspberry Pi
Not really a microcontroller, but for hubs and gateways, the Raspberry Pi makes an ideal device. We’ll also pick up some extras that we’ll need …
- Raspberry Pi model B & 8Gb SD (Farnell)
- Raspberry Pi PSU 5V 1A (Farnell)
- GPIO Breakout Board with Cable (Proto Pic)
- Slice of Relay (Ciseco)
- WiFi dongle (Farnell)
- Pi Camera (Farnell)
- Pi NoIR camera (Farnell)
- Dynamode CR-31 Card Reader (Farnell)
- USB Hub with interface expansion (Farnell)
- Cerberus USB Cable - 6ft w hub (Sparkfun / Proto Pic)
- Embest - Pi Arduino board (Farnell)
Javascript
Our developers love Javascript and it’s event driven model is very well suited to the reactive world of IoT applications. The Tessel and Espruino are two interesting kickstarter projects to build microcontrollers that run Javascript. There’s a great Makezine comparison of the two boards by Alasdair Allan. Hopefully I’ll be able to grab one of each to play with.
Wearables
There’s no company more interesting than Adafruit when it comes to wearable tech. So picking up a Flora Sensor Pack to play with was a no-brainer.
- Flora sensor pack (Adafruit)
Sensors and Actuators
Sensors
The drive here was to focus on breakout boards to remove the need for electronics skills.
- Triple Axis Magnetometer Breakout - HMC5883L (Sparkfun / Proto Pic)
- Triple Axis Accelerometer and Gyro Breakout - MPU-6050 (Sparkfun / Proto Pic)
- Piezo Vibration Sensor - Large Mass (Sparkfun / Proto Pic)
- Flex Sensor 2.2” (Sparkfun / Proto Pic)
- Force Sensitive Resistor 0.5” (Sparkfun / Proto Pic)
- SoftPot Membrane Potentiometer - 50mm (Sparkfun / Proto Pic)
- Reed switch (Sparkfun / Proto Pic)
- Magnet square - 0.25” (Sparkfun / Proto Pic)
- PIR motion sensor (Sparkfun / Proto Pic)
- Ultrasonic Range Finder - Maxbotix HRLV-EZ1 (Sparkfun / Proto Pic)
- HIH-4030 Humidity Sensor Breakout (Sparkfun / Proto Pic)
- IR receiver breakout (Sparkfun / Proto Pic)
- Mini Photocell (Sparkfun / Proto Pic)
- Optical Detector / Phototransistor (Sparkfun / Proto Pic)
- Altitude/Pressure Sensor - MPL3115A2 Breakout (Sparkfun / Proto Pic)
- Flora sensor pack (Adafruit)
- Gas sensor breakout board (Sparkfun / Proto Pic)
- Alcohol gas sensor (Sparkfun / Proto Pic)
- CO gas sensor (Sparkfun / Proto Pic)
- Non-Invasive Current Sensor - 30A (Sparkfun / Proto Pic)
- Conductive Rubber Cord Stretch Sensor (Adafruit / Proto Pic)
- Liquid level sensor (Sparkfun / Proto Pic)
- Load sensor 50kg (Sparkfun / Proto Pic)
- Tilt sensor (Sparkfun / Proto Pic)
- 1/2” flow sensor (Seedstudio / Proto Pic)
- Infrared Emitters and Detectors Pair (Sparkfun / Proto Pic)
- Photo Interrupter GP1A57HRJ00F (Sparkfun / Proto Pic)
- Photo Interrupter GP1A57HRJ00F Breakout Board (Sparkfun / Proto Pic)
- QRE1113 Line Sensor Breakout - Analogue (Sparkfun / Proto Pic)
- Color Light Sensor ADJD-S311-CR999 (Proto Pic)
- Magnetic contact switch (door sensor) (Adafruit / Proto Pic)
- Hall effect sensor (Sparkfun / Proto Pic)
- Magnet ring (Sparkfun / Proto Pic)
- Temperature Sensor - Waterproof (DS18B20) (Sparkfun / Proto Pic)
- VCNL4000 Infrared Emitter/Proximity (Sparkfun / Proto Pic)
- Pressure-Sensitive Conductive Sheet (Adafruit / Proto Pic)
- Electret Microphone Amplifier - MAX4466 with Adjustable Gain (Adafruit)
- TSL2561 digital luminosity / lux / light sensor (Adafruit)
- SensorTag (Farnell)
TI’s SensorTag is worth special mention - it’s a BLE device which has a six on-board sensors and its own iOS and Android SDKs. Alasdair does another great Make blog post tearing it down.
Motors, steppers, servos, buttons, switches and claws
We want to interact with the world not just measure it …
- 3v relay board (Ciseco)
- 3v to 5v Bistable Latching relay (Ciseco)
- 4 channel Arduino relay shield (Seeedstudio / Proto Pic)
- VS1053 Codec + MicroSD Breakout - MP3/WAV/MIDI/OGG Play + Record - v2 (Adafruit)
- 5v Solenoid (Sparkfun / Proto Pic)
- 12V Solenoid Valve - 3/4” (Sparkfun / Proto Pic)
- Robotic Claw - MKII (Sparkfun / Proto Pic)
- Medium servo (Sparkfun / Proto Pic)
- Surface Transducer - Small (Sparkfun / Proto Pic)
- Vibrating Mini Motor Disc (Adafruit)
- Motor/Stepper/Servo shield v2 (Adafruit / Proto Pic)
- 16-Channel 12-bit PWM/Servo Driver TLC5940 (Sparkfun / Proto Pic)
- 9 gram servo (Proto Pic)
- 3 channel servo tester (Proto Pic)
- Servo Cable - Female to Female (Sparkfun / Proto Pic)
- Big easy stepper driver (Sparkfun / Proto Pic)
- Small stepper motor (Sparkfun / Proto Pic)
- L298 Dual H-Bridge Motor Driver (Seedstudio / Proto Pic)
- QIK Dual Serial Motor Controller (Pololu / Proto Pic)
- Brushed DC Motor: 130-Size 800mA Stall 6V 11.5kRPM (Proto Pic / Pololu)
- Small Arcade Joystick (Adafruit / Proto Pic)
- Thumb joystick - Analogue (Sparkfun / Proto Pic)
- Breakout board for thumb joystick (Sparkfun / Proto Pic)
- Keypad - 12 Button (Sparkfun / Proto Pic)
- Pull Chain Switch (Sparkfun / Proto Pic)
- Tactile Button Assortment (Sparkfun / Proto Pic)
- Concave Button - Blue (Sparkfun / Proto Pic)
- Concave Button - Red (Sparkfun / Proto Pic)
- Concave Button - Green (Sparkfun / Proto Pic)
- Concave button - yellow (Sparkfun / Proto Pic)
- Rotary Encoder LED Ring Breakout Board - Blue (Sparkfun / Proto Pic)
- SPDT slide switch (Sparkfun / Proto Pic)
- Toggle Switch and Cover - Illuminated (Blue) (Sparkfun / Proto Pic)
- Silicone Elastomer 4x4 Button Keypad - for 3mm LEDs (Adafruit)
- Adafruit Trellis Monochrome Driver PCB for 4x4 Keypad & 3mm LEDs (Adafruit)
- Tactile on/off switch (Adafruit)
- IR remote module for Arduino / Raspberry Pi (Cooking Hacks)
The Basics
We also need all the basics. Here’s my initial list which I’m sure I’ll be revising as I discover things I’ve forgotten.
Misc breakout boards
- 8 channel logic level converter (Adafruit / Proto Pic)
- ADS1115 16-Bit ADC (Adafruit / Proto Pic)
- OpenLog (Sparkfun / Proto Pic)
Tools
- Farnell tool kit (Farnell)
- Alligator Test Leads - Multicolored 10 Pk (Sparkfun / Proto Pic)
- Half-size breadboard (Farnell)
- FTDI Voltage Selectable board (Proto Pic)
Consumables
- Beginner Parts Kit (Sparkfun / Proto Pic)
- Resistor Kit 1/4W (Sparkfun / Proto Pic)
- Break Away Headers - Right Angle (Sparkfun / Proto Pic)
- Break Away Headers - Straight (Sparkfun / Proto Pic)
- Break Away Female Headers (Sparkfun / Proto Pic)
- Hook-Up Wire - Assortment (Solid Core) (Sparkfun / Proto Pic)
- Hook-Up Wire - Assortment (Stranded) (Sparkfun / Proto Pic)
- Jumper Wire - JST Black Red (Sparkfun / Proto Pic)
- JST Right-Angle Connector Thru-Hole 2Pin (Sparkfun / Proto Pic)
- Breadboard Jumper wires (Seeedstudio / Proto Pic)
- Ribbon Cable - 10 wire (3ft) (Sparkfun / Proto Pic)
- 3ply conductive thread (Adafruit)
- 2ply conductive thread (Adafruit)
- Copper tape (Sparkfun / Proto Pic)
- Magnet Wire Kit (Sparkfun / Proto Pic)
- 2Gb MicroSD (Farnell)
Power
- Battery Holder 2xAA Cover Switch JST (Sparkfun / Proto Pic)
- Battery holder 4xAA with switch (Sparkfun / Proto Pic)
- 9v battery holders with switch & barrel (Adafruit)
- 2x 2032 Coin Cell Holder - 6V (Adafruit / Proto Pic)
- Coin Cell Holder - 20mm (Sparkfun / Proto Pic)
- Sewable CR2032 Battery Holder (Sparkfun / Proto Pic)
- DC Barrel Jack Adapter - Female (Sparkfun / Proto Pic)
- DC Barrel Jack Adapter - Male (Sparkfun / Proto Pic)
- Barrel Jack to 2-pin JST (Sparkfun / Proto Pic)
- LiPo battery 3.7v 2500mAh (Adafruit / Proto Pic)
- LiPo Battery 3.7v 850mAh (Sparkfun / Proto Pic)
- LiPo Battery 3.7v 400mAh (Sparkfun / Proto Pic)
- LiPo battery 3.7v 40mAh (Sparkfun / Proto Pic)
- USB/DC LiPo charger 5-12V - 3.7/4.2v (Adafruit)
- CR2032 Lithium Coin Cell Battery (Farnell)
- 9v battery x4 (Farnell)
- 12 pack AA battery (Farnell)
Optical
- LED starter kit (Sparkfun / Proto Pic)
- i2c / SPI character LCD backpack (Adafruit / Proto Pic)
- Basic 16x2 Character LCD - Black on Green 5V (Sparkfun / Proto Pic)
- Basic 20x4 Character LCD - Black on Green 5V (Sparkfun / Proto Pic)
- Monochrome 1.3” 128x64 OLED (Adafruit / Proto Pic)
- 0.56” 4Digit 7Seg I2C Blue (Adafruit / Proto Pic)
- 0.56” 4Digit 7Seg I2C Yellow (Adafruit / Proto Pic)
- 4x Breadboard RGB Smart NeoPixel (Adafruit / Proto Pic)
- NeoPixel RGB LED Weatherproof 30 LED 1m BLACK (Adafruit / Proto Pic)
- Adafruit NeoPixel NeoMatrix 8x8 - 64 RGB LED Pixel Matrix (Adafruit / Proto Pic)
- AdaFruit NeoPixel Ring - 16 x WS2812 5050 RGB LED with Integrated Drivers (Adafruit / Proto Pic)
- NeoPixel Stick - 8 x WS2812 5050 RGB LED with Integrated Drivers (Adafruit / Proto Pic)
- Aqua EL Wire Starter Pack - 2.5 Metres (Adafruit / Proto Pic)
Let me know what you think of the selection in the comments, particularly whether there’s anything I missed, or your own favourite kit lists.