SlideShare a Scribd company logo
1 of 69
Using Arduino and Raspberry Pi 
for Internet of Things 
Sudar Muthu (@sudarmuthu) 
http://hardwarefun.com/ 
http://github.com/sudar
Who am I? 
 Research Engineer by profession 
 I build robots as a hobby 
 Playing with Arduino for more than 4 years 
 Blogger about Arduino at http://hardwarefun.com 
 Moderator for Arduino India forum 
http://hardwarefun.com 2
Objective 
 Introduce Arduino 
 Introduce Raspberry Pi 
 Emphasis on IoT 
 See how both can be used for IoT 
http://hardwarefun.com 3
Arduino 
http://hardwarefun.com 4
What is Arduino? 
 Visual Basic for hardware 
 Includes both Hardware and software 
http://hardwarefun.com 5 
Photo credit Arduino team
Different Arduino types 
 Arduino Uno (The one I am going to use today) 
 Arduino Mega 
 Arduino Due 
 Lillypad 
 Arduino BT 
 Arduino Ethernet 
 .. and clones 
http://hardwarefun.com 6
Getting to know the Arduino 
http://hardwarefun.com 7
Specs (Uno, Leonardo) 
Type Value 
Microcontroller ATmega328 
Operating Voltage 5v 
Digital I/O Pins 14 (of which 6 provide PWM output) 
Analog Input Pins 6 
Flash Memory 32 KB (ATmega328) of which 0.5 KB used 
by bootloader 
SRAM 2 KB (ATmega328) 
EEPROM 1 KB (ATmega328) 
Clock Speed 16 MHz 
http://hardwarefun.com 8
Identify these components in 
 Microcontroller 
 Power jacket 
 USB jacket 
 Digital pins 
 Analog pins 
 Reset button 
Arduino 
http://hardwarefun.com 9
Identify these components in 
Arduino 
 Voltage Regulator 
 Power Pins (how many are there?) 
 Ground Pins (how many are there?) 
 Vin Pin 
 Rx and Tx Pins 
 ICSP Headers 
http://hardwarefun.com 10
Identify these components in 
 Power Led 
 Rx and Tx Led’s 
 Test Led 
 Crystal 
 Anything else? 
Arduino 
http://hardwarefun.com 11
Powering up Arduino 
http://hardwarefun.com 12
Different ways to power up Arduino 
 Using USB cable 
 Using DC power jacket 
 Giving voltage directly into Vin pin 
 Giving regulated voltage directly into 5V pin 
http://hardwarefun.com 13
Setting up Arduino 
http://hardwarefun.com 14
Testing the setup with a “Hello 
World” program 
http://hardwarefun.com 15
Blinking LED 
http://hardwarefun.com 16
Making a LED blink 
 Insert a LED in pin 13 
 Open File->Examples->Basics->Blink 
 Select Tools->Boards->Arduino Uno 
 Select File->Upload (or press ctrl+u) 
 You should get the message “Done upload” 
 Your Led should blink 
 Congrats you can program Arduino now  
http://hardwarefun.com 17
People with electronics background 
Did I miss anything? 
http://hardwarefun.com 18
People with electronics background 
Did I miss anything? 
Hint: Ohm’s Law 
http://hardwarefun.com 19
Anatomy of an Arduino sketch 
http://hardwarefun.com 20
Printing values through Serial 
 Uno has one UART hardware port, using which we 
can exchange information with computer 
 Very useful for debugging 
 Works at a specified baud rate 
 Use Serial Monitor to read values 
 SoftwareSerial is also available 
http://hardwarefun.com 21
Breadboard Basics 
http://hardwarefun.com 22
How to use a breadboard 
 The first two and the last two rows are connected 
 In all the other rows, columns are connected 
 Connect the first and last row to power 
 Connect the second and second last row to ground 
http://hardwarefun.com 23
Digital Input and Output 
http://hardwarefun.com 24
Digital Input 
http://hardwarefun.com 25
Digital Output 
The LED blink that we did at “setting up Arduino” is 
Digital output 
http://hardwarefun.com 26
Analog Input 
http://hardwarefun.com 27
Reading Analog values from sensors 
 Connect the LDR on pin A0 and Gnd 
 LDR’s resistance varies based on the amount of light 
present 
 Read the current value using analogRead() 
 Print the value in Serial Monitor 
http://hardwarefun.com 28
Control an LED based on light 
void setup(){ 
pinMode(13, OUTPUT); 
} 
void loop(){ 
int val = analogRead(A0); 
if (val > 50) { 
digitalWrite(13, HIGH); 
} else { 
digitalWrite(13, LOW); 
} 
} 
http://hardwarefun.com 29
Analog Output 
http://hardwarefun.com 30
Analog Output 
 What is PWM? 
 Analog like behavior using digital output 
 Works by switching the LED on and off regularly 
 Changing the brightness of a Led 
http://hardwarefun.com 31
This is just the tip of an 
iceberg 
http://hardwarefun.com 32 
There are tons of other 
features to Arduino which I 
have not talked about
Internet of Things 
http://hardwarefun.com 33
http://hardwarefun.com 34 
"Internet of Things" by Wilgengebroed on Flickr
LoT is an overloaded term 
But I like this definition… 
“The Internet of Things is the interconnection of 
uniquely identifiable embedded computing devices 
within the existing Internet infrastructure” 
http://hardwarefun.com 35
Connecting Arduino to Internet 
 Ethernet Shield 
 WIFI Shield 
 3G Shield 
 Using another intermediate component 
