IoT Devices : Basic Building Blocks
An IoT Device can consist of a number of modules based on functional
attributes:
Sensing Sensors can be either on-board the Device, or attached to
the Device – IoT Device can collect various information from
Sensors, such as Temperature, Humidity, Light Intensity, etc.
The sensed information can be communicated either to
other devices or cloud-based servers/storage
Actuation Devices can have various type of Actuators, allowing taking
actions upon physical entities in the vicinity of the device – A
Relay Switch connected to the IoT Device can turn an
Appliance On/Off based on commands sent to the device
Communication Communication Modules are responsible for sending
collected data to other devices, or cloud-based
servers/storage, and receiving data from other devices and
commands from remote applications
Analysis and These Modules are responsible for making sense of the
Processing collected data
A Generic block diagram of a Single-Board Computer(SBC)-based IoT Device that
includes CPU, GPU, RAM, Storage, and various types of Interfaces & Peripherals…
Raspberry Pi
•A low-cost Mini Computer – with size of a Credit Card
•Runs various flavors of Linux – can perform almost all tasks a Desktop can do
•Allows interfacing Sensors and Actuators through General Purpose I/O Pins
•Supports Python “out of the box”
Raspberry Pi – about the Board
Processor & RAM : based on an ARM Processor – latest version Model B
Revision 2 with 700 MHz Low Power ARM 1176 JZ-F Processor – 512 MB SD
RAM
USB Ports : two USB 2.0 Ports – can provide a current upto 100 mA – for more
current requirements of connecting devices, an external USB-powered Hub is
required
Ethernet Ports : a standard RJ45 Ethernet Port – an Ethernet Cable/a USB Wi
Fi Adapter can be connected to provide Internet Connectivity
HDMI Output : HDMI Port provides both Video and Audio Output – a Monitor
using an HDMI Cable can be connected – for Monitors having a DVI Port (no
HDMI Port) can also be connected using an HDMI-to-DVI Adapter/Cable
(Accessing Raspberry Pi either using VNC or SSH from your Desktop/Laptop
which does away with the need for a separate display monitor)
Composite Video Output : comes with a Composite Video Output with a RCA
Jack, supporting both PAL and NTSC Video Output – RCA Jack can be used to
connect old TVs, having RCA Input only
Raspberry Pi – about the Board
Audio Output : has a 3.5mm Audio Output Jack, used for providing Audio
Output to old TVs along with RCA Jack for Videos – Audio quality is inferior to
HDMI Output
GPIO Pins : comes with a number of General Purpose I/O Pins – there are
FOUR types of Pins – true GPIO Pins, 12C Interface Pins, SPI Interface Pins,
and Serial Rx/Tx Pins -
Display Serial Interface (DSI) : can be used to connect an LCD Panel
Camera Serial Interface (CSI) : can be used to connect a Camera Module
Raspberry Pi – about the Board
Status LEDs : has FIVE Status LEDs -
Status LED Function
ACT SD Card Access
PWR 3.3V Power is Present
FDX Full Duplex LAN is Connected
LNX Link/Network Activity
100 100 Mbit LAN is Connected
SD Card Slot : no built-in OS and Storage – an SD Card loaded with Linux
can be plugged-in to the SD Card Slot – atleast an 8GB SD Card is required
for setting up NOOBS (New Out-Of-Box Software)
Power Input : has a micro-USB Connector for Power Input
Linux on Raspberry Pi
Raspberry Pi supports various
flavors of Linux:
1. Raspbian Linux – This is
recommended for Raspberry
Pi
2. Arch – This is for AMD Devices
3. Pidora – This is a optimized
version for Raspberry Pi
4. RaspBMC – This is an XBMC
Media-Centre distribution for
Raspberry Pi
5. OpenELEC – This is a fast and
user-friendly XBMC Media-
Centre distribution
Raspbian Linux Desktop 6. RISC OS – This is a very fast
and compact OS
Raspberry Pi – Frequently Used Commands
Raspberry Pi Interfaces
Interfaces for Data Transfer :
Serial, SPI, and I2C
Serial - the Serial Interface has
Receive (Rx) and Transmit (Tx) Pins
for Communication with Serial
Peripherals
I2C – These Interface Pins allow you
to connect H/W Modules and has
SDA (Data Line) and SCL (Clock Line)
Pins for Synchronous Data Transfer
SPI – Serial Peripheral Interface is a Synchronous Serial Data Protocol, used for
Communicating with one/more Peripheral Devices, having one Master Device and
one/more Slave (Peripheral) Devices. The FIVE Pins are:
MISO (Master In Slave Out) – Master Line for Sending Data to Peripherals
MOSI (Master Out Slave In) – Slave Line for Sending Data to the Master
SCK (Serial Clock) – Clock generated by Master to Synchronize Data Transmission
CE0 (Chip Enable 0) – To Enable/Disable Devices
CE1 (Chip Enable 1) – To Enable/Disable Devices
Other IoT Devices - pcDuino
•pcDuino is an Arduino-pin compatible Single Board Mini-Computer with a 1 GHz
ARM Cortex-A8 Processor
•pcDuino is a High Performance and Cost Effective Device
•It runs PC-like OS such as Ubuntu, and Android ICS
•Like Raspberry Pi, it has an HDMI Video/Audio Interface.
•It supports Programming Languages like C, C++ (with GNU Tool Chain), Java (with
Standard Android SDK), and Python
Other IoT Devices – BeagleBone Black
•BeagleBone Black is a more powerful device than Raspberry Pi, with 1 GHz ARM
Cortex-A8 Processor
•It supports both Linux and Android OSs
•It has HDMI Video/Audio Interface, USB and Ethernet Ports
Other IoT Devices – Cubieboard
•Cubieboard is powered by a Dual Core ARM Cortex-A7 Processor
•It supports both Linux and Android OSs
•It has a range of I/O Interfaces including USB, HDMI, IR, Serial, SATA, and a 96-Pin
Extended Interface
Single Board Mini Computers – A Comparison