870 likes | 1.74k Views
Building Blocks of IoT. Hardware - Software - Cloud. Amazon,Google , Oracle. C. IDE’s. JavaScript. ESP 8266. MicroPython. Sensors. Raspberry Pi. Arduino. Satish Rao. Building Blocks of IoT. Hardware Sensors Microcontroller vs MicroProcessor Arduino vs ESP 8266 vs Raspberry Pi
E N D
Building Blocks of IoT Hardware - Software - Cloud Amazon,Google, Oracle C IDE’s JavaScript ESP 8266 MicroPython Sensors Raspberry Pi Arduino Satish Rao
Building Blocks of IoT • Hardware • Sensors • Microcontroller vs MicroProcessor • Arduino vs ESP 8266 vs Raspberry Pi • Software • Programming Languages • Integrated Development Environments (IDE) • Cloud • Communication Protocols • Cloud Vendors
MicroController (MCU) • Microcontroller is a processor that has its program and data memory built-in • Embedded inside some other device • Dedicated to one task • Low Power Devices • Small in size • Low in cost
Microprocessor (MPU) • Microprocessor is an IC which has only the CPU inside them i.e. only the processing powers such as Intel’s Pentium 1,2,3,4, core 2 duo, i3, i5 etc. • These microprocessors don’t have RAM, ROM, and other peripheral on the chip.
Arduinovs ESP 8266 vs Raspberry pi ESP 8266 Arduino Raspberry Pi
Why MCU for IOT ? • Simplicity • Simply turn them on, upload firmware, and they work. Additionally, the coding required to program an MCU is minimal • Low Power • Consumes Less Power and Power Saving mode can be enabled • No Operating System • Code on MCUs runs “bare metal”, meaning it includes no intermediary operating system to execute instructions • Cost • Can deliver all the processing power and functionality one needs at Less Cost
Programming Languages and IDE’s • C/C++ • Most Popular Language for Embedded Systems • Mostly used for Arduino Boards • JavaScript • Widely used across Webpages • Popularity of Nodejs and open source nature • MicroPython • Optimized to run on microcontrollers
IDE’s • Arduino IDE • Arduino framework is built for makers, the simplest way possible. Firmware logic has two functions, setup() and loop() and is synchronous by design • Programming in C like Language • PlatformIO • Its an open source ecosystem forIoTdevelopment • Supports Arduino C • NodeRed • Flowbased programming for the IoT • Built on Nodejs
Cloud - Communication • Communication Protocols • HTTP • WebSockets • MQTT • CoAP
HTTP • Its most important protocol today • It gives embedded devices an opportunity to use any service that exists and uses a HTTP or protocol based on it. • Its simple to use with microcontrollers • Works on Request / Response principle
Websockets • WebSocket provides full-duplex communication • Connection is open between client and server • After initial handshake , each frame carries only a small header which reduces the overhead when compared to plain HTTP
MQTT • Stands for “Message Queuing Telemetry Transport” • Most popular M2M Protocols • Its lightweigh and simple to use • Uses Publish/Subscribe communication model
CoAP • stands for “Constrained Application Protocol” • It is a specialized web transfer protocol and ideal for use within constrained networks and environments • It’s built for multicast support, low overhead and simplicity. • CoAP is specifically designed to use minimal resources. This makes it ideal for the IoT.
Cloud Vendors • Amazon • Microsoft Azure • Oracle • IBM Bluemix • ThingSpeak • Ubidots
Free IoT Dashboards • DIoTY - http://www.dioty.co • a cloud MQTT broker for the Internet of Things (IoT). • Easy to configure mobile app ready to use on both Android and iOS. • IoTtweet - http://www.iottweet.com/ • Free dashboard to control and record data from IoT. • Dweet.io – its like Twitter for “Things”
Programming Languages For IoT • C / C++ • Javascript • MicroPython • Python • Lua • Nodejs • Java • Ruby • Go • C# - Windows 10 IoT Core
Brains of IoT Raspberry Pi Arduino ESP 8266 C / C ++ Johnny Five JavaScript C / C++ Python JavaScript Nodejs Java Ruby/Go C# C / C++ MicroPython JavaScript Lua
Arduino IDE Arduino framework is built for makers, the simplest way possible. Firmware logic has two functions, setup() and loop() and is synchronous by design.
mBlock is a graphical programming environment based on Scratch 2.0 Open Source Code that makes it easy to program Arduino projects and create interactive.
Visuino • Visuino is the latest innovative software from Mitov Software. • A visual programming environment allowing you to program your Arduino boards. • It currently supports the official Arduino boards, Teensy, Femto IO, ESP8266, ESP32, Controllino, Goldilocks Analogue, FreeSoC2, chipKIT, Maple Mini, and number of Arduino clones. www.visuino.com
Platformio IDE PlatformIO is an open source ecosystem forIoTdevelopment www.platformio.org
Web based platform designed to easily program and monitor your embedded devices Raspberry Pi, Intel Galileo & Edison and Beagle Bone Black are the only boards supported C/C++/Java/Perl/Python/Java Script Languages Supported It’s not free.
MicroPython • MicroPython is a lean and efficient implementation of the Python 3 programming language. • Includes a small subset of the Python standard library • Optimized to run on microcontrollers Supported Boards ESP 32 / NodeMCU / Py Boards
Python • It is a very simple language to learn and easy to implement and deploy • It is portable, expandable and embeddable • Supports a lot of single board computers. • It has a huge community • Works on Raspberry Pi / Single Board Computers
Johnny-Five • is the JavaScript Robotics & IoT Platform. • Released by Bocoup in 2012 • Works on all Arduino compatible boards • Uses nodejs Supported boards Arduino | Tessel 2 | BeagleBone | Intel Edison | Particle Photon http://johnny-five.io/
An open source Operating System for the Internet of Things • Supported microcontrollers: ESP32, ESP8266, STM32, TI CC3200 • Code in C or JavaScript • Amazon AWS IoT and Google IoT integrated https://mongoose-os.com/
References • C/C++ - http://arduino.cc • MicroPython – http://micropython.org • JavaScript - https://cylonjs.com/ • Java - http://pi4j.com/ • Go – https://gobot.io/ • Ruby - http://artoo.io/