http://hardwarefun.com 36
Demo of network connectivity 
using Arduino 
http://hardwarefun.com 37
Let’s take a break  
http://hardwarefun.com 38
Raspberry Pi
Credit Card Sized 
Computer 
http://hardwarefun.com 40
GPIO Pins 
http://hardwarefun.com 41 http://learn.adafruit.com/assets/3052
Setup Python 
sudo apt-get install python-dev 
sudo apt-get install python-rpi.gpio 
http://hardwarefun.com 42
Set the status of GPIO Pins 
https://github.com/sudar/r http://hardwarefun.com asp4b3erry-pi-sketches/blob/master/led-blink/led-blink.py
Set the status of GPIO Pins 
import RPi.GPIO as GPIO 
import time 
GPIO.setmode(GPIO.BOARD) 
GPIO.setup(12, GPIO.OUT) 
try: 
while True: 
GPIO.output(12, GPIO.HIGH) 
time.sleep(1) 
GPIO.output(12, GPIO.LOW) 
time.sleep(1) 
finally: 
GPIO.cleanup() 
https://github.com/sudar/raspberry-http://hardwarefun.com 44 pi-sketches/blob/master/led-blink/led-blink.py
Demo 
Let there be Light 
https://github.com/sudar/r http://hardwarefun.com 45aspberry-pi-sketches/blob/master/led-blink/led-blink.py
Changing the brightness of the LED 
import RPi.GPIO as GPIO 
import time 
GPIO.setmode(GPIO.BOARD) 
GPIO.setup(12, GPIO.OUT) 
p = GPIO.PWM(12, 50) # channel=12 frequency=50Hz 
p.start(0) 
try: 
while True: 
for dc in range(0, 101, 5): 
p.ChangeDutyCycle(dc) 
time.sleep(0.1) 
for dc in range(100, -1, -5): 
p.ChangeDutyCycle(dc) 
time.sleep(0.1) 
finally: 
p.stop() 
GPIO.cleanup() 
http://hardwarefun.com 46 
https://github.com/sudar/raspberry-pi-sketches/blob/master/led-blink/pwm.py
Demo 
Can you see the brightness changing? 
https://github.com/sudar/raspberry-http://hardwarefun.com 47 pi-sketches/blob/master/led-blink/pwm.py
Reading the status of the Pin 
import RPi.GPIO as GPIO 
import time 
GPIO.setmode(GPIO.BOARD) 
GPIO.setup(11, GPIO.IN, pull_up_down=GPIO.PUD_DOWN) 
try: 
while True: 
if GPIO.input(11): 
print "Button is on" 
else: 
print "Button is off" 
time.sleep(0.1) 
finally: 
GPIO.cleanup() 
http://hardwarefun.com 48 
https://github.com/sudar/raspberry-pi-sketches/blob/master/button-input/button-input.py
Reading the status of the Pin 
http://hardwarefun.com 49 
https://github.com/sudar/raspberry-pi-sketches/blob/master/button-input/button-input.py
Demo 
What happens when the button is pressed? 
http://hardwarefun.com 50 
https://github.com/sudar/raspberry-pi-sketches/blob/master/button-input/button-input.py
Combining Input and Output 
import RPi.GPIO as GPIO 
import time 
GPIO.setmode(GPIO.BOARD) 
GPIO.setup(11, GPIO.IN, pull_up_down=GPIO.PUD_DOWN) 
GPIO.setup(12, GPIO.OUT) 
try: 
while True: 
if GPIO.input(11): 
print "Button is on" 
GPIO.output(12, 1) 
else: 
GPIO.output(12, 0) 
time.sleep(0.1) 
finally: 
GPIO.cleanup() 
http://hardwarefun.com 51 
https://github.com/sudar/raspberry-pi-sketches/blob/master/button-and-led/button-and-led.py
Combining Input and Output 
http://hardwarefun.com 52 
https://github.com/sudar/raspberry-pi-sketches/blob/master/button-and-led/button-and-led.py
Demo 
Let’s control the LED by pressing the button 
http://hardwarefun.com 53 
https://github.com/sudar/raspberry-pi-sketches/blob/master/button-and-led/button-and-led.py
What more can be done? 
http://hardwarefun.com 54
More protocols 
 I2C 
 SPI 
 Serial 
http://hardwarefun.com 55
Interacting with webcam 
 “PyGame” provides easy interface 
 Can get fancy using “opencv” 
 Both USB and GPIO interface are supported 
http://hardwarefun.com 56
Distributed Computing 
 Each Pi can be used as cheap node 
 Form grids using a cluster of Pi’s 
 Can share CPU, memory and disk space 
http://www.cl.cam.ac.uk/projects/raspberrypi/tutorials/ 
distributed-computing/ 
http://hardwarefun.com 57
Limitations 
 No built-in Analog to Digital support 
 Can’t run Inductive load (motors) 
 Is not real-time (CPU might be busy) 
 No “safe circuits” present 
 Operates at 3.3V and is not directly compatible with 
Arduino voltage 
http://hardwarefun.com 58
Arduino vs Raspberry Pi 
for IoT 
http://hardwarefun.com 59
Advantages of Raspberry Pi 
 Entire Linux software stack is available 
 It is very easy to connect to internet 
 Can be programmed using variety of programming 
languages 
http://hardwarefun.com 60
Disadvantage of Raspberry Pi 
 Accessing hardware is not real-time. If the CPU is 
busy, then interfacing with hardware can be delayed 
 No built-in Analog to Digital converter available 
 Does not have enough power to drive inductive loads 
 The hardware design is not open source. Even though 
