PDF IoT Module 6
PDF IoT Module 6
• IoT Hardware - Arduino, Raspberry Pi, ESP32, Cloudbit/Littlebits, Particle Photon, Beaglebone Black.
• IoT Software - languages for programming IoT hardware, for middleware applications and API
development, for making front ends, REST and JSON-LD
• A comparison of IoT boards and platforms in terms of computing
• A comparison of IoT boards and platforms in terms of development environments and communication
standards
• A comparison of boards and platforms in terms of connectivity
• A comparison of IoT software platforms
IoT Hardware - Arduino, Raspberry Pi, ESP32, Cloudbit/Littlebits, Particle Photon,
Beaglebone Black
• Arduino:
• All the Arduino hardware is open-source. Being open-source has a plethora of advantages- anyone can access
the design and build of the device and make improvements; anyone can use the same hardware design to
create their product lineup.
• Arduino doesn’t necessarily offer just one piece of hardware, it provides a range of boards, each of which
caters to a different level of expertise and have different use-cases altogether.
• Arduino Uno is one of the most basic and popular boards that Arduino offers. This is because it features an
ATMega328 microcontroller that is both cheap and powerful enough for most basic beginner-level projects.
• Once a person is familiar with Arduino IDE, he/she can move up to boards with more powerful and
sophisticated chipsets like the MKR range which is concerned with IoT applications and inter compatibility, or
the Nano range which as the name suggests is designed to keep the form factor as small as possible while
packing most of the features and power of the full-sized boards.
IoT Hardware - Arduino, Raspberry Pi, ESP32, Cloudbit/Littlebits, Particle Photon,
Beaglebone Black
• Arduino Uno:
• It is necessary to understand the layout and circuitry of Arduino Uno.
• Using the image as a reference, the labeled components of the board
respectively are-
1. USB: can be used for both power and communication with the IDE
2. Barrel Jack: used for power supply
3. Voltage Regulator: regulates and stabilizes the input and output
voltages
4. Crystal Oscillator: keeps track of time and regulates processor
frequency
5. Reset Pin: can be used to reset the Arduino Uno
6. 3.3V pin: can be used as a 3.3V output
7. 5V pin: can be used as a 5V output
8. GND pin: can be used to ground the circuit
• ARM CPU/GPU -- This is a Broadcom BCM2835 System on a Chip (SoC) that's made up of an ARM central processing unit
(CPU) and a Videocore 4 graphics processing unit (GPU). The CPU handles all the computations that make a computer work
(taking input, doing calculations and producing output), and the GPU handles graphics output.
• GPIO -- These are exposed general-purpose input/output connection points that will allow the real hardware hobbyists the
opportunity to tinker.
• RCA -- An RCA jack allows connection of analog TVs and other similar output devices.
• Audio Jack -- This is a standard 3.55-millimeter jack for connection of audio output devices such as headphones or speakers.
There is no audio in.
• USB -- This is a common connection port for peripheral devices of all types (including your mouse and keyboard). Model A
has one, and Model B has two.
• HDMI -- This connector allows you to hook up a high-definition television or other compatible device using an HDMI cable.
• Power -- This is a 5v Micro USB power connector into which you can plug your compatible power supply.
• SD cardslot -- This is a full-sized SD card slot. An SD card with an operating system (OS) installed is required for booting the
device.
• Ethernet -- this connector allows for wired network access and is only available on the model B.
IoT Hardware - Arduino, Raspberry Pi, ESP32, Cloudbit/Littlebits, Particle Photon,
Beaglebone Black
• Set up – procedure:
• Any one of the bootable operating systems is needed to be written on an SD card using apps.
• Then connect the display, keyboard, and mouse to the Pi just like that to make it a normal computer.
• The Pi supports video output which can be hooked to a monitor or even TV using an HDMI port that provides
the normal computer’s abilities.
• Then the necessary action code is done with the help of any specified applications.
• Basic Raspi language: python, scratch
IoT Hardware - Arduino, Raspberry Pi, ESP32, Cloudbit/Littlebits, Particle Photon,
Beaglebone Black
• ESP32:
• ESP32 is created by Espressif Systems, which is a low-cost, low-power system on a chip (SoC) series with Wi-
Fi & dual-mode Bluetooth capabilities.
• The ESP32 family includes the chips ESP32-D0WDQ6 (and ESP32-D0WD), ESP32-D2WD, ESP32-S0WD, and the
system in package (SiP) ESP32-PICO-D4.
• At its heart, there's a dual-core or single-core Tensilica Xtensa LX6 microprocessor with a clock rate of up to
240 MHz.
• ESP32 is highly integrated with built-in antenna switches, RF balun, power amplifier, low-noise receive
amplifier, filters, and power management modules.
• Engineered for mobile devices, wearable electronics, and IoT applications, ESP32 achieves ultra-low power
consumption through power saving features including fine resolution clock gating, multiple power modes,
and dynamic power scaling.
IoT Hardware - Arduino, Raspberry Pi, ESP32, Cloudbit/Littlebits, Particle Photon,
Beaglebone Black
• ESP32 Specifications:
• Processors:
• Cores: 2 or 1 (depending on variation) : All chips in the ESP32 series are dual-core except for ESP32-S0WD, which is single-core.
• Ultra low power co-processor: allows you to do ADC conversions, computation, and level thresholds while in deep sleep.
• Wireless connectivity:
• ESP32 Specifications:
• Internal memory:
• RTC fast SRAM: 8 KiB : For data storage and main CPU during RTC Boot from the deep-sleep mode.
• RTC slow SRAM: 8 KiB : For co-processor accessing during deep-sleep mode.
• eFuse: 1 Kibit: Of which 256 bits are used for the system (MAC address and chip configuration) and the remaining 768 bits are reserved for
customer applications, including Flash-Encryption and Chip-ID.
• Embedded flash: Flash connected internally via IO16, IO17, SD_CMD, SD_CLK, SD_DATA_0 and SD_DATA_1 on ESP32-D2WD and ESP32-PICO-D4.
IoT Hardware - Arduino, Raspberry Pi, ESP32, Cloudbit/Littlebits, Particle Photon,
Beaglebone Black
• Cloudbit/Littlebits:
• LittleBits Kit helps to start working with electronics easier than ever.
• The cloudBit acts as an input by receiving signal from littleBits circuit and sending it to the internet. This means one can make a smart doorbell
that tweets when someone pushes a littleBits button, or a burglar alarm to send a text message if someone activates the littleBits sound trigger.
• The cloudBit also acts as an output by sending signal from an event on the internet to littleBits circuit. This would be like flashing an LED when
one get an email from a VIP.
IoT Hardware - Arduino, Raspberry Pi, ESP32, Cloudbit/Littlebits, Particle Photon,
Beaglebone Black
• Particle Photon:
• The Photon is a tiny Wi-Fi IoT device for creating connected projects and products for the Internet of Things. It's easy to use, it's powerful, and it's
connected to the cloud. The board is powered by a Cypress Wi-Fi chip alongside a powerful STM32 ARM Cortex M3 microcontroller.
• Main processor:
• 802.11b/g/n Wi-Fi
• Particle Photon:
• General specification:
• Soft AP setup
• 3D graphics accelerator
• Software Compatibility:
• Debian
• Android
• Ubuntu
• C# : is a major programming language for the entire software ecosystem, is most popular coding language for embedded
devices. C# is a lower-level programming language and so they are intended for writing software closest to the hardware. Most
of the current coding languages are based on the foundation of the C language. Even basic sensors work directly with the C
language as it is used to program microcontrollers. Due to the same reason those embedded CPUs control the IoT devices.
• C++ : is a language that is directly derived from the C language and obviously with some improvements added. Due to that, the
language boasts better efficiency and productivity. Additionally, it is an object-oriented language and so more powerful than the
C language. Since it is derived from the C language, it can also be used to write code for Arduino circuit boards that can control
other electronic objects.
• Java
• Python
• Swift
• Go
IoT Software - languages for programming IoT hardware, for middleware applications
and API development, for making front ends, REST and JSON-LD
• OpenRemote: OpenRemote has introduced a new open-source IoT platform to create professional energy management,
crowd management, or more generic asset management applications.
IoT Software - languages for programming IoT hardware, for middleware applications
and API development, for making front ends, REST and JSON-LD
• languages for middleware applications and API development :
• Node-RED: is a visual tool for lining the Internet of Things, i.e., wiring together hardware devices, APIs, and online
services in new ways. Built on Node.js, Node-RED describes itself as “a visual means for wiring the Internet of Things.”
• It provides developers to connect devices, services, and APIs using a browser-based flow editor. It can run on Raspberry
Pi, and further 60,000 modules are accessible to increase its facilities.
• ThingsBoard: is for data collection, processing, visualization, and device management. It upholds all standard IoT
protocols like CoAP, MQTT, and HTTP as quickly as cloud and on-premise deployments. It builds workflows based on
design life cycle events, REST API events, RPC requests.
• M2MLabs Mainspring: is an application framework for developing a machine to machines (M2M) applications such as
remote control, fleet administration, or smart terminal. Its facilities include flexible design of devices, device structure,
connection between machines and applications, validation and normalization of data, long-term data repository, and
data retrieval functions.
IoT Software - languages for programming IoT hardware, for middleware applications
and API development, for making front ends, REST and JSON-LD