Upload
nick-landry
View
831
Download
4
Embed Size (px)
Citation preview
BUILDING CONNECTED IOT GADGETS WITH
PARTICLE & AZURE
Nick LandrySenior Technical Evangelist - Microsoft
AgeofMobility.comgithub.com/ActiveNick
@ActiveNick
DOWNLOAD THE SLIDES AND DEMOShttp://slideshare.net/ActiveNick
https://github.com/ActiveNick
A G E N D A
• Quick Recap: Internet of Things
• Introducing Particle Devices
• Diving into the Particle Photon
• Connecting IoT devices to Azure
• Demos
• Discussion: Join in!
QUICK RECAP: IOTWhy do we need all these connected gadgets anyways?
B U I L D I N G A B E T T E R M O U S E T R A P
Source: “TEDx Warwick – Andy Stanford-Clark – Innovation Begins at Home”
F U J I T S U C O N N E C T E D C O W
C O N N E C T I O N PAT H S
PeopleMachines(things)
P2PSocial NetworkingEmail, Skype, etc.
P2M
Home automation, Self Tracking, etc.
M2MSmart Grid,
Smart Home, etc…
W I R E L E S S , S W A R M S , A N D C L O U D S
Want to know more? Check out Cisco’s Flavio Bonomi’s “Emerging Trends in Wireless in the Era of IoT”
“ W I T H O U T C O N N E C T I V I T Y , T H E R E ’ S N O I O T . A L L Y O U H A V E I S J U S T ‘ T H I N G S ’ … ”
“ I F T H E R E ’ S N O T A P E , I T ’ S N O T A H A C K . ”
– Nick Landry, 2015
H A R D W A R E C H O I C E S
I S S U E S W I T H P O P U L A R FA V O R I T E S
ARDUINO UNO
• Weak 8-bit microcontroller
• No built-in connectivity
• Cheap ($20), but Wi-Fi Shields cost an extra $15-50
• Arduino Mini/Micro for path to production, but connectivity is harder to add
RASPBERRY PI
• Powerful SoC but more expensive ($30-45)
• Built-in Ethernet, but need to pay $10 extra for Wi-Fi adapter
• More complex environment with Raspbian Linux (though Windows 10 IoT Core helps )
• Difficult path to production with no built-in wireless
E A S Y I O T C O N N E C T I V I T Y W I T HT H E PA R T I C L E P H O T O N
PA R T I C L E( F O R M E R L Y K N O W NA S S P A R K )
A B O U T T H E PA R T I C L E P H O T O N
• STM32F205 ARM Cortex M3 CPU
• Built-in Broadcom BCM43362 Wi-Fi chip
• Fits in a standard breadboard (with headers)
• Surface mountable for machine assembly(without headers or using the module directly)
• Open source hardware, firmware, and serversoftware, includes free cloud connectivity
• http://particle.io
• Cost: $19.00 USD
U P C L O S E W I T H T H E P H O T O N
DEMO Hello World – Particle Photon Edition
P H O T O N P O W E R
The Photon can only be powered by a micro-USB cable from the host PC or micro-USB compatible power source (e.g. outlet, battery pack)
The Photon has 3.3V and 5V (VIN) pins and two GND pins to supply voltages to your project components
The photon can be powered by any power source via the VIN pin between 3.6VDC and 5.5VDC, and lots more with a variety of shields, etc
Source: https://docs.particle.io/datasheets/photon-datasheet/#pin-description
G P I O
• General Purpose Input Output
• Pin that can be controlled by the user
• Can be set to input or output
• Input can be things like temperature sensors, buttons, IR, etc.
• Output can be LEDs, Motors, LCDs etc
P H O T O N D I G I TA L P I N S
Pins 0-7 Are Digital Pins
pinMode(pin,INPUT) sets a pin as an input
pinMode(pin,OUTPUT) sets the pin as output
digitalWrite(pin,LOW) sets the pin to 0v
digitalWrite(pin,HIGH) sets the pin to +3.3V
digitalRead(pin) reads the pin state
Analog A0-A5, DAC & WKP pins can also be used as digital GPIO pins if they aren’t needed for analog use.
Source: https://docs.particle.io/datasheets/photon-datasheet/#pin-description
A N A L O G V S . D I G I TA L
• Computers understand digital signals
• Analog needs to be converted (ADC)
• Analog signals are often useful for sensors that work by adjusting voltage / resistance (temperature sensors, soil moisture sensors, etc)
• Analog input covers voltage levels into a digital value within a defined range
• Digital is counted in fixed units, not measured.
• PWM – Pulse Width Modulation – to “fake”analog
• DAC / DAC1 pins are useful for non PWM readings, microphones, etc. (they don't use PWM)
• Serial Communication with Rx/Tx
P H O T O N A N A L O G P I N S
Pins A0-A5 Are Analog Pins. DAC pin counts as analog pin A6.
pinMode(pin,INPUT) sets a pin as an input
analogRead(pin) reads the pin value (0-1023)
These pins map to a 6 channel, 12-bit Analog-to-Digital converter (ADC). Lets you read an analog voltage as a mapped value that ranges from decimal 0 to 4095.A3 / A6 (DAC1, DAC) are non PWM pins, and don't use the ADC.
Source: https://docs.particle.io/datasheets/photon-datasheet/#pin-description
L E D S
Long Leg Short Leg
Small Post Big Post
Flat Edge
Vcc (+) GND
Anode (+) Cathode (-)
Providing more current than an LED is rated for can destroy the LED.To prevent that, you should use a “Current Limiting” resistor.
To calculate the value of the resistor you need to know the supply voltage, and the LEDs rated Forward Voltage (the voltage drop across the LED) and Forward Current (the maximum current the LED can handle)
C U R R E N T L I M I T I N G R E S I S T O R S
𝑅𝑒𝑠𝑖𝑠𝑡𝑜𝑟 𝑉𝑎𝑙𝑢𝑒 (𝑅) =𝑆𝑢𝑝𝑝𝑙𝑦 𝑉𝑜𝑙𝑡𝑎𝑔𝑒 𝑉𝑠 − 𝐿𝐸𝐷 𝐹𝑜𝑟𝑤𝑎𝑟𝑑 𝑉𝑜𝑙𝑡𝑎𝑔𝑒 (𝑉𝑓)
𝐿𝐸𝐷 𝐹𝑜𝑟𝑤𝑎𝑟𝑑 𝐶𝑢𝑟𝑟𝑒𝑛𝑡 (𝐼𝑓)
𝑅 =𝑉𝑠 − 𝑉𝑓
𝐼𝑓=
5𝑉 − 2𝑉
.02𝐴= 150Ω
𝑉𝑓 = 2𝑉𝑑𝑐 𝐼𝑓 = 20𝑚𝐴
𝑉𝑠 = 5𝑉𝑑𝑐
That said, you’ll likely find that for most quick experiments and demos you can skip using a current limiting resistor and just power the LED directly. USUALLY the LED will survive just fine, but sometimes…..
P O T E N T I O M E T E R – V A R I A B L E R E S I S T O R
P U L S E W I D T H M O D U L AT I O N ( P W M ) P I N S
Pins D0, D1, D2/A5, D3/A4, WKP, RX and TX are PWM pins. Unlike Arduino, there is no “~” symbol to identify them.
analogWrite(pin,value) (link)
These pins use Pulse Width Modulation to simulate an analog voltage by turning the pin on and off based on the value provided:• 0 (always off ) - 255 (always on)• Can be used to dim LEDs, control motor
speed, etc.• https://docs.particle.io/reference/firmware/
photon/#analogwrite-Source: https://docs.particle.io/datasheets/photon-datasheet/#pin-description
B R E A D B O A R D S
Breadboards offer a great way to prototype circuits. The provide a number of “buses” for connecting both power and components.
Power buses run the entire horizontal length
Component buses give you easy ways to connect pins together
DEMO More Cool Particle Photon Demos
C O N N E C T I N G T H I N G S T O T H E C L O U D
M I C R O S O F T A Z U R E I OT S E R V I C E S
Producers Connect Devices Storage Analytics Take Action
Event HubsIoT Hubs
SQL DatabaseMachine Learning
Azure Websites
Service BusTable/Blob Storage
Stream Analytics Power BI
External Data Sources
DocumentDB HDInsightNotification Hubs
External Data Sources
Data Factory Mobile Services
BizTalk Services
{ }
DEMOCollecting Weather Data in the Cloudwith Particle Photon & Azure
RESOURCESHow do I get started? What should I buy? Any good tutorials out there?
W H E R E T O B U Y M A K E R S T U F F ?
• Sparkfun (www.sparkfun.com)
• Adafruit (www.adafruit.com)
• Seeed Studio (www.seeedstudio.com)
• Maker Shed (www.makershed.com)
• Mouser Electronics (www.mouser.com)
• Netgate (www.netgate.com)
• Amazon (www.amazon.com)
• Radio Shack (www.radioshack.com) • The retail stores are perfect when you need parts urgently
M A K E M A G A Z I N E
• Makezine.com
• Print & Digital
M A K E R R E S O U R C E S
• Hackster.io (https://www.hackster.io)• Microsoft projects: https://www.hackster.io/microsoft
• HackADay (www.hackaday.com)
• Instructables (www.instructables.com)
• CreativeApplications (www.creativeapplications.net)
M A K E R B O O K S ?
Maker Media (O’Reilly)http://shop.oreilly.com/category/publishers/make.do
Packt Publishinghttps://www.packtpub.com/hardware-and-creative
A R D U I N O P R O J E C T H A N D B O O K
• https://arduinohandbook.wordpress.com
F R I T Z I N G : E L E C T R O N I C D I A G R A M M I N G
• http://fritzing.org
• Open-source hardware initiative that makes electronics accessible as a creative material for anyone• Software tool
• Community website
• Services
• Foster a creative ecosystem
• Allow user to document their prototypes & share with others
• Teach electronics in classrooms
• Layout and manufacture professional pcbs
M I C R O S O F T V I R T U A L A C A D E M Y
• Programming Robotic Systems with Visual Studio• With Chris Howd & Paul Pardi, Microsoft
• Course Outline• 01 | Embedded Systems, Robotics, and this MVA Training Series• 02 | Getting Started with Arduino• 03 | Creating Your First Arduino Robot• 04 | Controlling a Robotic Arm • 05 | Integrating Advanced Sensors and Shields• 06 | Mapping Areas and Detecting Objects• 07 | Integrating Wireless Control and Communication• 08 | Looking Ahead
• http://www.microsoftvirtualacademy.com/training-courses/programming-robotic-systems-with-visual-studio
M I C R O S O F T D X I O T R E S O U R C E L I N K S
• Bret Stateham: IoT, Galileo• https://github.com/bretstateham/iot
• Jeremy Foster: Intel Edison• http://codefoster.com/edison
• Stacey Mulcahy• http://thebitchwhocodes.com/blog
• Paul de Carlo• http://pjdecarlo.com
• Nick Landry• http://AgeofMobility.com
I O T PA N E L AT T H I N G S E X P O 2 0 1 4
• Microsoft, IBM, Kaazing, Xively/LogMeIn & Aria
• http://aka.ms/iotpanel2014
HAVE FUN!Go build something…
P L E A S E H A C K S A F E L Y !
T H A N K Y O U !
Slides are posted on Slideshare. Demos are on GitHub.Please fill out an evaluation. Your feedback is important and appreciated.
Slideshare: www.slideshare.net/ActiveNick
Blog: www.AgeofMobility.com
Twitter: @ActiveNick
Mobile Apps: www.bigbaldapps.com
LinkedIn: www.linkedin.com/in/activenick
GitHub: github.com/ActiveNick
Email: [email protected]