it is not a big deal, for some people it might a deal 
breaker 
http://hardwarefun.com 61
Advantages of Arduino 
 Very easy to get started 
 Very easy to extend it and has tons of user 
contributed shields and libraries. Shields are available 
to do pretty much anything 
 Can be used to for real-time applications 
 Everything (both hardware, software and IDE) are 
open source 
 Not much programming knowledge needed to do 
basic stuff 
http://hardwarefun.com 62
Disadvantages of Arduino 
 Not very powerful when compared with Raspberry Pi 
(Micro processor vs Micro controller) 
 You need to program using either Arduino or C/C++ 
(or assembly if you really want to) 
 Connecting to internet is slightly difficult (you have 
shields and libraries, but is not straight forward), but 
not impossible. 
http://hardwarefun.com 63
In Short.. 
Feature Raspberry Pi Arduino 
Processor Speed 700 MHz 16 MHz 
Programming Language No limit Arduino, C/C++ 
Real-time Hardware No real-time In real-time 
Analog to Digital Convertor No Yes 
Hardware Design Closed source Open source 
Internet Connection Very easy Not easy, but doable 
http://hardwarefun.com 64
My Solution? 
http://hardwarefun.com 65
Use both together  
Best of both worlds 
http://hardwarefun.com 66 
http://learn.adafruit.com/assets/3199 http://learn.adafruit.com/assets/2123
Links 
 Source code - https://github.com/sudar/raspberry-pi-sketches/ 
 My blog - http://hardwarefun.com 
 Python GPIO - https://code.google.com/p/raspberry-gpio- 
python/ 
 Distributed computing using Pi - 
http://www.cl.cam.ac.uk/projects/raspberrypi/tutorial 
s/distributed-computing/ 
http://hardwarefun.com 67
Links 
 Arduino – http://arduino.cc 
 Asimi – A simple bot using Arduino 
http://hardwarefun.com/project/asimi 
 Getting started with hardware programming 
http://hardwarefun.com/tutorials/getting-started-with-hardware- 
programming 
 Getting started with Arduino 
http://hardwarefun.com/tutorials/getting-started-with-arduino- 
and-avr 
http://hardwarefun.com 68
Questions 
Thank You 
Sudar Muthu (@sudarmuthu) 
http://hardwarefun.com/ 
https://github.com/sudar/arduino-robotics-workshop 
https://github.com/sudar/raspberry-pi-sketches 
http://hardwarefun.com 69

More Related Content

What's hot

My presentation raspberry pi
My presentation raspberry piMy presentation raspberry pi
My presentation raspberry piHusainBhaldar21
 
arduino-ppt
 arduino-ppt arduino-ppt
arduino-pptjhcid
 
Introduction to Raspberrypi
Introduction to  RaspberrypiIntroduction to  Raspberrypi
Introduction to RaspberrypiIheb Ben Salem
 
ESP32 IoT presentation @ dev.bg
ESP32 IoT presentation @ dev.bgESP32 IoT presentation @ dev.bg
ESP32 IoT presentation @ dev.bgMartin Harizanov
 
Getting Started with Raspberry Pi and Arduino
Getting Started with Raspberry Pi and ArduinoGetting Started with Raspberry Pi and Arduino
Getting Started with Raspberry Pi and ArduinoChad Mairn
 
Nodemcu - introduction
Nodemcu - introductionNodemcu - introduction
Nodemcu - introductionMichal Sedlak
 
Introduction To Raspberry Pi with Simple GPIO pin Control
Introduction To Raspberry Pi with Simple GPIO pin ControlIntroduction To Raspberry Pi with Simple GPIO pin Control
Introduction To Raspberry Pi with Simple GPIO pin ControlPradip Bhandari
 
Internet of Things - Lecture 1 - Introduction
Internet of Things - Lecture 1 - IntroductionInternet of Things - Lecture 1 - Introduction
Internet of Things - Lecture 1 - IntroductionAlexandru Radovici
 
Raspberry Pi Session - 22_11_2014
Raspberry Pi Session - 22_11_2014Raspberry Pi Session - 22_11_2014
Raspberry Pi Session - 22_11_2014Mandeesh Singh
 
Introduction to Arduino Hardware and Programming
Introduction to Arduino Hardware and ProgrammingIntroduction to Arduino Hardware and Programming
Introduction to Arduino Hardware and ProgrammingEmmanuel Obot
 
Introduction to Arduino
Introduction to ArduinoIntroduction to Arduino
Introduction to ArduinoOmer Kilic
 

What's hot (20)

My presentation raspberry pi
My presentation raspberry piMy presentation raspberry pi
My presentation raspberry pi
 
arduino-ppt
 arduino-ppt arduino-ppt
arduino-ppt
 
Raspberry PI
Raspberry PIRaspberry PI
Raspberry PI
 
Raspberry pi
Raspberry pi Raspberry pi
Raspberry pi
 
Introduction to Raspberrypi
Introduction to  RaspberrypiIntroduction to  Raspberrypi
Introduction to Raspberrypi
 
Introduction to Raspberry PI
Introduction to Raspberry PIIntroduction to Raspberry PI
Introduction to Raspberry PI
 
Raspberry Pi
Raspberry Pi Raspberry Pi
Raspberry Pi
 
ESP32 IoT presentation @ dev.bg
ESP32 IoT presentation @ dev.bgESP32 IoT presentation @ dev.bg
ESP32 IoT presentation @ dev.bg
 
Getting Started with Raspberry Pi and Arduino
Getting Started with Raspberry Pi and ArduinoGetting Started with Raspberry Pi and Arduino
Getting Started with Raspberry Pi and Arduino
 
Rasp berry Pi
Rasp berry PiRasp berry Pi
Rasp berry Pi
 
Nodemcu - introduction
Nodemcu - introductionNodemcu - introduction
Nodemcu - introduction
 
Raspberry pi 3
Raspberry pi 3Raspberry pi 3
Raspberry pi 3
 
Introduction To Raspberry Pi with Simple GPIO pin Control
Introduction To Raspberry Pi with Simple GPIO pin ControlIntroduction To Raspberry Pi with Simple GPIO pin Control
Introduction To Raspberry Pi with Simple GPIO pin Control
 
Internet of Things - Lecture 1 - Introduction
Internet of Things - Lecture 1 - IntroductionInternet of Things - Lecture 1 - Introduction
Internet of Things - Lecture 1 - Introduction
 
Iot lab manual new
Iot lab manual newIot lab manual new
Iot lab manual new
 
Introduction to Arduino
Introduction to ArduinoIntroduction to Arduino
Introduction to Arduino
 
Arduino vs Raspberry Pi
Arduino vs Raspberry PiArduino vs Raspberry Pi
Arduino vs Raspberry Pi
 
Raspberry Pi Session - 22_11_2014
Raspberry Pi Session - 22_11_2014Raspberry Pi Session - 22_11_2014
Raspberry Pi Session - 22_11_2014
 
Introduction to Arduino Hardware and Programming
Introduction to Arduino Hardware and ProgrammingIntroduction to Arduino Hardware and Programming
Introduction to Arduino Hardware and Programming
 
Introduction to Arduino
Introduction to ArduinoIntroduction to Arduino
Introduction to Arduino
 

Similar to Using Arduino and Raspberry Pi for IoT Projects

Arduino Robotics workshop Day1
Arduino Robotics workshop Day1Arduino Robotics workshop Day1
Arduino Robotics workshop Day1Sudar Muthu
 
Intro to arduino
Intro to arduinoIntro to arduino
Intro to arduinoJosé Faria
 
What are the different types of arduino boards
What are the different types of arduino boardsWhat are the different types of arduino boards
What are the different types of arduino boardselprocus
 
Getting started with Intel IoT Developer Kit
Getting started with Intel IoT Developer KitGetting started with Intel IoT Developer Kit
Getting started with Intel IoT Developer KitSulamita Garcia
 
Microcontroller arduino uno board
Microcontroller arduino uno boardMicrocontroller arduino uno board
Microcontroller arduino uno boardGaurav
 
Arduino-Workshop-4.pptx
Arduino-Workshop-4.pptxArduino-Workshop-4.pptx
Arduino-Workshop-4.pptxHebaEng
 
pcDuino Presentation at SparkFun
pcDuino Presentation at SparkFunpcDuino Presentation at SparkFun
pcDuino Presentation at SparkFunJingfeng Liu
 
Lab Handson: Power your Creations with Intel Edison!
Lab Handson: Power your Creations with Intel Edison!Lab Handson: Power your Creations with Intel Edison!
Lab Handson: Power your Creations with Intel Edison!Codemotion
 
A BEGINNER’S JOURNEY INTO THE WORLD OF HARDWARE HACKING
A BEGINNER’S JOURNEY INTO THE WORLD OF HARDWARE HACKINGA BEGINNER’S JOURNEY INTO THE WORLD OF HARDWARE HACKING
A BEGINNER’S JOURNEY INTO THE WORLD OF HARDWARE HACKINGSilvio Cesare
 
Advanced View Arduino Projects List - Use Arduino for Projects {4}.pdf
Advanced View Arduino Projects List - Use Arduino for Projects {4}.pdfAdvanced View Arduino Projects List - Use Arduino for Projects {4}.pdf
Advanced View Arduino Projects List - Use Arduino for Projects {4}.pdfIsmailkhan77481
 
Advanced View of Atmega Microcontroller Projects List - ATMega32 AVR.pdf
Advanced View of Atmega Microcontroller Projects List - ATMega32 AVR.pdfAdvanced View of Atmega Microcontroller Projects List - ATMega32 AVR.pdf
Advanced View of Atmega Microcontroller Projects List - ATMega32 AVR.pdfWiseNaeem
 
Getting started with arduino workshop
Getting started with arduino workshopGetting started with arduino workshop
Getting started with arduino workshopSudar Muthu
 
Advanced View of Atmega Microcontroller Projects List - ATMega32 AVR.pdf
Advanced View of Atmega Microcontroller Projects List - ATMega32 AVR.pdfAdvanced View of Atmega Microcontroller Projects List - ATMega32 AVR.pdf
Advanced View of Atmega Microcontroller Projects List - ATMega32 AVR.pdfWiseNaeem
 
IoT with openHAB on pcDuino3B
IoT with openHAB on pcDuino3BIoT with openHAB on pcDuino3B
IoT with openHAB on pcDuino3BJingfeng Liu
 
Controlling robots using javascript
Controlling robots using javascriptControlling robots using javascript
Controlling robots using javascriptSudar Muthu
 
Arduino - Learning.pdf
Arduino - Learning.pdfArduino - Learning.pdf
Arduino - Learning.pdfKhalilSedki1
 
Advanced View Arduino Projects List - Use Arduino for Projects 4.pdf
Advanced View Arduino Projects List - Use Arduino for Projects 4.pdfAdvanced View Arduino Projects List - Use Arduino for Projects 4.pdf
Advanced View Arduino Projects List - Use Arduino for Projects 4.pdfWiseNaeem
 

Similar to Using Arduino and Raspberry Pi for IoT Projects (20)

Arduino Robotics workshop Day1
Arduino Robotics workshop Day1Arduino Robotics workshop Day1
Arduino Robotics workshop Day1
 
What is Arduino ?
What is Arduino ?What is Arduino ?
What is Arduino ?
 
Intro to arduino
Intro to arduinoIntro to arduino
Intro to arduino
 
What are the different types of arduino boards
What are the different types of arduino boardsWhat are the different types of arduino boards
What are the different types of arduino boards
 
Arduino
ArduinoArduino
Arduino
 
Getting started with Intel IoT Developer Kit
Getting started with Intel IoT Developer KitGetting started with Intel IoT Developer Kit
Getting started with Intel IoT Developer Kit
 
Microcontroller arduino uno board
Microcontroller arduino uno boardMicrocontroller arduino uno board
Microcontroller arduino uno board
 
Arduino-Workshop-4.pptx
Arduino-Workshop-4.pptxArduino-Workshop-4.pptx
Arduino-Workshop-4.pptx
 
Arduino-Workshop-4.pptx
Arduino-Workshop-4.pptxArduino-Workshop-4.pptx
Arduino-Workshop-4.pptx
 
pcDuino Presentation at SparkFun
pcDuino Presentation at SparkFunpcDuino Presentation at SparkFun
pcDuino Presentation at SparkFun
 
Lab Handson: Power your Creations with Intel Edison!
Lab Handson: Power your Creations with Intel Edison!Lab Handson: Power your Creations with Intel Edison!
Lab Handson: Power your Creations with Intel Edison!
 
A BEGINNER’S JOURNEY INTO THE WORLD OF HARDWARE HACKING
A BEGINNER’S JOURNEY INTO THE WORLD OF HARDWARE HACKINGA BEGINNER’S JOURNEY INTO THE WORLD OF HARDWARE HACKING
A BEGINNER’S JOURNEY INTO THE WORLD OF HARDWARE HACKING
 
Advanced View Arduino Projects List - Use Arduino for Projects {4}.pdf
Advanced View Arduino Projects List - Use Arduino for Projects {4}.pdfAdvanced View Arduino Projects List - Use Arduino for Projects {4}.pdf
Advanced View Arduino Projects List - Use Arduino for Projects {4}.pdf
 
Advanced View of Atmega Microcontroller Projects List - ATMega32 AVR.pdf
Advanced View of Atmega Microcontroller Projects List - ATMega32 AVR.pdfAdvanced View of Atmega Microcontroller Projects List - ATMega32 AVR.pdf
Advanced View of Atmega Microcontroller Projects List - ATMega32 AVR.pdf
 
Getting started with arduino workshop
Getting started with arduino workshopGetting started with arduino workshop
Getting started with arduino workshop
 
Advanced View of Atmega Microcontroller Projects List - ATMega32 AVR.pdf
Advanced View of Atmega Microcontroller Projects List - ATMega32 AVR.pdfAdvanced View of Atmega Microcontroller Projects List - ATMega32 AVR.pdf
Advanced View of Atmega Microcontroller Projects List - ATMega32 AVR.pdf
 
IoT with openHAB on pcDuino3B
IoT with openHAB on pcDuino3BIoT with openHAB on pcDuino3B
IoT with openHAB on pcDuino3B
 
Controlling robots using javascript
Controlling robots using javascriptControlling robots using javascript
Controlling robots using javascript
 
Arduino - Learning.pdf
Arduino - Learning.pdfArduino - Learning.pdf
Arduino - Learning.pdf
 
Advanced View Arduino Projects List - Use Arduino for Projects 4.pdf
Advanced View Arduino Projects List - Use Arduino for Projects 4.pdfAdvanced View Arduino Projects List - Use Arduino for Projects 4.pdf
Advanced View Arduino Projects List - Use Arduino for Projects 4.pdf
 

More from Sudar Muthu

A quick preview of WP CLI - Chennai WordPress Meetup
A quick preview of WP CLI - Chennai WordPress MeetupA quick preview of WP CLI - Chennai WordPress Meetup
A quick preview of WP CLI - Chennai WordPress MeetupSudar Muthu
 
WordPress Developer tools
WordPress Developer toolsWordPress Developer tools
WordPress Developer toolsSudar Muthu
 
WordPress Developer Tools to increase productivity
WordPress Developer Tools to increase productivityWordPress Developer Tools to increase productivity
WordPress Developer Tools to increase productivitySudar Muthu
 
Unit testing for WordPress
Unit testing for WordPressUnit testing for WordPress
Unit testing for WordPressSudar Muthu
 
Unit testing in php
Unit testing in phpUnit testing in php
Unit testing in phpSudar Muthu
 
How arduino helped me in life
How arduino helped me in lifeHow arduino helped me in life
How arduino helped me in lifeSudar Muthu
 
Having fun with hardware
Having fun with hardwareHaving fun with hardware
Having fun with hardwareSudar Muthu
 
Python in raspberry pi
Python in raspberry piPython in raspberry pi
Python in raspberry piSudar Muthu
 
Hack 101 at IIT Kanpur
Hack 101 at IIT KanpurHack 101 at IIT Kanpur
Hack 101 at IIT KanpurSudar Muthu
 
PureCSS open hack 2013
PureCSS open hack 2013PureCSS open hack 2013
PureCSS open hack 2013Sudar Muthu
 
Arduino Robotics workshop day2
Arduino Robotics workshop day2Arduino Robotics workshop day2
Arduino Robotics workshop day2Sudar Muthu
 
Hands on Hadoop and pig
Hands on Hadoop and pigHands on Hadoop and pig
Hands on Hadoop and pigSudar Muthu
 
Lets make robots
Lets make robotsLets make robots
Lets make robotsSudar Muthu
 
Capabilities of Arduino (including Due)
Capabilities of Arduino (including Due)Capabilities of Arduino (including Due)
Capabilities of Arduino (including Due)Sudar Muthu
 
Picture perfect hacks with flickr API
Picture perfect hacks with flickr APIPicture perfect hacks with flickr API
Picture perfect hacks with flickr APISudar Muthu
 
Capabilities of Arduino
Capabilities of ArduinoCapabilities of Arduino
Capabilities of ArduinoSudar Muthu
 
Introduction to node.js GDD
Introduction to node.js GDDIntroduction to node.js GDD
Introduction to node.js GDDSudar Muthu
 
Using Javascript in today's world
Using Javascript in today's worldUsing Javascript in today's world
Using Javascript in today's worldSudar Muthu
 

More from Sudar Muthu (20)

A quick preview of WP CLI - Chennai WordPress Meetup
A quick preview of WP CLI - Chennai WordPress MeetupA quick preview of WP CLI - Chennai WordPress Meetup
A quick preview of WP CLI - Chennai WordPress Meetup
 
WordPress Developer tools
WordPress Developer toolsWordPress Developer tools
WordPress Developer tools
 
WordPress Developer Tools to increase productivity
WordPress Developer Tools to increase productivityWordPress Developer Tools to increase productivity
WordPress Developer Tools to increase productivity
 
Unit testing for WordPress
Unit testing for WordPressUnit testing for WordPress
Unit testing for WordPress
 
Unit testing in php
Unit testing in phpUnit testing in php
Unit testing in php
 
How arduino helped me in life
How arduino helped me in lifeHow arduino helped me in life
How arduino helped me in life
 
Having fun with hardware
Having fun with hardwareHaving fun with hardware
Having fun with hardware
 
Python in raspberry pi
Python in raspberry piPython in raspberry pi
Python in raspberry pi
 
Hack 101 at IIT Kanpur
Hack 101 at IIT KanpurHack 101 at IIT Kanpur
Hack 101 at IIT Kanpur
 
PureCSS open hack 2013
PureCSS open hack 2013PureCSS open hack 2013
PureCSS open hack 2013
 
Pig workshop
Pig workshopPig workshop
Pig workshop
 
Arduino Robotics workshop day2
Arduino Robotics workshop day2Arduino Robotics workshop day2
Arduino Robotics workshop day2
 
Hands on Hadoop and pig
Hands on Hadoop and pigHands on Hadoop and pig
Hands on Hadoop and pig
 
Lets make robots
Lets make robotsLets make robots
Lets make robots
 
Capabilities of Arduino (including Due)
Capabilities of Arduino (including Due)Capabilities of Arduino (including Due)
Capabilities of Arduino (including Due)
 
Picture perfect hacks with flickr API
Picture perfect hacks with flickr APIPicture perfect hacks with flickr API
Picture perfect hacks with flickr API
 
Hacking 101
Hacking 101Hacking 101
Hacking 101
 
Capabilities of Arduino
Capabilities of ArduinoCapabilities of Arduino
Capabilities of Arduino
 
Introduction to node.js GDD
Introduction to node.js GDDIntroduction to node.js GDD
Introduction to node.js GDD
 
Using Javascript in today's world
Using Javascript in today's worldUsing Javascript in today's world
Using Javascript in today's world
 

Recently uploaded

Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfjimielynbastida
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentationphoebematthew05
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 

Recently uploaded (20)

Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdf
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentation
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 

Using Arduino and Raspberry Pi for IoT Projects

  • 1. Using Arduino and Raspberry Pi for Internet of Things Sudar Muthu (@sudarmuthu) http://hardwarefun.com/ http://github.com/sudar
  • 2. Who am I?  Research Engineer by profession  I build robots as a hobby  Playing with Arduino for more than 4 years  Blogger about Arduino at http://hardwarefun.com  Moderator for Arduino India forum http://hardwarefun.com 2
  • 3. Objective  Introduce Arduino  Introduce Raspberry Pi  Emphasis on IoT  See how both can be used for IoT http://hardwarefun.com 3
  • 5. What is Arduino?  Visual Basic for hardware  Includes both Hardware and software http://hardwarefun.com 5 Photo credit Arduino team
  • 6. Different Arduino types  Arduino Uno (The one I am going to use today)  Arduino Mega  Arduino Due  Lillypad  Arduino BT  Arduino Ethernet  .. and clones http://hardwarefun.com 6
  • 7. Getting to know the Arduino http://hardwarefun.com 7
  • 8. Specs (Uno, Leonardo) Type Value Microcontroller ATmega328 Operating Voltage 5v Digital I/O Pins 14 (of which 6 provide PWM output) Analog Input Pins 6 Flash Memory 32 KB (ATmega328) of which 0.5 KB used by bootloader SRAM 2 KB (ATmega328) EEPROM 1 KB (ATmega328) Clock Speed 16 MHz http://hardwarefun.com 8
  • 9. Identify these components in  Microcontroller  Power jacket  USB jacket  Digital pins  Analog pins  Reset button Arduino http://hardwarefun.com 9
  • 10. Identify these components in Arduino  Voltage Regulator  Power Pins (how many are there?)  Ground Pins (how many are there?)  Vin Pin  Rx and Tx Pins  ICSP Headers http://hardwarefun.com 10
  • 11. Identify these components in  Power Led  Rx and Tx Led’s  Test Led  Crystal  Anything else? Arduino http://hardwarefun.com 11
  • 12. Powering up Arduino http://hardwarefun.com 12
  • 13. Different ways to power up Arduino  Using USB cable  Using DC power jacket  Giving voltage directly into Vin pin  Giving regulated voltage directly into 5V pin http://hardwarefun.com 13
  • 14. Setting up Arduino http://hardwarefun.com 14
  • 15. Testing the setup with a “Hello World” program http://hardwarefun.com 15
  • 17. Making a LED blink  Insert a LED in pin 13  Open File->Examples->Basics->Blink  Select Tools->Boards->Arduino Uno  Select File->Upload (or press ctrl+u)  You should get the message “Done upload”  Your Led should blink  Congrats you can program Arduino now  http://hardwarefun.com 17
  • 18. People with electronics background Did I miss anything? http://hardwarefun.com 18
  • 19. People with electronics background Did I miss anything? Hint: Ohm’s Law http://hardwarefun.com 19
  • 20. Anatomy of an Arduino sketch http://hardwarefun.com 20
  • 21. Printing values through Serial  Uno has one UART hardware port, using which we can exchange information with computer  Very useful for debugging  Works at a specified baud rate  Use Serial Monitor to read values  SoftwareSerial is also available http://hardwarefun.com 21
  • 23. How to use a breadboard  The first two and the last two rows are connected  In all the other rows, columns are connected  Connect the first and last row to power  Connect the second and second last row to ground http://hardwarefun.com 23
  • 24. Digital Input and Output http://hardwarefun.com 24
  • 26. Digital Output The LED blink that we did at “setting up Arduino” is Digital output http://hardwarefun.com 26
  • 28. Reading Analog values from sensors  Connect the LDR on pin A0 and Gnd  LDR’s resistance varies based on the amount of light present  Read the current value using analogRead()  Print the value in Serial Monitor http://hardwarefun.com 28
  • 29. Control an LED based on light void setup(){ pinMode(13, OUTPUT); } void loop(){ int val = analogRead(A0); if (val > 50) { digitalWrite(13, HIGH); } else { digitalWrite(13, LOW); } } http://hardwarefun.com 29
  • 31. Analog Output  What is PWM?  Analog like behavior using digital output  Works by switching the LED on and off regularly  Changing the brightness of a Led http://hardwarefun.com 31
  • 32. This is just the tip of an iceberg http://hardwarefun.com 32 There are tons of other features to Arduino which I have not talked about
  • 33. Internet of Things http://hardwarefun.com 33
  • 34. http://hardwarefun.com 34 "Internet of Things" by Wilgengebroed on Flickr
  • 35. LoT is an overloaded term But I like this definition… “The Internet of Things is the interconnection of uniquely identifiable embedded computing devices within the existing Internet infrastructure” http://hardwarefun.com 35
  • 36. Connecting Arduino to Internet  Ethernet Shield  WIFI Shield  3G Shield  Using another intermediate component http://hardwarefun.com 36
  • 37. Demo of network connectivity using Arduino http://hardwarefun.com 37
  • 38. Let’s take a break  http://hardwarefun.com 38
  • 40. Credit Card Sized Computer http://hardwarefun.com 40
  • 41. GPIO Pins http://hardwarefun.com 41 http://learn.adafruit.com/assets/3052
  • 42. Setup Python sudo apt-get install python-dev sudo apt-get install python-rpi.gpio http://hardwarefun.com 42
  • 43. Set the status of GPIO Pins https://github.com/sudar/r http://hardwarefun.com asp4b3erry-pi-sketches/blob/master/led-blink/led-blink.py
  • 44. Set the status of GPIO Pins import RPi.GPIO as GPIO import time GPIO.setmode(GPIO.BOARD) GPIO.setup(12, GPIO.OUT) try: while True: GPIO.output(12, GPIO.HIGH) time.sleep(1) GPIO.output(12, GPIO.LOW) time.sleep(1) finally: GPIO.cleanup() https://github.com/sudar/raspberry-http://hardwarefun.com 44 pi-sketches/blob/master/led-blink/led-blink.py
  • 45. Demo Let there be Light https://github.com/sudar/r http://hardwarefun.com 45aspberry-pi-sketches/blob/master/led-blink/led-blink.py
  • 46. Changing the brightness of the LED import RPi.GPIO as GPIO import time GPIO.setmode(GPIO.BOARD) GPIO.setup(12, GPIO.OUT) p = GPIO.PWM(12, 50) # channel=12 frequency=50Hz p.start(0) try: while True: for dc in range(0, 101, 5): p.ChangeDutyCycle(dc) time.sleep(0.1) for dc in range(100, -1, -5): p.ChangeDutyCycle(dc) time.sleep(0.1) finally: p.stop() GPIO.cleanup() http://hardwarefun.com 46 https://github.com/sudar/raspberry-pi-sketches/blob/master/led-blink/pwm.py
  • 47. Demo Can you see the brightness changing? https://github.com/sudar/raspberry-http://hardwarefun.com 47 pi-sketches/blob/master/led-blink/pwm.py
  • 48. Reading the status of the Pin import RPi.GPIO as GPIO import time GPIO.setmode(GPIO.BOARD) GPIO.setup(11, GPIO.IN, pull_up_down=GPIO.PUD_DOWN) try: while True: if GPIO.input(11): print "Button is on" else: print "Button is off" time.sleep(0.1) finally: GPIO.cleanup() http://hardwarefun.com 48 https://github.com/sudar/raspberry-pi-sketches/blob/master/button-input/button-input.py
  • 49. Reading the status of the Pin http://hardwarefun.com 49 https://github.com/sudar/raspberry-pi-sketches/blob/master/button-input/button-input.py
  • 50. Demo What happens when the button is pressed? http://hardwarefun.com 50 https://github.com/sudar/raspberry-pi-sketches/blob/master/button-input/button-input.py
  • 51. Combining Input and Output import RPi.GPIO as GPIO import time GPIO.setmode(GPIO.BOARD) GPIO.setup(11, GPIO.IN, pull_up_down=GPIO.PUD_DOWN) GPIO.setup(12, GPIO.OUT) try: while True: if GPIO.input(11): print "Button is on" GPIO.output(12, 1) else: GPIO.output(12, 0) time.sleep(0.1) finally: GPIO.cleanup() http://hardwarefun.com 51 https://github.com/sudar/raspberry-pi-sketches/blob/master/button-and-led/button-and-led.py
  • 52. Combining Input and Output http://hardwarefun.com 52 https://github.com/sudar/raspberry-pi-sketches/blob/master/button-and-led/button-and-led.py
  • 53. Demo Let’s control the LED by pressing the button http://hardwarefun.com 53 https://github.com/sudar/raspberry-pi-sketches/blob/master/button-and-led/button-and-led.py
  • 54. What more can be done? http://hardwarefun.com 54
  • 55. More protocols  I2C  SPI  Serial http://hardwarefun.com 55
  • 56. Interacting with webcam  “PyGame” provides easy interface  Can get fancy using “opencv”  Both USB and GPIO interface are supported http://hardwarefun.com 56
  • 57. Distributed Computing  Each Pi can be used as cheap node  Form grids using a cluster of Pi’s  Can share CPU, memory and disk space http://www.cl.cam.ac.uk/projects/raspberrypi/tutorials/ distributed-computing/ http://hardwarefun.com 57
  • 58. Limitations  No built-in Analog to Digital support  Can’t run Inductive load (motors)  Is not real-time (CPU might be busy)  No “safe circuits” present  Operates at 3.3V and is not directly compatible with Arduino voltage http://hardwarefun.com 58
  • 59. Arduino vs Raspberry Pi for IoT http://hardwarefun.com 59
  • 60. Advantages of Raspberry Pi  Entire Linux software stack is available  It is very easy to connect to internet  Can be programmed using variety of programming languages http://hardwarefun.com 60
  • 61. Disadvantage of Raspberry Pi  Accessing hardware is not real-time. If the CPU is busy, then interfacing with hardware can be delayed  No built-in Analog to Digital converter available  Does not have enough power to drive inductive loads  The hardware design is not open source. Even though it is not a big deal, for some people it might a deal breaker http://hardwarefun.com 61
  • 62. Advantages of Arduino  Very easy to get started  Very easy to extend it and has tons of user contributed shields and libraries. Shields are available to do pretty much anything  Can be used to for real-time applications  Everything (both hardware, software and IDE) are open source  Not much programming knowledge needed to do basic stuff http://hardwarefun.com 62
  • 63. Disadvantages of Arduino  Not very powerful when compared with Raspberry Pi (Micro processor vs Micro controller)  You need to program using either Arduino or C/C++ (or assembly if you really want to)  Connecting to internet is slightly difficult (you have shields and libraries, but is not straight forward), but not impossible. http://hardwarefun.com 63
  • 64. In Short.. Feature Raspberry Pi Arduino Processor Speed 700 MHz 16 MHz Programming Language No limit Arduino, C/C++ Real-time Hardware No real-time In real-time Analog to Digital Convertor No Yes Hardware Design Closed source Open source Internet Connection Very easy Not easy, but doable http://hardwarefun.com 64
  • 66. Use both together  Best of both worlds http://hardwarefun.com 66 http://learn.adafruit.com/assets/3199 http://learn.adafruit.com/assets/2123
  • 67. Links  Source code - https://github.com/sudar/raspberry-pi-sketches/  My blog - http://hardwarefun.com  Python GPIO - https://code.google.com/p/raspberry-gpio- python/  Distributed computing using Pi - http://www.cl.cam.ac.uk/projects/raspberrypi/tutorial s/distributed-computing/ http://hardwarefun.com 67
  • 68. Links  Arduino – http://arduino.cc  Asimi – A simple bot using Arduino http://hardwarefun.com/project/asimi  Getting started with hardware programming http://hardwarefun.com/tutorials/getting-started-with-hardware- programming  Getting started with Arduino http://hardwarefun.com/tutorials/getting-started-with-arduino- and-avr http://hardwarefun.com 68
  • 69. Questions Thank You Sudar Muthu (@sudarmuthu) http://hardwarefun.com/ https://github.com/sudar/arduino-robotics-workshop https://github.com/sudar/raspberry-pi-sketches http://hardwarefun.com 69

Editor's Notes

  1. "Internet of Things" by Wilgengebroed on Flickr - Cropped and sign removed from Internet of things signed by the author.jpg. Licensed under Creative Commons Attribution 2.0 via Wikimedia Commons - http://commons.wikimedia.org/wiki/File:Internet_of_Things.jpg#mediaviewer/File:Internet_of_Things.jpg